金子邦彦研究室インストールUbuntu, WSL2FreeSurfer 7.3.2 のインストール脳領域のセグメンテーション(Ubuntu 上))

FreeSurfer 7.3.2 のインストール脳領域のセグメンテーション(Ubuntu 上))

FreeSurfer のインストールを行う.

FreeSurfer のダウンロードとライセンスの取得

  1. FreeSurfer Wiki の Web ページを開く

    http://surfer.nmr.mgh.harvard.edu/fswiki

  2. Installation guide」をクリック

    [image]
  3. 登録したいので「Follow this link to obtain a license key」をクリック

    [image]
  4. ライセンスを取得するために,フォームに記入する.記入と確認が終わったら「I agree」をクリック.

    ライセンス条項は利用者で確認すること.

    [image]
  5. 電子メールで FreeSurfer のライセンスが送られてくるので、確認する
  6. .license というファイルを作り,送られてきた電子メールの中のライセンス情報(3行分)を使う.
  7. 再び,FreeSurfer Wiki の Web ページを開く

    http://surfer.nmr.mgh.harvard.edu/fswiki

  8. 再び,「Installation guide」をクリック

    [image]
  9. 「Latest Version 7 ...」のところの「here」をクリック.

    [image]
  10. ダウンロード

    FreeSurfer Version 7 Release のページからダウンロードする. 使用している Ubuntu のバージョン似合うものを選ぶ. 下図では,Ubuntu 22.04 用のものを選んでいる.

    ダウンロードには時間がかかる.しばらく待つ.

    [image]

FreeSurfer のインストール

Ubuntu のシステム更新

UbuntuUbuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.

UbuntuUbuntu のインストールは別ページ »で説明

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手順を踏む

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

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

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

【入力】

【出力】

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

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

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

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

[image]

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

tksurfer all lh pial

[image]

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

tksurfer all lh white

[image]

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

tksurfer all lh inflated -gray lh.curv

[image]

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

tksurfer all lh sphere -gray lh.curv

[image]

「3手順」で行った場合

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

tkmedit 3step brainmask.mgz

[image]

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

tksurfer 3step lh pial

[image]

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

tksurfer 3step lh white

[image]

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

tksurfer 3step lh inflated -gray lh.curv

[image]

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

tksurfer 3step lh sphere -gray lh.curv

[image]

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

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

[image]

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を追加することで上の画像のように正しく表示された。

[image]

talairach位置合わせのエラー

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

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

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

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

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

[image]

調節に必要なボタン

[image] [image]
左図:テンプレート画像($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*