简介

通过recon-all 命令可以一键完成 FreeSurfer的皮层重建过程,过程包括常见的预处理,配准和生成Surface。

在这个过程中,先对volume进行预处理(剥头壳、配准等)和分割,根据分割结果重构surface皮层。再根据标准surface模板进行配准和分割,得到surface上不同区域的基本信息。

FreeSurfer在对个体的T1w进行recon-all的时候,有三个主要的步骤。


图片来自网络,跟文字有点差别,以文字为准。

AutoRecon 1: 全脑mask的提取(skullstrip),剥头皮可以让皮层的配准更精确。可选择包含的子步骤有:

  1. 对同一个个体的多个T1w文件进行头动矫正和平均。
  2. 从个体空间配准到MNI305 atlas上,得到变换矩阵transforms/talairach.xfm,(不修改input volume)。注意,这是一个空间配准,不涉及标准模板。
  3. 根据空间配准的结果,对个体文件进行数值校正(Non-parametric Non-uniform intensity Normalization),得到nu.mgz
  4. 剥头皮:对数据进行normalization(use max intensity/mm gradient g=1),存入T1w.mgz文件,对T1.mgz进行到average/RB_all_withskull_2016-05-10.vc700.gca(一个有头皮的标准模板)配准,得到从标准模板到个体空间的转换矩阵transforms/talairach_with_skull.lta,用标准空间的mask配到个体,剥脑壳。

AutoRecon 2:Surface的生成。可选择包含的子步骤有:

  • 分割前的准备:【目标:得到精确的去脑壳normalization结果】

    1. 将AutoRecon1中第三步得到的个体数据mask一下,与average/RB_all_2016-05-10.vc700.gca配准,此时,得到了transforms/talairach.lta。

    2. 基于个体到talairach模板的线性配准结果,对个体结果nu.mgz进一步normalization。

    3. 对normalize后的文件进行非线性配准,得到transforms/talairach.m3z和其逆变换:transforms/talairach.m3z.inv.{x,y,z}.mgz

    4. 去脖子:根据标准模板去掉nu.mgz文件的脖子。得到nu_noneck.mgz文件,去除了脖子的影响,作为含skull个体空间结果存在。

      使用该结果,结合去脑壳的转换矩阵transforms/talairach.lta,生成更精确的含脑壳转换矩阵transforms/talairach_with_skull.lta。

    5. 将标准模板上的分割结果通过transforms/talairach.m3z配回到个体,分割norm.mgz。使用分割结果aseg.mgz、brainmask.mgz重新对norm.mgz进行标准化,得到新的个体空间去脑壳标准化结果brain.mgz和卡阈值(intensity≥5)的brain.finalsurf.mgz。至此,分割的准备工作已经全部做完。

      图中是第一次normalization得到的norm.mgz和第二次normalization得到的brain.mgz的差,看得出,两者还是有差别的。
  • 分割左右半脑白质、生成两侧surface:

    1. 得到白质:使用强度、邻域和平滑约束,将白质从brain.mgz中生成出来,最终文件为wm.mgz。
    2. 填充和分割:去掉中脑、分割左右半脑得到mask文件filled.mgz(左脑:255,右脑127)。分别对左右的mask进行去除孤点等处理,进行mri_tessellate(volume到surface的变换),得到?h.orig.nofix。
  • surface的改造:

    1. 平滑→膨胀→生成球面,使用球面和inflated的映射关系进行拓扑修复。在第一通修复之后,文件变为:?h.orig。

    2. 生成更为精确的白质:利用?h.orig, aseg.mgz, brain.finalsurfs.mgz, wm.mgz, filled.mgz文件,生成更为精确的白质表面以及其上的皮层信息(area, curvature, thickness, label-整个半脑一个label)

    3. 平滑→膨胀,得到?h.smoothwm, ?h.inflated, ?h.sulc和?h.curv文件两个(mean/高斯)。

AutoRecon 3: Surface的配准。可选择包含的子步骤有:

  • 球面配准:根据?h.inflated生成?h.sphere与标准surface模板进行配准,配准过程类似2D图像上的非线性配准。得到的output是?h.sphere.reg。
    注意!!!surface上的配准是使用球面极坐标配准,已经不存在什么Native空间、MNI空间了,也不用做啥线性变换了。
    配准中,会先根据sulc进行粗糙的配准,再根据curv进行精细的配准。
    标准模板(1/9):每个标准模板中包含了九张图片。

    让我们来理解下?h.sphere和?h.sphere.reg文件:

    1. data grid:vertex点数和个体的white、inflated相同,但不同的是,除了xyz空间的坐标信息,它还包含了用于配准的球坐标系坐标。

    2. data items:用于配准的主要信息,主要是sulc和curv的值。

    3. 配准过程说白了就是画两个球,在两个球上对应的极坐标点铺上值(data item)。在source上进行重采样,移动vertex的位置(改变坐标,但不改变点之间三角面片关系),使将标准模板(tiff)的极坐标放在sphere文件的球上时,得到的值和tiff自带的尽量一致。

    4. 存出来的移动后的新坐标(极坐标系和直角坐标系xyz)就是sphere.reg文件。当然,sphere.reg文件中也存储了面片顶点信息,这个部分和sphere是完全一致的。

  • 在?h.jacobian_white中存储white上每一个vertex的形变信息。

  • parcellation:根据标准模板上的parcellation信息,对和标准模板对齐的reg文件进行分割。

  • pial:根据volume上的分割结果产生pial和其上的curv、sulc、area等文件。

    可以根据扫描序列选择是否要加入T2w,HCP的数据是考虑T2w的。考虑了T2w后得到的结果为:?h.curv.pial.T2。

  • 生成ribbon文件。即灰质mask,方法上也就是pial和white层中间夹的部分。

  • 用?h.destrieux.simple.2009-07-29.gcs和?h.DKTatlas.2016-03-20.gcs模板分别分割皮层,并对每一个子parcel进行统计。

  • 分割ribbon文件,进行统计。

参考链接:

https://alivelearn.net/?p=322

https://alivelearn.net/?p=175

https://surfer.nmr.mgh.harvard.edu/fswiki/ReconAllDevTable