使用ANTs进行MRI图像配准

分类: LINUX |
一、为什么要进行配准?
由于不同个体的大脑形态不同,为了比较不同个体在大脑结构和功能上的差异,需要先将不同个体配准
到一个标准大脑模板上。配准的过程就对个体大脑图像进行变形,使得个体大脑与模板图像尽可能一致。在配准过程中不同个体大脑如何变得一致,同时又保留个体原有的差异?这是我一直没有理解的问题,
不过这是基于
fMRI
二、如何安装 ANTs?
ANTs(Advanced Normalization Tools)就我所知是目前配准质量最好的软件,它的安装方法见官网上的链接,以防该链接失效,我在下面重复一下安装过程(适用于 Linux/OSX)。
(1)
(2)
git
clone git://github.com/stnava/ANTs.git mkdir
antsbin
cd antsbin ccmake ../ANTs make -j 4
cp ANTs/Scripts/* ./bin/
(3)
三、使用 ANTs 进行配准
简单介绍一下我使用 ANTs 进行 MRI 图像配准的方法,更详细的说明参见 ANTs 的官方文档
(1)
antsRegistrationSyN.sh -d 3 -f MNI_T1_2mm_brain.nii.gz -m brain.nii.gz -o rega2t
其中
MNI_T1_2mm_brain.nii.gz
这个配准过程在我电脑上大约需要 20 分钟,共生成 5 个文件,其中rega2t0GenericAffine.mat,rega2t1Warp.nii.gz 分别表示线性变换和非线性变换估计出的映射关系, rega2tWarped.nii.gz 表示配准后的图像,通过比较这个图像与标准大脑的差异,可以检查配准的质量。slicer brain.nii.gz -z -120 before_reg.png
slicer
rega2tWarped.nii.gz -z -34 after_reg.png slicer
MNI152_T1_2mm_brain.nii.gz -z -34 standard.png
slicer MNI152_T1_2mm_brain.nii.gz rega2tWarped.nii.gz -z -34 after_reg_on_standard.png
使用上面几行命令,(如下图所示)可以得到配准前(左上)、标准大脑(右上)、配准后(左下)以及将配准后的个体大脑(轮廓)叠加到标准大脑上的图像(右下)。
(2)
为了将个体功能像转换到标准大脑,并不是直接将功能像与标准大脑进行配准,而是以个体结构像为中介,将个体功能像配准到个体结构像,再根据个体结构像与标准大脑的映射关系,将个体功能像转换到标准大脑。下面几行命令实现个体功能像到个体结构像的配准(其中参数
r
表示刚体变换):
antsRegistrationSyN.sh
其中
brain.nii.gz
这个过程只需要
2-3
为了将功能像转换到标准大脑,需要联合从个体功能像到个体结构像、个体结构像到标准大脑的变换关系,具体实现命令如下:
antsApplyTransforms -d 3 -i example_func_brain.nii.gz -o example_func2standard.nii.gz \
-r MNI_T1_2mm_brain.nii.gz -t rega2t1Warp.nii.gz \
-t rega2t0GenericAffine.mat -t regf2a0GenericAffine.mat
这个过程生成一个文件,即 example_func2standard.nii.gz,也就是个体功能像变换到标准大脑后的图像,同样地,可以据此生成配准前后的比较图:
因为 fMRI 数据处理有很多步骤,如何将 ANTs 纳入其他处理步骤中是一个问题。就我所知,目前有两个现成的流水线工具包 C-PAC 和 fmriprep 都包含了 ANTs,不过我都没有用过,也不知道是否好用。
四、配准前的检查
配准前有必要检查一下两个图像间的空间朝向是否一致,方法是使用 ITK-SNAP,分别打开待配准的两
个图像,查看朝向是否一致,因为 ANTs 和 ITK-SNAP 使用的是相同的坐标系统(参考资料)。理论上,
应该先检查再做配准,之所以放到把这个步骤放到最后,是因为实际操作中我还没有发现过朝向出错的情况,而且逐个检查数据非常花费时间。