1. 目的
2. 準備
2.1. インストール
2.2. 使用データ
2.3. 前処理
3. 神経突起イメージング(NODDI)
3.1. AMICOのセットアップ
3.2. データの読み込み
3.3. 応答関数(response function)の計算
3.4. モデルフィッティング
3.5. 結果
1. 目的
- AMICOを用いた神経突起イメージング: NODDI
2. 準備
2.1. インストール
Pythonを使って、AMICOを用いた神経突起イメージング(NODDI)をするために、以下のPythonパッケージをインストールする。
pip3 install dmri-amico
2.2. 使用データ
データを次のフォルダ構造で用意する。
Study/ └── Subject ├── DWI.nii.gz # 拡散MRI ├── DWI_mask.nii.gz # 拡散MRIマスク画像 ├── bvals # b-values └── bvecs # b-vectors
2.3. 前処理
NODDI前に、拡散MRIの前処理をする。
- 拡散MRIのノイズ除去(Software: MRtrix, DIPY)
- ギブズのリンギングアーチファクト(Gibbs ringing)の除去(Software: MRtrix, DIPY)
- 拡散MRIのバイアス(信号ムラ)補正(Software: MRtrix)
- 拡散MRIの前処理 ~歪み・頭の動き・渦電流の補正(Software: FSL, MRtrix)
3. 神経突起イメージング(NODDI)
Pythonで以下のコマンドを実行。
3.1. AMICOのセットアップ
今回使用するファイル等の変数設定をする。
STUDY_DIR='Study' SUBJECT_DIR='Subject' DWI_FILE = 'DWI.nii.gz' DWIMASK_FILE = 'DWI_mask.nii.gz' BVALS_FILE = 'bvals' BVECS_FILE = 'bvecs'
次に、使用するamico
パッケージのをインポートし、セットアップと初期化をする。
import amico amico.core.setup()
3.2. データの読み込み
AMICOを実行するために、Study/Subjectフォルダ(PATH)を指定する。
ae = amico.Evaluation(STUDY_DIR, SUBJECT_DIR)
MPG軸情報(bvals/bvecs)の情報が入ったschemeファイルを生成する。
amico.util.fsl2scheme("{}/{}/{}".format(STUDY_DIR,SUBJECT_DIR,BVALS_FILE), "{}/{}/{}".format(STUDY_DIR,SUBJECT_DIR,BVECS_FILE),schemeFilename = "{}/{}/NODDI_protocol.scheme".format(STUDY_DIR,SUBJECT_DIR))
-> Writing scheme file to [ Study/Subject/NODDI_protocol.scheme ]
'Study/Subject/NODDI_protocol.scheme'
画像を読み込む。
ae.load_data(dwi_filename = DWI_FILE, scheme_filename = 'NODDI_protocol.scheme', mask_filename = DWIMASK_FILE, b0_thr = 0)
-> Loading data:
* DWI signal
- dim = 130 x 130 x 82 x 129
- pixdim = 1.769 x 1.769 x 1.800
* Acquisition scheme
- 129 samples, 2 shells
- 1 @ b=0 , 64 @ b=1000.0 , 64 @ b=2000.0
* Binary mask
- dim = 130 x 130 x 82
- pixdim = 1.769 x 1.769 x 1.800
- voxels = 282878
[ 4.4 seconds ]
-> Preprocessing:
* Normalizing to b0... [ min=-3.28, mean=0.25, max=22.86 ]
* Keeping all b0 volume(s)
[ 1.1 seconds ]
3.3. 応答関数(response function)の計算
NODDIモデルを設定して、応答関数(response function)を計算する。計算が完了するとkernelファイルが生成される。
ae.set_model('NODDI') ae.generate_kernels()
-> Creating LUT for "NODDI" model:
[==================================================] 100.0%
[ 373.3 seconds ]
作成したkernelファイルを読み込む。
ae.load_kernels()
-> Resampling LUT for subject "Subject":
[==================================================] 100.0%
[ 112.8 seconds ]
3.4. モデルフィッティング
NODDIのモデルフィッティングを開始する。
ae.fit()
-> Fitting "NODDI" model to 282878 voxels:
[==================================================] 100.0%
[ 02h 52m 07s ]
最後に、結果をNIfTIフォーマットで保存する。
ae.save_results()
-> Saving output to "AMICO/NODDI/*":
- configuration [OK]
- FIT_dir.nii.gz [OK]
- FIT_ICVF.nii.gz [OK]
- FIT_OD.nii.gz [OK]
- FIT_ISOVF.nii.gz [OK]
[ DONE ]
3.5. 結果
結果は、「Study/Subject/AMICO/NODDI/」フォルダにある。
Study/Subject/AMICO/NODDI/ ├── FIT_ICVF.nii.gz ├── FIT_ISOVF.nii.gz ├── FIT_OD.nii.gz ├── FIT_dir.nii.gz └── config.pickle
画像はこちら。