モンタージュの作成

Brainstormのサイトからsample_epilepsy.zipを入手する... 1

Brainstormを起動してEDFファイル形式で保存する... 2

MNE-pythonでFIFFに変換する... 6

Graphで読み込み... 7

Graphでモンタージュ作成... 8

チャンネル名の変更... 14

xplotterの表示... 17

 

個人情報云々があり、適当なデータがないので、Brainstormtutorialから拝借し、FIFFに変換したものでモンタージュを作成します。

 

Brainstormのサイトからsample_epilepsy.zipを入手する

ダウンロードして展開します。

anatomyFreeSurferのファイルです。

dataが脳波のデータです。

 

Brainstormを起動してEDFファイル形式で保存する

MATLAB R2014b以降でBrainstormを起動し、Protocolを作成し、Subjectを作成後、Import MEG/EEGを選択します。基本右クリックです。

ファイルのタイプを*.binにしてtutorial_eeg.binを選択します。

Importを選択します。

Raw(0.00s,3600.00s)を右クリックしてEEGDisplay time seriesを選択します。

波形が表示されます。

このように表示されないときはRecordの波マークをクリックしてください。

Raw(0.00s,3600.00s)を右クリックしてFileExport to fileを選択します。

ファイルのタイプを*.edfにしてsample_epilepsy.edfという名前で保存します。

Brainstormは終了します。

 

MNE-pythonFIFFに変換する

コンソールを開いてjupyter notebookを起動します。

新しいnotebookを開きます。

mneを組み込んで、mne.io.read_raw_edf(ファイル名,preload=True)rawにデータを読み込み、raw.save(書き出しファイル名)FIFFファイルに変換できます。

これでMNE-pythonは終了です。

Graphで読み込み

Graphのコントロールパネルを以下のようにしました。eegnamesEEG*です。

sample_epilepsy.fifを読み込みました。

ちゃんと読み込めてます

通常はEEG 001EEG 002とかになっていると思いますが、脳波のデータをFIFFにしたので電極名がそのまま反映しています。

電極名は10-20法でなく10-10法のようです。

T3T7T5P7T4T8T6P8になっています。

 

Graphでモンタージュ作成

縦列双極導出法(ダブルバナナ)もどき、を作成します。

eeg1を作成し、以下のようにします。

namesは以下の通り。

波形は以下の通りです。

同じくeeg2を作成します。

namesは以下の通り

波形は以下の通りです。

binary widgetを選択します。

名前はbananaにしました。

functionfsubです。

eeg1bananaを結び、次にeeg2bananaを結び、bananadisplayを結びます。

差分波形が表示されました。

 

チャンネル名の変更

selという名前のselector widgetを作成します。

図のように繋ぎます。

以下のLISPファイルを作成しa.lspという名前で保存します。

(set-property (G-widget "sel") 0 :name "FP1-F7")

(set-property (G-widget "sel") 1 :name "F7 -T7")

(set-property (G-widget "sel") 2 :name "T7 -P7")

(set-property (G-widget "sel") 3 :name "P7 -O1")

(set-property (G-widget "sel") 4 :name "FP1-F3")

(set-property (G-widget "sel") 5 :name "F3 -C3")

(set-property (G-widget "sel") 6 :name "C3 -P3")

(set-property (G-widget "sel") 7 :name "P3 -O1")

(set-property (G-widget "sel") 8 :name "Fz -Cz")

(set-property (G-widget "sel") 9 :name "Cz -Pz")

(set-property (G-widget "sel") 10 :name "FP2-F4")

(set-property (G-widget "sel") 11 :name "F4 -T4")

(set-property (G-widget "sel") 12 :name "T4 -P4")

(set-property (G-widget "sel") 13 :name "P4 -O2")

(set-property (G-widget "sel") 14 :name "FP1-F8")

(set-property (G-widget "sel") 15 :name "F8 -T8")

(set-property (G-widget "sel") 16 :name "T8 -P8")

(set-property (G-widget "sel") 17 :name "P8 -O2")

(link (G-widget "sel")(G-widget "display"))

呼び出します。

チャンネル名が変わりました。

上記のLISPファイルdolistを使ってaa.lispというファイル名で書き直してみました。

(setq ch 0)

(setq chnames '("FP1-F7" "F7 -T7" "T7 -P7" "P7 -O1" "FP1-F3" "F3 -C3" "C3 -P3" "P3 -O1" "Fz -Cz" "Cz -Pz" "FP2-F4" "F4 -C4" "C4 -P4" "P4 -O2" "FP2-F8" "F8 -T8" "T8 -P8" "P8 -O2"))

(dolist (chn chnames)

  (set-property (G-widget "sel") ch :name chn)

  (setq ch (+ 1 ch))

)

(link (G-widget "sel")(G-widget "display"))

chを局所変数で扱う方法をまだ理解してません

 

xplotterの表示

 

 

sel2という名前のselector widgetを作成します。

eegsel2を繋ぎ、winという名前のwindow widgetを作成します。

sel2winを繋ぎ、Point0Start0End1とします。

xpという名前のXplotter widgetを作成します。

activeをクリックし、OKを押すとData plotterが開きます。

Data plotterFileLoad layout…を選択します。

eeg_64_NM20884N.loutを選択し、OKを押します。

eeg_64_NM20884N.loutはテキストファイルです。

winxpを繋ぎます。windows widgetsel2xpの間に入れるのは、時間幅を縮小、即ちデータ量を減らさないと、xpがうまく作動しないためです。

以下のような/home/neurosurgery/lisp/aa.lspというファイルを作成し、(require /home/neurosurgery/lisp/aa)で呼び出します。

(setq ch 0)

(setq chnames '("EEG 001" "EEG 003" "EEG 010" "EEG 014" "EEG 028" "EEG 032" "EEG 046" "EEG 050" "EEG 057" "EEG 059" "EEG 008" "EEG 016" "EEG 026" "EEG 034" "EEG 044" "EEG 052" "EEG 012" "EEG 030" "EEG 048"))

(dolist (chn chnames)

  (set-property (G-widget "sel2") ch :name chn)

  (setq ch (+ 1 ch))

)

(setq ch 29)

(setq chnames '("EEG 020" "EEG 021" "EEG 019" "EEG 022" "EEG 039" "EEG 040"))

(dolist (chn chnames)

  (set-property (G-widget "sel2") ch :name chn)

  (setq ch (+ 1 ch))

)

(link (G-widget "sel2")(G-widget "xp"))

波形が表示されました。

Scales …を選択します。

EEG (uV)-200200にし、OKを押します。

スケールが変更されました。