FreeSurferのrecon-allで前処理を行った後、Quality Checkを行うことはとても大事です。
広島大の北村先生と一緒に、やり方を確認しました。北村先生がまとめてくださいましたので、その方法を以下に記します。
原典はFreeSurferのホームページを参考にしています。
https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/OutputData_freeview
- スクリプトの準備
- スクリプトに実行権限をつける
- Segmentationのチェック
- Freeviewの起動
- 白質とくも膜の境界となるラインがきちんとひけているか確認
- 赤線:くも膜の表面にあり、脳脊髄液と灰白質を境する線
- 青線:白質の表面に沿って引かれており、灰白質と白質を境する線
- 灰白質のsegmentationができているかを確認
- skull stripの確認
- 画像の信号強度にむらがないかを確認
- 白質のsegmentationを確認
以下のリンクにある2つスクリプトをダウンロードします。bashスクリプトですので、これをパスが通っているディレクトリに置きます。Linuxユーザーでしたら、ホームディレクトリの下のbinディレクトリがいいでしょう。
Macユーザーもホームディレクトリの下のbinディレクトリがいいと思いますが、.bash_profileにパスの設定をする必要があります。
view_surface_freeview.sh (右クリックで名前をつけて保存)
view_volumes_freeview.sh (右クリックで名前をつけて保存)
この2つのスクリプトの中身は以下のようになっています。
#!/bin/bash #Script to view surfaces in 3D using Freeview #Adopted from the following page #https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/OutputData_freeview freeview -f $SUBJECTS_DIR/$1/surf/lh.pial:annot=aparc.annot:name=pial_aparc:visible=0 \ $SUBJECTS_DIR/$1/surf/lh.inflated:overlay=lh.thickness:overlay_threshold=0.1,3::name=inflated_thickness:visible=0 \ $SUBJECTS_DIR/$1/surf/lh.inflated:visible=0 \ $SUBJECTS_DIR/$1/surf/lh.white:visible=0 \ $SUBJECTS_DIR/$1/surf/lh.pial \ --viewport 3d
#!/bin/bash #Script to view volumes with Freevies #Adopted from the following page. #https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/OutputData_freeview freeview -v \ $SUBJECTS_DIR/$1/mri/T1.mgz \ $SUBJECTS_DIR/$1/mri/wm.mgz \ $SUBJECTS_DIR/$1/mri/brainmask.mgz \ $SUBJECTS_DIR/$1/mri/aseg.mgz:colormap=lut:opacity=0.2 \ -f $SUBJECTS_DIR/$1/surf/lh.white:edgecolor=blue \ $SUBJECTS_DIR/$1/surf/lh.pial:edgecolor=red \ $SUBJECTS_DIR/$1/surf/rh.white:edgecolor=blue \ $SUBJECTS_DIR/$1/surf/rh.pial:edgecolor=red
ダウンロードした2つのファイルに実行権限をつけます。今は、ホームディレクトリのbinにダウンロードしたと仮定します。
$ cd ~/bin $ chmod 755 view_surface_freeview.sh view_volumes_freeview.sh
最初にSegmentationのチェックを行います。
ターミナルで以下のようにタイプします。
view_volume_freeview.sh 被験者ID
そうすると、freeviewが起動します。
左上にあるVolumeという小窓の中にある「brainmask」をダブルクリックすると「brainmask」という項目が一番上に来ます。
画面には下記の状態が出てきます。
ここで、線がきちんと白質や灰白質に沿ってひかれているかどうかを確認します。
先ほどと同様に、今度は「aseg」という項目をダブルクリックします。ここで、灰白質がきちんと分割できているかを確認する。
再度、「brainmask」をダブルクリックします。
次に、「Surface」の中のチェックボックスをすべて外します。
そうすると、skull strip画像が見えますので、skull stripがちゃんとできているかを確認します。
今度は、「wm」をダブルクリックします。
脳の画像のみになるので、灰白質や白質に信号むらがないかを確認します。
先ほどと同様に、「wm」をダブルクリックします。
左の真ん中にある「Color map」という項目の中から「heat」を選択します。
そこで、白質のsegmentationを確認する。
初歩的な内容で恐縮ですが、質問させてください。
FreeSurferでsegmentationがうまくできていない場合(頭蓋底付近の側頭葉や前頭葉の皮質がsegmentationできていななど)、どのように修正すればよいでしょうか。
GUI左上のEdit Reconを押して修正を試みようとしても反応がなく、やり方が間違っていればご教示いただきたいです。
FreeSurferでは、皮質下の区分けをSegmentation, 皮質の区分けをParcellationとして区別しています。お問い合わせの内容はおそらくParcellationがうまくいかない場合の対応ですね?
https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/TroubleshootingDataV6.0
上記FreeSurfer Tutorialの”Troubleshooting your output”の 中に以下のように記載されています。
エラーとしては、次のようなエラーが起こりえます。
– Skull Strip Errors
– Segmentation Errors
– Intensity Normalization Error
– Pial Surface misplacement
– Topological Defect
おそらく、今の場合は、Pial Surface misplacementですね。
そして、解決法は、以下の4種類です。
– Erase voxels
– Fill voxels
– Clone voxels (ie, copy from one volume to another)
– Add “Control Points”
今は、おそらく、”Fill voxels”と”Add ‘control points”の2つが必要な気がします。
上記のページをご覧いただくのが一番早いかと思います。すみません、私はまだこのmanual editについては日本語リソースを持っていません。
ご存知かとも思いますが、recon-allのクオリティチェックしてくれるpythonのスクリプトが公開されてます。
https://github.com/Deep-MI/qatools-python
オプションを設定すると、スクリーンショットをpngで保存してくれたり(sagittal 2枚、axial 1枚、coronal 1枚と少ないですが)、asegのoutlierを見つけてくれたりします。
FS v7.1.1 でrecon-allしたものでも使えました。全員分チェックするのが非現実的な場合、チェックすべき画像の順位をつけるのに有用かも知れません。
杉原先生
すみみません、コメントに気づくのが遅くなってしまいました。
とてもいい情報をありがとうございます!
便利ですね!
根本清貴