eddy命令可以矯正dMRI的頭動(顧名思義)和渦流矯正(糾正渦流引起的扭曲和主體的運動),是dMRI預處理中的一個常用工具弧圆。詳細介紹可以看https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy
1. 單phase encoding dMRI 【e.g. 5??b=0 + 30??b】
以我手上的5??b=0 + 30??b=1000的影像為例(假設叫raw.nii)。
這種序列在國內比較常見,沿用多年罕伯,通常只有一個方向的phase encoding。
然而這種序列比較原始叽讳,不能計算topup和fieldmap distortion等完善的預處理所需要的文件追他。
開始之前可以用mrtrix做一步降噪【沒裝mrtrix的話就拿raw.nii放進下面的步驟問題也不大】
dwidenoise DTI/raw.nii DTI/data_denoised.nii
1.1 準備工作
1.1.0 json文件
用于描述采集參數的json
1.1.1 提取出b0以及b0的mask
這個用fslroi和bet2命令完成
fslroi DTI/data_denoised.nii DTI/nodif_raw.nii.gz 0 1 # 提取第一幅b0【0個圖像開始,提取出1張岛蚤,一般第一個都是b0】
bet2 DTI/nodif_raw.nii.gz DTI/nodif_brain.nii.gz -m -f 0.3 # 對其剝頭皮邑狸,生成 DTI/nodif_brain.nii.gz和 DTI/nodif_brain_mask.nii.gz 0.3是經驗值可以自己試,默認的0.5太嚴格了好多腦組織包不進去
1.1.2 bec和bval文件
注意格式應該是這樣的
1.1.3 采集參數文件acqparams.txt
在只有一個phase encoding的情況下涤妒,這個文件只包含一行单雾,格式為
PEx PEy PEz T
通常來說,如果json文件里的"PhaseEncodingDirection"是"j"她紫,那么是AP方向的硅堆,前三行是0 1 0 (參考https://mrtrix.readthedocs.io/en/dev/concepts/pe_scheme.html和https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/eddy/Faq#How_do_I_know_what_to_put_into_my_--acqp_file)
T是第四個元素是從讀取第一個echo的中心到讀取最后一個echo的中心之間的時間(以秒為單位),可以計算為層間時間??(層數-1)或者直接填Echo time(in S)贿讹。在只有一個方向的情況下渐逃,因為不做topup所以第四個元素在這種情況下無所謂,只要大于0就可以民褂。
1.1.4 索引文件 index.txt
這個文件用于指明每個volume對應acqparams.txt的哪一行茄菊。所以疯潭,在只有一個相編碼方向的情況下,有多少個volume就放多少個1進去(用空格分開)买羞。
可以用如下腳本在指定目錄下生成指定數量的1 ./getindex.sh 3 /outputpath/
indx=""
for ((i=1; i<=$1; i+=1)); do indx="$indx 1"; done
echo $indx > $2/index.txt
1.2 運行eddy
執(zhí)行以下命令以運行袁勺,把文件名填對。
eddy_openmp --imain=DTI/data_denoised.nii --mask=DTI/nodif_brain_mask.nii.gz --bvals=DTI/raw.bval --bvecs=DTI/raw.bvec --acqp=DTI/acqparams.txt --index=DTI/index.txt --out=DTI/den_eddy --ref_scan_no=0 --ol_nstd=4 --verbose
-
eddy函數根據是否需要加速進行選擇
- 不加速的情況下通常需要運行10分鐘
- 不想看到輸出的結果可以把 --verbose 去掉
- out參數指明前綴畜普,最終結果是前綴.nii.gz
- 最后可以加一個
rm 前綴.eddy_*
刪掉中間結果