1. 目的
脳画像解析で、対象となる領域は脳実質でありその他の骨・筋・脂肪・眼球等の組織は、解析する上でノイズとなる。そのため、解析精度を高めるには頭蓋を除去することが重要である。
この記事では、FSLを用いて頭蓋を除去する方法を解説する。
- FSLを用いた頭蓋除去
2. コマンド
ここでは、FSLの関数であるBET
コマンドを用いて、頭蓋を除去する。
betコマンドのヘルプは次の通り。
Usage: bet <input> <output> [options] Main bet2 options: -o generate brain surface outline overlaid onto original image -m generate binary brain mask -s generate approximate skull image -n don't generate segmented brain image output -f <f> fractional intensity threshold (0->1); default=0.5; smaller values give larger brain outline estimates -g <g> vertical gradient in fractional intensity threshold (-1->1); default=0; positive values give larger brain outline at bottom, smaller at top -r <r> head radius (mm not voxels); initial surface sphere is set to half of this -c <x y z> centre-of-gravity (voxels not mm) of initial mesh surface. -t apply thresholding to segmented brain image and mask -e generates brain surface as mesh in .vtk format Variations on default bet2 functionality (mutually exclusive options): (default) just run bet2 -R robust brain centre estimation (iterates BET several times) -S eye & optic nerve cleanup (can be useful in SIENA - disables -o option) -B bias field & neck cleanup (can be useful in SIENA) -Z improve BET if FOV is very small in Z (by temporarily padding end slices) -F apply to 4D FMRI data (uses -f 0.3 and dilates brain mask slightly) -A run bet2 and then betsurf to get additional skull and scalp surfaces (includes registrations) -A2 <T2> as with -A, when also feeding in non-brain-extracted T2 (includes registrations) Miscellaneous options: -v verbose (switch on diagnostic messages) -h display this help, then exits -d debug (don't delete temporary intermediate images)
主要なオプションの役割は、次の通り。
- -o:脳表の輪郭画像を生成
- -m:バイナリ―のマスク画像を生成
- -s:骨画像を生成
- -n:セグメントした画像を生成しない
- -f
:信号値に対するしきい値(0-1, 初期値:0.5). 小さいほど脳が大きく出力される. - -g
:信号値しきい値における垂直方向の勾配. 大きくなるほど脳幹付近の脳が大きくなり、頭頂部の脳が小さくなる. - -t:セグメントされた脳とマスク画像にしきい値処理を適用
- -R:堅牢性の高い脳の中心推定(BETを何回か繰り返す)
- -S :眼球と視神経を除去
- -B :バイアスフィールドの補正と首の除去
- -Z:z方向(スライス方向)のFOVがかなり小さい場合にBETの精度を上げる(一時的にスライスをパディング)
- -F:4DのfMRIデータに適用(”-f 0.3″として少し脳マスクを大きくする)
基本的な使い方は、次の通り。
bet <入力画像> <出力画像> [オプション]
オプションについては、出力画像の結果を見ながら調節するとよい。
3. 使用例
頭蓋除去前の3D-T1WI(T1w.nii.gz)に対して、bet
コマンドを実行する。
bet T1w.nii.gz T1_skull_stripped.nii.gz -f 0.3 -R -S -B
処理が完了すると、頭蓋除去された画像(T1_skull_stripped.nii.gz)とそのマスク画像(T1_skull_stripped_mask.nii.gz)が生成される。
ls # カレントディレクトリのファイルを確認
Out:
T1_skull_stripped.nii.gz T1_skull_stripped_mask.nii.gz T1w.nii.gz
4. 結果
処理前後の画像は次の通り。
いつも大変お世話になっております。茨城県立医療大学の石山と申します。
こちらのサイトで勉強させていただいております。
現在、同じ被験者の2回の撮像を頭蓋骨で位置合わせをして、脳の動きを計測するという画像解析を行っております。
そこで、FSLのBETコマンドで処理前・処理後・マスクは作れたのですが、処理前画像ー処理後画像(もしくはマスク画像)をし、頭蓋骨のみの画像を作りたいのですが、その際はどのようなコマンドでできるのでしょうか。
fslmathsなどを考えたのですが、マスク部分を取ってくるのみで単純に引き算をする方法が思いつかず、もし良い方法がありましたらご教授いただけると幸いです。
マスク画像を反転するのはどうでしょうか?
これは、マスク画像(2値画像ができていると想定します)に-1をかけて、さらに1をたします。
そうすると、結果的に最初1だったものは0になり、0だったものが1になりますので、脳以外のところが1になります。
その後に
とすると、脳実質が抜けた画像ができると思いますがどうでしょうか?
根本先生
早々のご返信ありがとうございます。
早速実行してみたのですが、
Error in command line: unknown option “add”
となってしまい、一段階目が進みませんでした。
上記の手順に沿ってT1からマスクを作ったのですが、何か手順が間違えていたのでしょうか。
あ、失礼しました。 -add です。
根本先生
こちらこそ確認不足で申し訳ありませんでした。
無事キレイな頭蓋骨の画像が出来ました。本当にありがとうございます。
今後ともよろしくお願い申し上げます。
よかったです!
ピングバック: 【FSL】XTRACTを用いたトラクトグラフィー
ピングバック: 【FSL】FSLを用いた構造MRIと拡散MRIの位置合わせ ~Boundary-Based Registration: BBR~
ピングバック: 【脳MRI画像解析入門】 FSLを用いたRF/B1バイアス(信号ムラ)補正とセグメンテーション
ピングバック: 【FSL】FSLを用いた画像の位置合わせ ~Registration~
ピングバック: 【脳MRI画像解析入門】大脳基底核のセグメンテーション