FreeSurfer 7.3.2 のインストール脳領域のセグメンテーション(Ubuntu 上))
FreeSurfer のインストールを行う.
FreeSurfer のダウンロードとライセンスの取得
- FreeSurfer Wiki の Web ページを開く
- 「Installation guide」をクリック
- 登録したいので「Follow this link to obtain a license key」をクリック
- ライセンスを取得するために,フォームに記入する.記入と確認が終わったら「I agree」をクリック.
ライセンス条項は利用者で確認すること.
- 電子メールで FreeSurfer のライセンスが送られてくるので、確認する
- .license というファイルを作り,送られてきた電子メールの中のライセンス情報(3行分)を使う.
- 再び,FreeSurfer Wiki の Web ページを開く
- 再び,「Installation guide」をクリック
- 「Latest Version 7 ...」のところの「here」をクリック.
- ダウンロード
FreeSurfer Version 7 Release のページからダウンロードする. 使用している Ubuntu のバージョン似合うものを選ぶ. 下図では,Ubuntu 22.04 用のものを選んでいる.
ダウンロードには時間がかかる.しばらく待つ.
FreeSurfer のインストール
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now
インストール
sudo dpkg -i freesurfer_ubuntu22-7.3.2_amd64.deb
FreeSurfer 5.0 を用いた脳の領域抽出(セグメンテーション)
はじめに
FreeSurf での脳の領域抽出(セグメンテーション)は,内部的には次の3手順を踏む
- 頭蓋骨の除去
入力:頭部 MRI ボリューム画像データ (mgz形式ファイル),出力:頭蓋骨除去後の頭部ボリューム画像データ(mgz形式ファイル)
- 脳膜、白質、膨張脳膜の領域抽出(セグメンテーション)
脳膜、白質、膨張脳膜のボリューム画像データとポリゴンデータ出力:
- 脳膜のポリゴンデータの球へのマッピング
出力:球にマッピングされたポリゴンデータ
FreeSurf の recon-all コマンドを使って,上記の3手順を一括実行できる(あとで説明するように,一括実行せずに順次実行もできる).
「recon-all -all -s サブジェクト名」
例えば,「recon-all -all bert」を実行すると,下記の入力から,下記の出力が得られる.
【入力】
- 頭部 MRI ボリューム画像データ(bert/mri/orig.mgz)
【出力】
- 頭蓋骨除去後の頭部ボリューム画像データ(mri/brainmask.mgz)
- 脳膜、白質、膨張脳膜のボリューム画像データ
- 脳膜、白質、膨張脳膜のポリゴンデータ(surf/?h.pial, surf/?h.white, surf/?h.inflated)
- 球にマッピングされたポリゴンデータ(surf/?h.sphere)
recon-all コマンドで,上記の3手順を一括実行せずに,1手順ずつ順次実行することもできる.
* 普通は,3手順を順次実行するより,一括実行するほうが,コマンド待ちの手間が無いので効率が良い.
- 手順1:コマンド「recon-all -autorecon1 -s サブジェクト名」
- 手順2:コマンド「recon-all -autorecon2 -s サブジェクト名」
- 手順3:コマンド「recon-all -autorecon3 -s サブジェクト名」
サンプルデータを用いた脳の領域抽出(セグメンテーション)の実行例
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形式のファイルに対応するラベル名のファイルは以下の通り。
-
aseg.mgz gedit $SUBJECTS_DIR/$SUBJECTS/stats/aseg.stats
- aparc+aseg.mgz
gedit $SUBJECTS_DIR/$SUBJECTS/stats/lh.aparc.stats gedit $SUBJECTS_DIR/$SUBJECTS/stats/rh.aparc.stats
- aparc.a2005s+aseg.mgz
gedit $SUBJECTS_DIR/$SUBJECTS/stats/lh.aparc.a2005s.stats gedit $SUBJECTS_DIR/$SUBJECTS/stats/rh.aparc.a2005s.stats
- aparc+aseg.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画面が表示される

調節に必要なボタン
- SAVE REG : 調節した結果を保存
- CORONAL : Coronal View
- SAGITTAL : Sagittal View
- HORIZONTAL : Horizontal View
- SCALE BRAIN :大きさを調節
- TRANSLATE BRAIN : 平行移動量を調節
- ROTATE BRAIN : 回転量を調整
- TARGET :画像ウインドウに入力画像を表示
- MOVEABLE : 画像ウインドウにテンプレート画像を表示


* ウインドウを切り替える
「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*