Manual jp
From NeuroTychoWiki
Contents
Windows環境におけるpythonでの解析環境の構築マニュアル
注意:このマニュアルに書いてあるソフトウェアをインストールする際には、パソコンの管理者権限が必要です。また、windowsに関しては32bit版を想定しております。
Python
- http://www.python.org/download/releases/2.6.6/ から、Pythonのバージョン2.6.6の"Windows x86 MSI Installer"をダウンロード
- インストーラーを起動
- インストーラープログラムを以下の手順で進める
- 特に指定が無い画面については、"Next"ボタンを押して先に進めてください。
- "Install for all users"を選択して、"Next"ボタンを押す
- 画面に書かれているものから変更せずにそのまま"Next"ボタンを押す
- File:Data/050998d9a57e931e46c2c70119982d27.png "Next"ボタンを押してインストールを開始する
Numpy
Numpyはオープンソースのpython用の数値計算用のライブラリです。
- http://sourceforge.net/projects/numpy/files/NumPy/1.5.1/ から、"numpy-1.5.1-win32-superpack-python2.6.exe"をダウンロード
- File:d9f9e4c26024b18dc4b21b099e7f900d.png]]
- インストーラーを起動
- インストーラープログラムを以下の手順で進める
Scipy
Scipyはオープンソースのpython用数学、科学、工学のための数値解析モジュールです。
- http://sourceforge.net/projects/scipy/files/scipy/0.8.0/ から、"scipy-0.8.0-win32-superpack-python2.6.exe" をダウンロード
- インストーラーを起動
- インストーラープログラムを以下の手順で進める
Matplotlib
Matplotlibはpython用のグラフ描画の為のライブラリです。
- matplotlibのページ http://matplotlib.sourceforge.net/ にアクセス
- download リンクをクリックしてダウンロードページに移動.
- "matplotlib-1.0.1.win32-py2.6.exe".をダウンロード
- インストーラーを起動
- インストーラープログラムを以下の手順で進める
Pythonを用いてneutorychoのデータを扱うSample
neurotyhcoのデータは、"C:/neurotycho"以下に保存して解凍してあることを前提に進めます。別の場所に保存している場合は、そこを適宜読み替えて進めてください。
ECoGデータのプロット
Sleeping Taskのデータを対象に表示
#!/usr/bin/python #-*- coding: utf-8 -*- import numpy as np import scipy.io import scipy import matplotlib import matplotlib.pyplot as plt _indir = "C:/neurotycho/20100604_S1_ST_K2_ToruYanagawa_mat_ECoG128-Event3/" def load_mat(path): """ loading a matlab data using scipy.io """ return scipy.io.loadmat(path) if __name__=="__main__": mat = load_mat(_indir+"ECoG_ch1.mat")#loading ECoG data data = mat["ECoGData_ch1"][0] event = load_mat(_indir+"Event.mat")##loading event data eindex = event["EventIndex"][0]#EventIndex is one-row vector contains indexes when events were occurred in ECoG data. fig = plt.figure() ax = fig.add_subplot(111) ax.plot(data)#plotting ECoGdata ax.annotate('Inject anesthetic drug', xy=(eindex[0],data[eindex[0]]), xytext=(eindex[0]-170000,2000), arrowprops=dict(facecolor='black', shrink=0.1,), ) plt.show()
result
薬液注入後にECoG波形に明らかな変化があることが分かる。
ECoGデータの電極間の相関を求める
#!/usr/bin/python #-*- coding: utf-8 -*- import numpy as np import scipy.io import matplotlib import matplotlib.pyplot as plt import glob import re _indir = "/Users/aihara/work/neurotycho/workdir/data/20100723S1_VGT_K2_KazuhitoTakenaka-ToruYanagawa_mat_ECoG128-Event3/" def load_mat(path): return scipy.io.loadmat(path) def load_ecog_mats(path): """ 特定のディレクトリ以下のECoGデータを全て読み込んで配列に変換 """ pat = re.compile(r'ch(\d+)\.') files = glob.glob(path+"*_ch*") dic={} for f in files: result = pat.search(f) if result: id = result.group(1) name = "ECoGData_ch"+id dic[int(id)] = load_mat(f)[name][0] ret = [] for k in sorted(dic.keys()):#電極の番号順に並び替え ret.append(dic[k]) return ret if __name__=="__main__": data = load_ecog_mats(_indir) correlation_mat = np.corrcoef(data)#全実験期間中の電極間の相関を求める fig = plt.figure() ax = fig.add_subplot(111) cax = ax.imshow(correlation_mat, interpolation='nearest')#二次元の画像として相関関係を描画 cbar = fig.colorbar(cax) plt.show()
result
赤や黄色である電極同士は相関が高い。基本的には隣り合っている者どうしの相関が高くなっている。全てのデータでまとめて計算しているためこのデータには余り意味が無いが信号の相関の計算と描画方法のデモである。