トップページ -> 実践知識 -> 医用画像(MRI, CT 等)のツール -> FreeSurfer の使い方.--- FreeSurfer を用いた脳の領域抽出(セグメンテーション)の例 ---
[サイトマップへ]  

FreeSurfer の使い方.--- FreeSurfer を用いた脳の領域抽出(セグメンテーション)の例 ---

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

この Web ページでは,FreeSurfer の使い方を説明するために, FreeSurfer を用いて脳の領域抽出を行う手順を,簡単な例を用いて説明する.

<登場する用語>

参考ファイル: ftp://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/freesurfer-Linux-platform-release-full.README.txt


事前準備


FreeSurfer での脳の領域抽出(セグメンテーション)

FreeSurf での脳の領域抽出(セグメンテーション)は,内部的には次の3手順を踏む

FreeSurf の recon-all コマンドを使って,上記の3手順を一括実行できる(あとで説明するように,一括実行せずに順次実行もできる).

recon-all -all -s サブジェクト名

例えば,「recon-all -all bert」を実行すると,下記の入力から,下記の出力が得られる.

【入力】

【出力】

recon-all コマンドで,上記の3手順を一括実行せずに,1手順ずつ順次実行することもできる.

※ 普通は,3手順を順次実行するより,一括実行するほうが,コマンド待ちの手間が無いので効率が良い.


サンプルデータを用いた脳の領域抽出(セグメンテーション)の実行例

FreeSurfer 付属のサンプルデータの入手

書きかけ

3手順の一括実行

FreeSurfer の脳の領域抽出(セグメンテーション)プログラム recon-all をサンプルデータ bert を使って実行してみる.

bert : 「FreeSurfer付属のサンプルデータ」の入ったディレクトリ。

3step : 3手順で行う場合に使用するサブジェクト名。

all :  1手順で行う場合に使用するサブジェクト名。

■ 設定と前処理

サブジェクト名(SUBJECTS) の設定など.  ここでは,サブジェクト名を「all」に設定

SUBJECTS_DIR は,FreeSurfer のインストールディレクトリに「/subjects」を付けたものになる. 例えば, FreeSurfer のインストールディレクトリが「/usr/local/freesurfer」の場合, SUBJECTS_DIR は「/usr/local/freesurfer/subjects」になる.

export SUBJECTS_DIR=/usr/local/freesurfer/subjects
export SUBJECTS=all
cd $SUBJECTS_DIR
mkdir $SUBJECTS
cd $SUBJECTS
mkdir mri
cd mri
mkdir orig
cp ../../bert/mri/orig/001.mgz orig/
tkmedit $SUBJECTS ./orig/001.mgz &

■ FreeSurferの実行方法(1手順)

recon-all -all -s サブジェクト名

■ 成功時のメッセージ(例)

recon-all finished without error at Wed May  6 17:42:44 JST 2009

3手順の順次実行

■ 設定と前処理

サブジェクト名(SUBJECTS) の設定など.  ここでは,サブジェクト名を「3step」に設定

export SUBJECTS_DIR=/usr/local/freesurfer/subjects
export SUBJECTS=3step
cd $SUBJECTS_DIR
mkdir $SUBJECTS
cd $SUBJECTS
mkdir mri
cd mri
mkdir orig
cp ../../bert/mri/orig/001.mgz orig/
tkmedit $SUBJECTS ./orig/001.mgz &
■FreeSurferの実行方法(3手順)
recon-all -autorecon1 -s 3step
recon-all -autorecon2 -s 3step
recon-all -autorecon3 -s 3step

出力結果の確認

「1手順」で行った場合

recon-all -all -s all」の出力結果の確認 (1) 頭蓋骨除去後の頭部ボリューム画像データ

tkmedit all brainmask.mgz

recon-all -all -s all」の出力結果の確認 (2) 脳膜のボリューム画像データ

tksurfer all lh pial

recon-all -all -s all」の出力結果の確認 (3) 白質のボリューム画像データ

tksurfer all lh white

recon-all -all -s all」の出力結果の確認 (4) 膨張脳膜のボリューム画像データ

tksurfer all lh inflated -gray lh.curv

recon-all -all -s all」の出力結果の確認 (5)

tksurfer all lh sphere -gray lh.curv

「3手順」で行った場合

手順1: 「recon-all -autorecon1 -s 3step」の出力結果の確認. 頭蓋骨除去後の頭部ボリューム画像データ

tkmedit 3step brainmask.mgz

手順2: 「recon-all -autorecon2 -s 3step」の出力結果の確認 (1) 脳膜のボリューム画像データ

tksurfer 3step lh pial

手順2: 「recon-all -autorecon2 -s 3step」の出力結果の確認 (2) 白質のボリューム画像データ

tksurfer 3step lh white

手順2: 「recon-all -autorecon2 -s 3step」の出力結果の確認 (3) 膨張脳膜のボリューム画像データ

tksurfer 3step lh inflated -gray lh.curv

手順3: 「recon-all -autorecon3 -s 3step」の出力結果の確認

tksurfer 3step lh sphere -gray lh.curv


内部で実行されたコマンドの確認

gedit $SUBJECTS_DIR/$SUBJECTS/scripts/recon-all.cmd

ただし、「3手順」で実行した場合は,は1手順ごとにコマンドファイルrecon-all.cmdが上書きされるので注意


実行時のログの確認

gedit $SUBJECTS_DIR/$SUBJECTS/scripts/recon-all.log

こちらは上書きされることはない


MRI画像をセグメンテーションした.mgz形式のデータの表示とラベル値の確認

tkmedit all aseg.mgz
tkmedit all aparc+aseg.mgz
tkmedit all aparc.a2005s+aseg.mgz

MRI画像をセグメンテーションした.mgz形式のデータは3種類あり、ラベル値と名称の組み合わせは$SUBJECTS_DIR/$SUBJECTS/stats内のファイル(.stats)に記述されている。.mgz形式のファイルに対応するラベル名のファイルは以下の通り。

ただし、実行するには, 「recon-all -all サブジェクト名」あるいは「recon-all -autorecon3 -s サブジェクト名」が正常終了している必要がある.

実行結果の例

tkmedit all aseg.mgz


Surface File形式のポリゴンデータをasc形式に変換

mris_convert lh.inflated lh.inflated.asc

asc形式のポリゴンデータをSurface File形式に変換

mris_convert lh.inflated.asc lh.inflated2

※ 上書きを避けるためlh.inflated2に保存

マシンパワーが不足している場合、ポリゴンデータ全体が表示されない。 オンボード(Intel G45 Express)だと下図のように脳膜の一部だけが表示される。 グラフィックカードATI RADEON X300を追加することで上の画像のように正しく表示された。

talairach位置合わせのエラー

recon-all -all サブジェクト名」において,実行中にtalairach位置合わせが失敗した場合

-エラーメッセージ:ERROR : talairach_afd: Talairach Transform:transforms/talairach.xfm

対策. 自動でのtalairach位置合わせができないので, 手動で,ある程度までのtalairach位置合わせを行う

	tkregister2 --mgz --s サブジェクト名 -fstal

上記コマンドを実行すると、操作ウインドウと画像ウインドウの2画面が表示される

調節に必要なボタン

左図:テンプレート画像($FREESURFER_HOME/average/mni305.cor.mgz) 右図:入力画像(orig.mgz)

※ ウインドウを切り替える

recon-all -all サブジェクト名

満足のいく結果ができたら「SAVE REG」ボタンを押し、 再度recon-allを行う. この結果,別のエラーメッセージ「ERROR: Talairach QA check failed!」が表示されることがある.このときは,recon-allコマンドに-notal-checkを加える。 これはチェックを無視して強行するという意味(これを付けないと結果が出力されないため).

recon-all -all -s all -notal-check

recon-allを初めて実行した時に生じたエラー

error while loading shared libraries: /usr/local/freesurfer/lib/vtk/lib/vtk-5.2/
libvtkRendering.so.5.2: cannot restore segment prot after reloc: Permission denied
Linux localhost.localdomain 2.6.18-128.el5PAE

これは, 手順2: 「recon-all -autorecon2 -s サブジェクト名」が最後に生成するribbon.mgzを保存するときのエラーである。 この処理はvtkの機能を利用しているが、インストールしたライブラリファイルがOSに登録されておらずセキュリティ機能ではじかれたため生じる。このエラーを回避するには、vtkのライブラリのセキュリティ属性を設定する必要がある。以下のコマンドをsuコマンドでrootでログインして実行すればよい。

chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/freesurfer/lib/vtk/lib/
vtk-5.2/libvtk*