Skip to content

Instantly share code, notes, and snippets.

@cosacog
Last active January 27, 2016 01:38
Show Gist options
  • Save cosacog/16ca464ede44de48d6f9 to your computer and use it in GitHub Desktop.
Save cosacog/16ca464ede44de48d6f9 to your computer and use it in GitHub Desktop.
mneで使うmriの処理のよくあるパターン(dicom から変換していろいろファイルがmriとかbemとかsurfのディレクトリの中にできて・・・)をまとめました。下の方にコメント入れてますので参考にしてください。
## 下準備(環境変数の設定)
export SUBJECTS_DIR=/data_wo_matometa_drive/MRI_wo_matomeru_directory #"/"を最後つけない
export SUBJECT=hikenja_no_namae #ここの最後に"/"をつけない
export DICOM_DIR=/dicom_no_aru_directory # 例:/net/raid0/mnt/share/hikenja/dicom
# 以下基本変更なし
# データを入れるディレクトリをまとめて作る(mriとかT1とかbemとかsurfとかorigとか)
mksubjdirs $SUBJECTS_DIR/$SUBJECT # freesurferのコマンド
# MRIのdicomデータのあるディレクトリからdicomをコピー
cd $SUBJECTS_DIR/$SUBJECT/mri/T1
cp -pR $DICOM_DIR/* ./
# dicomファイルの名前を1個とってくる(dicomは通常200枚くらいある)
MRIFILE=(*)
# 約200枚のdicomを001.mgzに変換
mri_convert $MRIFILE $SUBJECTS_DIR/$SUBJECT/mri/orig/001.mgz # freesurferのコマンド
# ファイルの出来具合を確認したいときは下
# tkmedit $SUBJECT $SUBJECTS_DIR/$SUBJECT/mri/orig/001.mgz &
# MRI画像から脳と骨を分離する。丸1日程かかる
recon-all -all -subject $SUBJECT
################### ここからMNEのツールを使った作業 ###############################
# 参照: http://martinos.org/mne/stable/manual/cookbook.html#anatomical-information
# anatomical informationの項: 但しpythonを使った記法になってるので、あまり参考にならないかも
# bem/ <subject> -head.fifを作る: outerskinを元にした頭皮のfifということか. あとwatershedの中に.surfができる
cd $SUBJECTS_DIR
mne_watershed_bem --subject $SUBJECT
# 参照http://martinos.org/mne/stable/manual/appendix/bem_model.html#id1
# COR.fifを作る (COR.fif: MRIの3Dデータのfifファイル)
mne_setup_mri --subject $SUBJECT --mri T1
# ここでbem/に ・・-oct-6-src.fifができる.
mne_setup_source_space --subject $SUBJECT --ico -6
# シンボリックリンクを張る(bemディレクトリにinner_skull.surfとかできる)
cd $SUBJECTS_DIR/$SUBJECT/bem
ln -s watershed/"$SUBJECT"_inner_skull_surface inner_skull.surf
ln -s watershed/"$SUBJECT"_outer_skull_surface outer_skull.surf
ln -s watershed/"$SUBJECT"_outer_skin_surface outer_skin.surf
# volume conductor model(電流が流れる範囲(脳(+皮膚、骨)と伝導率のこと?)を決めてるようです.
# -bem.fifとか-bem-sol.fifとかこのステップでできている...と思う
mne_setup_forward_model --subject $SUBJECT --surf --ico 4
# 151113 --homogを削除:single shell -> 3 shellになるはず
# 参考.http://martinos.org/mne/stable/manual/cookbook.html#cihdbfeg この辺
# 参考2. http://goo.gl/LSSGNb 3-shellとか1-shellとかの説明のようです
# ここまででMRIの処理は概ね終了 (残りはMEGデータとの座標合わせ(coregistration)とか、なのでMEGのデータが必要)
@cosacog
Copy link
Author

cosacog commented Dec 23, 2015

MNEで使うMRIの処理の基本: freesurfer + mneのツールを使ってます

MNEで使用するMRIの処理はfreesurferを主に使いますが、とりあえずこんだけというのをまとめました。
コメント(#の入った後の部分)をたくさんつけてますのでうまく走らない時は削除してみてください。

通常使用するときは

  1. 最初の3行(SUBJECTS_DIR, SUBJECT, DICOM_DIR)の右辺を変更して
  2. terminalにコピペ

すれば走ると思います。

トラブルになりやすいネタ

  1. 環境変数のディレクトリ(具体的には$SUBJECTS_DIR)の最後に"/"をつける(実行するときに"/"をはさんでるので$SUBJECTS_DIR//$SUBJECTみたいに2つ重なってエラーになる)
  2. dicomのディレクトリにdicomのファイル以外が混じっている(dicomのファイルは通常連番になっているので、それでdicomとそうでないファイルを判断できると思います)
  3. dicomのディレクトリを$SUBJECTS_DIR/$SUBJECTの中に置いている(スクリプトの途中で$SUBJECTS_DIR/$SUBJECT以下のディレクトリを作るので、既にディレクトリがあるとエラーを返す

くらいが主だと思います。

最近(2014年ごろ)知った注意点

dicomのフォーマットでfreesurferが対応してないものがあることがわかりました。

フォーマットをmricronあたり使って別のファイル形式(.niiあたり?)に変換して処理に持っていくのがよさそうです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment