资讯

分享到:
新生儿与婴幼儿脑影像分析方法——扩散MRI优化TBSS分析代码公开
发布者: 李贤军 | 2021-11-03 | 4190

    从事脑发育及其损伤MRI研究的同道在进行TBSS分析过程中常遇到如下左图所示的情形,个体向模板配准误差明显,脑图像形变严重,影响后续基于体素统计分析的准确性:

 

    这种问题在新生儿脑发育研究中尤为突出,因此,研究团队针对配准目标/脑模板制作流程、不同配准方法优化组合应用提供了解决方案,供从事脑发育及其损伤MRI研究的各位同道使用与探讨。

 

 

#######################################################################
Group-wise template creation or registration target choice

E-mail: xianj.li@mail.xjtu.edu.cn
If you use this pipeline, please make sure that you reference the following articles. You may use in the methods section:  
Diffusion MRI was processed by using the FMRIB software library (FSL; http://www.fmrib.ox.ac.uk/fsl). Group-wise template creation and registration target choice was performed by using an optimized pipeline (1,2).
1. Li, X., Li, M., Wang, M., Wu, F., Liu, H.,Sun, Q., Zhang, Y., Liu, C., Jin, C., & Yang, J. (2021). Mapping white matter maturational processes and degrees on neonates by diffusion kurtosis imaging with multiparametric analysis. Human Brain Mapping, 1–17. https://doi.org/10.1002/hbm.25689
2. Li, X., Gao, J., Wang, M., Wan, M., & Yang, J. (2016). Rapid and reliable tract-based spatial statistics pipeline for diffusion tensor imaging in the neonatal brain: Applications to the white matter development and lesions. Magnetic Resonance Imaging, 34(9), 1314–1321.http://dx.doi.org/10.1016/j.mri.2016.07.011
#######################################################################
# step 1 group mean_rigid
cd /Examples/fa_a1
fslmerge -t all_4D_l6 org*.nii.gz
fslmaths all_4D_l6 -Tmean a1_mean.nii.gz
# step 2 group mean_affine
cd /Examples/fa_a2
t=../fa_a1/a1_mean.nii.gz
for f in `$FSLDIR/bin/imglob *.*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in ${f} -ref $t -dof 6 -cost corratio -out l_6_${f} -omat l_6_${f}.mat
    $FSLDIR/bin/flirt -in l_6_$f -ref $t -dof 12 -cost corratio -out l_12_6_${f} -omat l_12_6_${f}.mat
done
fslmerge -t all_4D_l_12_6 l_12_6_*.nii.gz
fslmaths all_4D_l_12_6 -Tmean a2_mean.nii.gz
# step 3 finding single
cd /Examples/fa_a3
t=../fa_a2/a2_mean.nii.gz
config="--config=FA_2_FMRIB58_1mm"
for f in `$FSLDIR/bin/imglob *.*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in ${f} -ref $t -dof 6 -cost corratio -out l_6_${f} -omat l_6_${f}.mat
    $FSLDIR/bin/flirt -in l_6_$f -ref $t -dof 12 -cost corratio -out l_12_6_${f} -omat l_12_6_${f}.mat
    $FSLDIR/bin/fnirt --in=l_12_6_${f} --cout=nonl_l_${f}_warp $config --ref=$t --iout=nonl_l_${f} --jout=nonl_l_${f}_Jacobian
    ${FSLDIR}/bin/fslmaths nonl_l_${f}_warp -sqr -Tmean nonl_l_${f}_tmp
    ${FSLDIR}/bin/fslstats nonl_l_${f}_tmp -M -P 50 > nonl_l_${f}_warp.msf
    ${FSLDIR}/bin/fslstats nonl_l_${f}_tmp -M -P 50 >> all_warp.msf
    ${FSLDIR}/bin/imrm nonl_l_${f}_tmp
done
# step 4 nonlinear mean FA creation
cd /Examples/fa_a4
t=../fa_a3/single_subject.nii.gz
config="--config=FA_2_FMRIB58_1mm"
for f in `$FSLDIR/bin/imglob *.*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in ${f} -ref $t -dof 6 -cost corratio -out l_6_${f} -omat l_6_${f}.mat
    $FSLDIR/bin/flirt -in l_6_$f -ref $t -dof 12 -cost corratio -out l_12_6_${f} -omat l_12_6_${f}.mat
    $FSLDIR/bin/fnirt --in=l_12_6_${f} --cout=nonl_l_${f}_warp $config --ref=$t --iout=nonl_l_${f} --jout=nonl_l_${f}_Jacobian
    ${FSLDIR}/bin/fslmaths nonl_l_${f}_warp -sqr -Tmean nonl_l_${f}_tmp
    ${FSLDIR}/bin/fslstats nonl_l_${f}_tmp -M -P 50 > nonl_l_${f}_warp.msf
    ${FSLDIR}/bin/fslstats nonl_l_${f}_tmp -M -P 50 >> all_warp.msf
    ${FSLDIR}/bin/imrm nonl_l_${f}_tmp
done
fslmerge -t all_4D_nonl nonl_l_*FA.nii.gz
fslmaths all_4D_nonl -Tmean mean_FA_nonl.nii.gz

 

#######################################################################
Rapid and reliable TBSS (rrTBSS) for developping brains

E-mail: xianj.li@mail.xjtu.edu.cn
If you use the following pipeline, please make sure that you reference the following articles. You may use in the methods section: 
Tract-based spatial statistics was performed by using an optimized pipeline (1,2).
1. Li, X., Li, M., Wang, M., Wu, F., Liu, H.,Sun, Q., Zhang, Y., Liu, C., Jin, C., & Yang, J. (2021). Mapping white matter maturational processes and degrees on neonates by diffusion kurtosis imaging with multiparametric analysis. Human Brain Mapping, 1–17. https://doi.org/10.1002/hbm.25689
2. Li, X., Gao, J., Wang, M., Wan, M., & Yang, J. (2016). Rapid and reliable tract-based spatial statistics pipeline for diffusion tensor imaging in the neonatal brain: Applications to the white matter development and lesions. Magnetic Resonance Imaging, 34(9), 1314–1321.http://dx.doi.org/10.1016/j.mri.2016.07.011
#######################################################################
# subjects to target space
fa_path=example/FA
tJHU=example/JHU_template
t=example/local_template
cd ${fa_path}
cd ../
mkdir optimized_tbss
cd optimized_tbss
mkdir fa
cd ${fa_path}
for f in `$FSLDIR/bin/imglob *.*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in $f -ref $tJHU -2D -cost corratio -out res_${f} -omat res_${f}.mat
    $FSLDIR/bin/flirt -in res_${f} -ref $t -dof 6 -cost corratio -out l_6_${f} -omat l_6_${f}.mat
    $FSLDIR/bin/flirt -in l_6_$f -ref $t -dof 12 -cost corratio -out l_12_6_${f} -omat l_12_6_${f}.mat
    $FSLDIR/bin/fsl_reg l_12_6_${f} $t nonl_l_${f} -FA
    cp nonl_l_${f}.nii.gz ../optimized_tbss/fa/nonl_l_${f}.nii.gz 
done

# target to JHU space 
path=example/optimized_tbss/fa
target=example/local_template
t=example/JHU_template
cd ${path}
cp ${target}.nii.gz ${path}/target.nii.gz
for f in `$FSLDIR/bin/imglob target.nii.gz` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in $f -ref $t -2D -out l6_${f} -omat l6_${f}.mat
    $FSLDIR/bin/flirt -in l6_$f -ref $t -dof 12 -cost corratio -out l12_l6_${f} -omat l12_l6_${f}.mat
    $FSLDIR/bin/fsl_reg l12_l6_${f} $t ${f}_to_JHU_space -FA
done

# subjects to JHU space
for f in `$FSLDIR/bin/imglob nonl_l_*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in $f -ref $t -2D -out l6_${f} -applyxfm -init l6_target.mat
    $FSLDIR/bin/flirt -in l6_$f -ref $t -dof 12 -cost corratio -out l12_l6_${f} -applyxfm -init l12_l6_target.mat
    $FSLDIR/bin/applywarp -i l12_l6_${f} -o S_to_JHU_space_${f} -r $t -w target_to_JHU_space_warp $postaffine
done
fslmerge -t all_FA S_to_JHU_space_*FA.nii.gz
fslmaths all_FA -Tmean mean_FA_org

# mean FA skeleton creation: 
# create stats
cd /media/data/WuFan/example/output_dti_rename/optimized_tbss/fa
mkdir stats
cp all_FA.nii.gz stats/all_FA.nii.gz
cp mean_FA_org.nii.gz stats/mean_FA_org.nii.gz
cd stats
fslmaths mean_FA_org -bin mean_FA_mask
fslmaths mean_FA_org -mul mean_FA_mask mean_FA
tbss_skeleton -i mean_FA -o mean_FA_skeleton
cd ../
tbss_4_prestats 0.15


# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# nonFA preprosessing
non_fa_para=nonFA
non_fa_path=example/${non_fa_para}
t=example/local_template
cd ${non_fa_path}
cd ../optimized_tbss
mkdir ${non_fa_para}
cd ${non_fa_path}
for f in `$FSLDIR/bin/imglob *.*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in $f -ref $t -2D -cost corratio -out res_${f} -applyxfm -init ../FA/res_${f}.mat
    $FSLDIR/bin/flirt -in res_${f} -ref $t -dof 6 -cost corratio -out l_6_${f} -applyxfm -init ../FA/l_6_${f}.mat
    $FSLDIR/bin/flirt -in l_6_$f -ref $t -dof 12 -cost corratio -out l_12_6_${f} -applyxfm -init ../FA/l_12_6_${f}.mat
    $FSLDIR/bin/applywarp -i l_12_6_${f} -o nonl_l_${f} -r $t -w ../FA/nonl_l_${f}_warp $postaffine
    cp nonl_l_${f}.nii.gz ../optimized_tbss/${non_fa_para}/nonl_l_${f}.nii.gz 
done

n=nonFA
path=example/${n} 
t=example/JHU_template
cd ${path}
for f in `$FSLDIR/bin/imglob nonl_l_*` ; do
    echo processing $f
    $FSLDIR/bin/flirt -in $f -ref $t -2D -out l6_${f} -applyxfm -init ../fa/l6_target.mat
    $FSLDIR/bin/flirt -in l6_$f -ref $t -dof 12 -cost corratio -out l12_l6_${f} -applyxfm -init ../fa/l12_l6_target.mat
    $FSLDIR/bin/applywarp -i l12_l6_${f} -o S_to_JHU_space_${f} -r $t -w ../fa/target_to_JHU_space_warp $postaffine
done
fslmerge -t all_${n} S_to_JHU_space_*FA.nii.gz
cp -r ../fa/stats ${path}/
cp all_${n}.nii.gz stats/all_${n}.nii.gz
thresh=`cat thresh.txt`
${FSLDIR}/bin/tbss_skeleton -i mean_FA -p $thresh mean_FA_skeleton_mask_dst ${FSLDIR}/data/standard/LowerCingulum_1mm all_FA all_${n}_skeletonised -a all_${n}