CAT12+SPM12实操:VBM与SBM数据预处理流程与参数详解

发布时间:2026/10/4 16:32:24
CAT12+SPM12实操:VBM与SBM数据预处理流程与参数详解 最近正好把手头一批T1加权结构像完整跑了一遍VBM和SBM分析工具就是CAT12加SPM12。整个过程从数据预处理一直做到统计出图中间踩了不少坑也把很多以前半懂不懂的参数含义重新确认了一遍。干脆把数据预处理这块单独拎出来写成笔记也就是这一系列笔记的“笔记1”。这篇笔记适合正在准备用结构像做分析的神经影像方向研究生、认知神经科学研究者或者临床上想评估脑结构差异的医生朋友。如果你用的是CAT12和SPM12这套组合准备做基于体素的形态学分析或者基于皮层表面的形态学分析那这篇内容应该能帮你省掉不少试错时间。数据预处理是整个VBM与SBM分析链路上最容易被低估的一环参数设错、数据没查、命名混乱后面统计阶段全都会变成隐雷。1. 为什么用CAT12SPM12跑VBM与SBM整体思路与选型逻辑1.1 VBM和SBM到底在分析什么VBM全称Voxel-Based Morphometry基于体素的形态学测量。它的核心思路是把所有人脑配准到同一个标准空间然后在每个体素上比较灰质体积或白质体积的组间差异。你可以把大脑理解成一张像素画VBM做的就是逐像素比较不同组别之间哪些局部区域更“多”或者更“少”。SBM全称Surface-Based Morphometry基于表面的形态学测量。它不再直接比较体素而是先把大脑皮层表面重建出来然后在皮层表面上计算皮层厚度、沟回深度、皮层折叠系数、回旋指数这些几何指标。这类指标的变化往往比灰质体积更直接地反映皮层本身的结构改变。两种方法放在一起用是因为灰质体积变化本身是个混合信号。皮层体积大约等于皮层表面积乘以皮层厚度体积下降可能是厚度变薄也可能是表面积缩小背后的生物学机制完全不同。VBM只能告诉你哪里“少了”SBM可以进一步告诉你“是薄了还是缩了”。所以现在比较规范的做法是同一个数据集同时跑VBM和SBM互相印证。1.2 CAT12相对传统SPM VBM工具包的升级点早期做VBM一般用SPM自带的Segment模块或者后来的VBM8工具包。VBM8本身已经停更很久而且它做皮层表面重建基本无能为力。CAT12全称Computational Anatomy Toolbox 12运行在SPM12框架下相当于VBM8的进化版同时把基于体素和基于表面的分析整合到了一个工具箱里。几个关键升级值得说一下。第一分割算法用了自适应最大后验估计也就是AMAP方法配合局部自适应正则化对灰质、白质、脑脊液的分割精度比老一代算法高不少尤其是在皮层沟回深处不容易出现误分割。第二配准方面原生支持DARTEL和Geodesic Shooting两种高维非线性配准不再需要额外跑DARTEL模块直接在预处理里一次完成。第三CAT12会自动计算颅内总体积ICV并输出到xml文件统计阶段可以直接拿来做协变量省去了以前手动算TIV的麻烦。第四整个处理流程可以一次运行同时输出VBM和SBM需要的中间文件不用两套流程分开跑。1.3 分析流程全景从原始图像到统计结果的完整链条先铺垫一下整个分析链条后面操作起来才不容易迷失。完整流程大概是原始DICOM转NIfTI数据质量预检CAT12预处理分割与配准VBM输出调制后的灰质图像SBM输出皮层表面指标然后是平滑最后进入统计模型。预处理阶段花费的时间通常占整个分析的一半以上因为它决定了后续所有结果的质量。很多刚接触的朋友喜欢急着跑统计预处理参数随手点默认结果跑出来一堆假阳性或假阴性还以为是统计方法有问题其实问题全出在预处理。2. 开始之前环境配置、数据整理与质量预检2.1 软件版本搭配MATLAB、SPM12与CAT12先说版本搭配。CAT12必须在SPM12环境下运行SPM12又必须依赖MATLAB。我目前用得比较稳的组合是MATLAB R2022b加SPM12的最新版加CAT12的r1830左右版本。MATLAB版本太老会出现某些函数不兼容太新也有可能碰到工具箱还没适配的情况。如果你机器上已经有MATLAB建议先查一下SPM12官方兼容列表再决定要不要升级。安装的时候有几个容易踩的坑。首先是路径问题MATLAB、SPM12、CAT12三个目录都不要出现中文、空格和特殊符号很多莫名其妙的报错都是路径不规范引起的。其次是把SPM12和CAT12的路径添加到MATLAB的搜索路径后不要急着直接运行cat12先在命令窗口输入spm启动一次SPM确认spm正常运行了再输入cat12。CAT12的界面启动后左侧会列出很多模块比如Preprocessing、Surface、Statistics等看到这个界面就说明安装成功了。2.2 数据整理与DICOM转NIfTI从医院拿到的原始影像数据一般是DICOM格式一个被试可能有几百个dcm文件。预处理之前必须把这些文件转成单文件NIfTI格式也就是.nii或者.nii.gz。推荐用dcm2niix这个工具做转换它对方向信息的处理比某些老工具靠谱得多。转换完成后的命名规范很值得花点心思。我自己的习惯是“分组前缀_编号_T1”比如HC_001_T1.niiMDD_001_T1.nii这样一眼就能看出组别和编号后续在统计模型里批量选文件也方便。名称里尽量不要出现“-”或空格这类容易在代码里被误解的字符用下划线最省心。2.3 哪些数据应该在预处理前直接剔除这一步很多人会跳过但我强烈建议不要省。预处理前花十几分钟逐例翻一遍T1图像比预处理跑完发现坏数据再重跑要划算得多。我会用MRIcron或者SPM的Display模块把每例图像过一遍重点关注几个问题。头部运动伪影是重灾区。虽然T1不像功能像那样对运动敏感但扫描过程中轻微移动也会导致皮层边界模糊分割时灰质边界会被错误扩张。灰白质对比度差的数据也要当心某些机器扫描参数不佳时图像整体偏灰灰白质交界不清晰后面分割很容易失败。覆盖范围不足也要注意有些序列扫描时没包全小脑或枕叶配准时这些区域会被强拉变形影响全局配准质量。另外如果图像上有明显的金属伪影或者头部周围大片高信号残留这种数据建议直接考虑剔除。3. VBM数据预处理全流程实操3.1 用GUI还是Batch一键复现最重要CAT12跑VBM预处理有两条路一条是纯GUI界面操作另一条是用SPM的Batch Editor写批处理脚本。我个人强烈推荐用Batch方式原因有三一是Batch文件可以保存下来处理流程完全可复现写论文方法部分的时候也能准确描述每一步参数二是批量处理几十个被试时GUI方式一个一个点很容易漏参数三是Batch文件本质上是个mat脚本方便在团队内分享。实际操作时在MATLAB命令窗口输入cat12打开CAT12界面然后选择Preprocessing下的VBM模块或者在SPM Batch Editor里加载CAT12的VBM批处理模块。Batch方式的所有参数和GUI完全一致只不过最终把所有被试的T1图像一次性加进去点击运行后自动按顺序处理。3.2 核心参数逐项解读进入VBM预处理Batch之后界面里的参数比较多刚接触的人容易被吓到。其实真正需要关心的就那么几项其他保持默认就好。我把自己常用的参数和理由整理成了表格。参数推荐设置理由Segmentation Volumes全部T1图像一次性加入所有待处理被试TissuesGM、WM、CSF三项CAT12默认的脑组织分割输出Bias regularisation0.0001对偏置场校正强度影响小保持默认Affine regularisationICBM Space XM使用ICBM空间先验适配东亚人群脑结构WarpingGeodesic Shooting比DARTEL精度更高的非线性配准方式Modulationnonlinear only分析灰质体积时打开调制补偿配准造成的体积变化SmoothingFWHM [8 8 8]经典8mm平滑核兼顾检出率与空间精度Affine regularisation这一项在配准里很关键。它的作用是给仿射变换一个先验约束避免灰白质分割后配准到模板时出现过度形变。ICBM Space XM是为东亚人群设计的先验模板实际用下来比默认的European模板更稳。Modulation需要多解释几句这是新手最容易懵的地方。配准会把不同人的大脑拉到一个标准空间这个过程中个体的局部体积信息会被改变。Modulation就是把体素的概率值乘以雅可比行列式把配准造成的体积变化补偿回去。分析灰质体积时一定要选nonlinear only否则结果统计的是灰质密度而不是体积。如果两种都想要就分别跑一次低调制和无调制的流程比较结果看哪个更稳健。3.3 运行过程中的注意事项参数设置完点下Run之后就开始跑了。单被试的处理时间大约在20到40分钟具体取决于图像分辨率和电脑CPU性能。我这个数据集是192x192x192的矩阵配上8核的机器并行跑四个worker整体速度还可以接受。CAT12在每例数据处理完成时会弹出一个分割结果预览图。正常的分割结果是灰质、白质、脑脊液分别以红绿蓝颜色叠加在原始T1上脑组织边界清晰脑室内部没有被误标成灰质。如果你发现某一例分割结果明显不对劲比如白质区域大面积缺失或者脑室被标成灰质赶紧记录下来等整批跑完单独处理。跑批的时候还有个细节就是临时文件的清理。CAT12运行过程会产生一些临时文件如果磁盘空间紧张建议定期清理。另外一个更现实的建议是大批量数据跑之前先用3到5例做试运行反复确认参数和输出文件符合预期后再把所有被试放进去跑。我见过很多人一口气跑一百多例跑到三十例发现参数错了只能全部重来。3.4 输出文件解读哪些必须保留VBM预处理跑完每个被试会生成一堆文件。很多朋友看着这堆文件不知道哪些有用就把全部文件一股脑留着其实没必要。最核心的文件是mwp1_开头的也就是调制后的灰质图像这是VBM组间分析的主力文件。如果开了平滑还会生成smwp1_开头的文件那就是平滑后的调制灰质图可以直接进统计模型。p1_文件是原始空间的灰质分割概率图一般用于手动检查分割效果。w1_文件是配准到标准空间但没有调制的灰质图分析灰质密度时才用得上。还有一个容易被忽略但非常有用的输出是每个被试对应的xml文件。这个xml里包含了ICV、灰质总体积、白质总体积、脑脊液体积等数值统计阶段提取出来就能作为协变量。不需要自己再用什么复杂的形态学方法估算颅内容积CAT12已经帮你算好了。4. SBM皮层表面分析的预处理流程4.1 SBM能提取哪些皮层指标SBM和VBM虽然共享同一个预处理阶段但输出和分析对象完全不同。SBM的核心是重建大脑皮层的中层表面然后在这个表面上计算各种几何指标。最常用的指标有五个。皮层厚度就是灰质从白质表面到软脑膜表面的距离这是应用最广的指标。沟深指的是皮层褶皱凹陷的深度反映了脑沟的形成程度。皮层折叠系数和回旋指数衡量的是皮层折叠的复杂程度数值越大说明折叠越厉害。还有一个分形维度指标它从整体上描述皮层表面的复杂性和不规则程度。用个生活化的类比来解释VBM和SBM的区别。把大脑想象成一张揉皱了的报纸VBM做的是比较不同报纸之间各个区域油墨的密度差异而SBM做的是展开这张报纸具体测量每一处折痕的深度和弯曲程度。前者知道哪里有差异后者知道差异到底是什么样的几何学改变。4.2 CAT12中Surface预处理的设置SBM预处理在CAT12里和VBM是打通的不需要单独再跑一遍分割。进入VBM预处理Batch之后有一个选项是处理模式选择“Segment and Surface”模式就可以在一次运行中同时生成体积分析和表面分析所需的一切文件。如果当初只跑了VBM而没跑Surface后面想补做SBM可以在CAT12主界面选择Surface模块然后加载原始T1图像和已有的分割结果。但这样做稍微麻烦一点不如一开始就选Segment and Surface模式反正多花的时间非常有限。SBM处理内部有几个参数值得注意。Central Surface估计一般保持默认也就是基于投影的厚度估计算法英文缩写是PPT。Advanced settings里有几个勾选项建议勾上Avoid sulcal CSF这个选项可以避免脑沟内的脑脊液被错误地算进皮层厚度。输出设置里可以勾选需要计算哪些指标皮层厚度、沟深、折叠指数这些按实验需求勾选即可。皮层表面的平滑和体素数据不太一样。VBM那种三维高斯平滑不适合直接用在表面数据上CAT12专门提供了表面平滑工具cat_surf_smooth在皮层表面上沿网格结构进行平滑。推荐平滑核取10到15mm因为皮层厚度的空间变化比灰质体积更平滑用太小的核会出现噪声残留。4.3 SBM质控检查与错误识别表面重建是出了名的容易出错比体素分割出错的概率高很多。常见的问题包括表面出现空洞开裂、曲面穿进脑室、左右半球不对称、表面上有明显锯齿状凸起等等。质控的办法有两个。一个是CAT12运行结束后会用浏览器打开一份针对每个被试的报告里面包含重建后的皮层表面3D预览图。另一个是用CAT12的Surface模块里的QA工具做系统检查这个工具会生成一个覆盖全部被试的总报告标记出表面重建质量差的个体。如果发现某例表面重建质量不行先不要急着剔数据。有时候只是局部小问题可以回到Surface模块单独重新跑一次这例或者检查一下原始T1是否存在局部伪影。如果重新跑还是不行这类数据基本就要从SBM分析中剔除了。5. 常见问题与实战排坑实录5.1 典型报错与解决方案速查表预处理跑多了总会遇到各种报错我把这几年遇到的典型问题整理成了速查表方便大家直接对照。现象可能原因解决方法提示Out of memoryMATLAB可用内存不足关闭并行运算减少worker数量输入cat12提示未定义函数CAT12路径未正确添加重新用addpath添加工具箱路径某一被试分割评分很低原始图像质量差或灰白质对比不足结合QA报告判断是否需要剔除该被试转换后图像方向错乱使用了方向信息不完整的转换工具改用dcm2niix重新转换表面重建出现大量空洞颅骨去除不彻底或分割误差单独重跑该被试若仍失败则剔除SBM部分并行跑批时某个worker卡死内存不够时多worker互相抢占降低并行worker数量串行执行保险5.2 如何判断分割与配准质量CAT12在预处理结束时会在输出目录生成一个QA报告通常是以网页形式打开的包含每个被试的好几张检查图。重点看两个信息一个是分割后灰白质边界是否清晰、有无大片绿色脑脊液被标成红色灰质另一个是给出的质量评分等级。CAT12会用类似A、B、C的等级给每例数据打分如果出现C以下基本就要怀疑这例数据在后续统计中会产生影响。配准质量可以从一个很直观的角度判断。预处理生成的wmp1文件就是标准化后的灰质图你可以把所有被试的这些图像叠在一起生成一个平均图。正常配准很好时平均图应该是边界清晰、结构锐利的如果平均图模糊成一团说明配准质量不理想需要检查原始数据。5.3 预处理完成后数据如何为统计做准备预处理全部跑完之后还需要做几步整理工作才能进入统计阶段。VBM部分需要把所有被试的smwp1文件按组别整理到对应文件夹里然后在SPM的factorial design模块里建立双样本t检验或者方差分析模型。千万别忘了把ICV从xml文件里提取出来作为协变量放进模型。脑体积差异如果不做校正直接会影响灰质体积的比较结果。SBM部分稍微不同。CAT12自带的Surface Statistics模块可以直接在皮层表面上逐顶点进行组间比较界面里选好平滑后的表面数据指定组别和协变量就能跑顶点水平的统计分析。也可以把每个被试的皮层指标提取成矩阵用其他工具做图论分析或者机器学习分类这已经超出预处理的范畴了后面笔记再展开。写在后面这轮数据跑完我最大的感受是预处理阶段宁可慢也不要图快。数据预检、参数试跑、质量复核这些步骤每多花十分钟后面统计阶段就少一个未知变量。尤其是SBM的表面重建凡是前几年网络上有争议的结论回去翻一翻很多都翻车在表面重建的质量控制上。最后提醒一句SBM这个缩写在不同领域含义完全不同有人一听SBM以为是数据包络分析里的超效率SBM模型但这篇笔记里的SBM是脑影像领域的Surface-Based Morphometry两者完全是两码事。如果拿着脑影像的SBM关键词去检索经济管理类文献那肯定是找错方向了。先把数据预处理这一步踩实后面VBM和SBM的统计建模与结果解读才有意义这部分留在笔记2里继续写。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询