忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[376] [375] [374] [373] [372] [371] [370] [369] [368] [367] [366]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Step 2. Applying Signal Space Separation

SSSは、渡辺の理解では、信号磁場(自発/誘発の脳活動によって発生する磁場)と雑音磁場をどうにかこうにかして(本当はここが大事なんですが)分離し、雑音磁場を取り除く方法、ということになりましょうか。初出はS. Taulu and M. Kajola, Presentation of electromagnetic multichannel data: the signal space separation method, J. Appl. Phys. 97 (2005),あたりですかね。詳しい人に聞いてきます。

さて、SSSを実行するには、

[SSS] maxfilter -f <rawdata_file> -o <output_file> -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat -autobad off -bad <list of bad channels> -v | tee <log_file>
とするようです。基本的には不良チャネル同定と一緒なんですが、既に同定済なので、-autobadオプションはoffにし、-autobadで得られた不良チャネルを、-badの後に指定するようです。形式としては、
-bad 1134 1123 1412
のようにすれば良いようです(おそらく、数字はチャネル番号ですね)。
まれに、SSSを実行した後に、データの左側(はじめの時間、になるんですかね?)に、アーティファクトが存在することがあり(たとえばセンサージャンプ)、それはmaxfilterの時間的拡張(-st)を用いることによって起こりえるので、このオプションを使うときは、それがうまく働く特定の時間バッファが要求される。デフォルトのバッファは0.25Hzのハイパスフィルタに対して4秒であり、もし、低周波数を維持したいと思うのであれば、処理時間を犠牲にしてでも、バッファ時間を長くとるべきである(たとえば、10秒-0.1Hz)。もしセンサのアーティファクトが残っている場合、-corrオプションをデフォルトの0.98より小さくすることで、電位(潜在的な?potential)アーティファクトが除去される閾値を減らすことにより、-stはより少なく保守されうる(ただし、これは興味のある信号も取り除いてしまう可能性が増大する。また、<0.8は推奨されない)
ということで、それをふまえたコマンドはこちら。
[SSS, -ST] maxfilter -f <rawdata_file> -o <output_file> -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat -autobad off -bad <list of bad channels> -st 10 -v | tee <log_file>

試行中の頭部移動の補正(200ms, 500ms, 1000msのいずれかの間隔で補正する)ができるそうです。コマンドはこちら。

[SSS, -ST, -movecomp] maxfilter -f <rawdata_file> -o <output_file> -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat -autobad off -bad <list of bad channels> -st 10 -movecomp -hpistep 200 -hp <head_pos_log_file> -hpisubt amp -v | tee <log_file>
記録中にcHPIを用いる理由は、我々が記録セッション内の被験者の頭部の移動をモニター/補正することができるからである。頭部の移動のモニターと、それをファイルに出力するために、-headposオプションを用いる。-movecompオプションを用いることで、動きを補正できる。両方のオプションで、logファイル(頭部位置パラメタが保存されている;後に視覚的に点検するために)を指定し、算定間隔(普通200msだが、500msや1000msも可能である)を設定する(*多分、-hpistepオプションですね)。また、-hpisubtオプション(amp or off)を用いることで、データからcHPI信号(非常に高周波)を取り除くことも選択できる。
なお、
バグにより、-autobadと-movecomp, -headposオプションは同時に使用してはいけない
とされています。まず、-headposオプションを入れてmaxfilterを実施し、そこで出てきたファイルを、"head_pos_log_file"として読み込むのだと思いますが、そのコマンドは記載されていません。HPIが記録できていない場合、無理矢理実行はできるようです。
もしHPIが試行中のどこかで(記録)失敗していた場合、頭部移動の補正/算定も失敗し、そのデータブロックはスキップされる(つまり、0にセットされる)。最後に確認されたHPIを使いたい場合は、-movecomp interオプションを使用できる。しかし、もしこのHPIの失敗が、ファイルの初めの方で起こっている場合は、本当に移動の補正をしているというわけではないので注意すること
単に、上のコマンドの-movecompの後に、interを加えるだけ(-movecomp inter)です。

原点(origin)の選択Maxfilterは、基本的にはcoordinate systemの原点に依存して出力がなされる。デフォルトでは、原点をデジタイズした点によるsphereにフィットさせることで得る。しかし、これで問題が生じる場合もある。もっとも良くあるのは、"sphere fit extends outside of the sensors (sphereのフィットが、センサの外側にあります)"、あるいは、原点が0,0,0 (maxfilterの既知のバグによる)にあるということ。両方のエラーは、同じ方法でfixできる。利用したい原点を手入力することである。この原点は、デフォルトセッティング(0,0,40)にする、他のsphere fittingツール(matlabにおける例)で計算したもので良い。

[SSS, -ST, -movecomp, origin] maxfilter -f <rawdata_file> -o <output_file> -ctc /neuro/databases/ctc/ct_sparse.fif -cal /neuro/databases/sss/sss_cal.dat -autobad off -bad <list of bad channels> -st 10 -movecomp -hpistep 200 -hp <head_pos_log_file> -hpisubt amp -frame head -origin <x> <y> <z> -v | tee
このように、原点(-originオプションで)情報を任意に与えることができる、ということでしょう。-frameオプションは、なんだかよくわからないのですが、多分ここから新しくできているので、-originに関係しているものと思われます。

sphereは、直訳だと球で、MEGの場合だと、頭部をなぞる形でデジタイズすることでできる架空の頭のことだと思うんですが、良い訳がないのでこのまま。SSSはこんな感じです。原理はわかればまた追記します。次がいよいよco-ordinateですね。

拍手[0回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ