はじめに
脳画像解析における代表的なツールであるFreeSurferは、精神・神経科学研究において広く活用されています。さらにそれを高速化したFastSurferが登場しています。FreeSurferおよびFastSurferは、皮質厚や表面積、体積などの構造的指標の抽出において信頼性が高く、多くの論文で使用されています。
この記事では、実際に私が遭遇した課題や引っかかったポイントも含め、FreeSurferおよびFastSurferの導入方法を解説します。
1. FreeSurferの導入手順
1.1 FreeSurferライセンスの取得について
FreeSurferを使用するには、ライセンスファイル(無料)を取得し、インストールディレクトリに配置する必要があります。
公式サイトにアクセスし、名前・所属・メールアドレスを登録します。
メールで送られてくる “license.txt”を受け取ります。
ライセンスファイルを $FREESURFER_HOME に保存します。
mv ~/Downloads/license.txt $FREESURFER_HOME/license.txt
ライセンスがないと recon-all 実行時にエラーが発生し、解析が進まないため、必ず事前に登録しておきましょう。
1.2 インストール手順(macOS上)
FreeSurferのダウンロード(公式サイトからdmgファイルを取得)
インストーラを実行し、アプリケーションフォルダに配置する(例:/Applications/freesurfer)
.zshrcまたは.bash_profile に環境変数を設定
export FREESURFER_HOME=/Applications/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh
反映させるには、ターミナルで以下を実行
source ~/.zshrc #または source ~/.bash_profile
補足: bashrcに追記すると毎回設定する必要がなくなります。
echo "export FREESURFER_HOME=/usr/local/freesurfer" >> ~/.bashrc
echo "source \$FREESURFER_HOME/SetUpFreeSurfer.sh" >> ~/.bashrc
source ~/.bashrc
インストールできたか試しに見てみます。
freeview -v $SUBJECTS_DIR/bert/mri/brain.mgz \
-v $SUBJECTS_DIR/bert/mri/aparc+aseg.mgz:colormap=lut:opacity=0.3

freeview -f $SUBJECTS_DIR/bert/surf/lh.inflated:curvature=curv \
$SUBJECTS_DIR/bert/surf/rh.inflated:curvature=curv

2. FastSurferの導入手順
FastSurferはFreeSurferと同等の精度を持ちつつ、ディープラーニングを用いて高速に処理が可能な代替ツールです。
2.1 前提条件
- NVIDIA GPU(CUDA対応)推奨
- 公式ではDockerが動作する環境推奨
2.2 導入方法
ここでは、手動ダウンロードによる導入方法(Dockerを使わない場合)を紹介します。
FastSurferはDockerを使用せずに手動でもセットアップ可能ですが、CUDA、PyTorch、依存パッケージの整合性に注意が必要です。
# リポジトリのクローン
git clone https://github.com/Deep-MI/FastSurfer.git
cd FastSurfer
# Python仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activate
# 必要パッケージのインストール
pip install -r requirements.txt
# チェックポイントのダウンロード
mkdir -p checkpoints
wget https://dl.deep-mi.org/fastsurfer/fastsurferCNN/ckpts/fastsurfer_deepnet.pt -P checkpoints/
注意:
- fastsurfer_deepnet.pt はセグメンテーションCNNの学習済みモデルです。
- CUDAとPyTorchのバージョンは公式のREADMEを参照して一致させる必要があります。
# macOSでのDockerのインストールは、公式サイト(https://www.docker.com/products/docker-desktop/)からDocker Desktopをダウンロード・インストールしてください。
# FastSurferのクローン
git clone https://github.com/Deep-MI/FastSurfer.git
cd FastSurfer
# Dockerイメージのビルド(macOS上でも可能。ただしGPUはLinux専用のため、処理自体はCPU)
docker build -t fastsurfer ..
引っかかりポイント例:
- Dockerイメージのビルド中にメモリエラー(特にWSL2環境)
- GPUがDockerから認識されない(–gpus all のために nvidia-container-toolkit が必要)
2.3 実行例(WSL2ではマウントやパスに注意)
FastSurferの主要オプション解説
–t1:処理対象のT1強調画像のパス(必須)
–sid:被験者ID(Subject ID)
–sd:出力先のsubjectsディレクトリ
–parallel:並列処理を有効化(CPU並列処理を一部サポート)
–batch:並列実行のスレッド数(GPUメモリに応じて調整)
–fs_license:FreeSurferのライセンスファイルのパス(必要な場合)
–no_cuda:CUDAを使用しない(CPU動作)
公式ドキュメント:https://github.com/Deep-MI/FastSurfer
sudo docker run --rm --gpus all \
-v $PWD:/data -v $PWD/output:/output \
fastsurfer \
--t1 /data/sub01_T1.nii.gz \
--sid sub01 \
--sd /output \
--parallel --batch 8
3. FreeSurferとFastSurferの比較と使い分け
特徴 | FreeSurfer | FastSurfer |
---|---|---|
精度 | 高い(これまでの研究で多用) | FreeSurferとほぼ同等 |
処理時間 | 非常に長い(5〜8時間以上) | 非常に高速(30〜45分程度) |
必要環境 | CPUでOK | GPUで高速 |
トラブル頻度 | 高い(依存関係やパス設定) | Dockerに慣れれば比較的少ない |
4. よくある質問(FAQ)
Q1: recon-allはどれくらい時間がかかる?
A: 通常のFreeSurferでは5〜8時間、FastSurferではGPU使用で30分〜45分程度です。FastSurferをCPUで実行する場合でも、FreeSurferよりも高速に処理されることが多く、実行環境によっては1〜2時間程度で完了するケースも報告されています。近年のFastSurferはCPUモードでも最適化が進んでおり、GPUがなくても実用的な処理時間で使用できます。
Q2: FastSurferで出力されるファイル形式は?
A: FreeSurferと同様に surf/ や stats/ ディレクトリが生成され、同じパイプラインで扱えます。
Q3: WSL2でも動作する?
A: 一部のユーザーは動作報告あり。ただしDockerのGPU認識やI/Oの速度低下に注意。
Q4: recon-allの進行状況がわかりづらい…
A: recon-all.log をtailすることで確認できます。tail -f $SUBJECTS_DIR/sub01/scripts/recon-all.log
まとめ
FreeSurferおよびFastSurferは、精神医学研究における脳画像処理に不可欠なツールです。特にFastSurferは近年のGPU環境を活かした高速処理が魅力ですが、環境構築や実行時のポイントには注意が必要です。本記事を参考に効率的な導入と活用を目指してください。