【数据处理】Matlab 环境下安装 SPM 与 CAT 工具并进行脑核磁数据预处理

  接触了一个新领域,预处理脑部核磁,记录一下从安装到入门的过程。SPM 和 CAT 都是基于 Matlab 的工具箱,若没有安装 Matlab,则需要使用 Matlab runtime 配置。


1、SPM 安装

   (1)下载地址:https://github.com/spm/spm/releases/tag/26.10.01

   **(2)安装部署:**将下载好的压缩包解压后,复制到 Matlab 的安装路径下: C:\Program Files\MATLAB\R2023a\toolbox

  SPM 解压后文件如下:

   (3)环境配置:打开 Matlab 主页,选择设置路径 ,选择添加并包含子文件夹,添加 SPM 路径:C:\Program Files\MATLAB\R2023a\toolbox\spm,并保存

   **(4)成功验证:**命令行窗口内输入 "spm" 无报错,即安装成功。


2、CAT 安装

   (1)下载地址:https://github.com/ChristianGaser/cat12/releases/tag/26.0

   **(2)安装部署:**将下载好的压缩包解压后,复制到 SPM 的安装路径下: C:\Program Files\MATLAB\R2023a\toolbox\spm\toolbox

  CAT 解压后文件如下:

   **(3)成功验证:**命令行窗口中,输入 "spm fmri" ,在弹出窗口的 Toolbox 中选择 CAT,即可弹出 CAT 操作界面。

  CAT 工具箱操作界面如下:


3、脑部 T1w 处理示例

  点击 CAT 工具箱中的 Segment,弹出如下 Batch Editor 窗口:

  双击第二行 Volumes, 选择存储路径下的 nii 文件:

  选择 Done 后,点击 Batch Editor 窗口左上角的 绿色三角 ▶ 按钮开始运行。

配置预处理选项:在默认参数下,CAT 会自动执行以下预处理全部流程:

  • 偏置场校正 (Bias field correction): 自动进行,用于修正 MRI 扫描中的强度不均匀性。
  • 颅骨剥离 (Skull stripping): 自动识别并去除头皮、颅骨等非脑组织。
  • 非线性空间归一化 (Normalization): 默认使用 DARTEL 算法,将图像非线性配准到 MNI 标准空间。
  • 组织分割 (Segmentation): 将脑组织分为灰质 (GM)、白质 (WM) 和脑脊液 (CSF)。

运行结束后,mri 文件夹中 6 种文件:

  • p0sub:组织分割概率图 ,这是颅骨剥离后的核心结果。它包含了灰质、白质、脑脊液等组织的概率分布。p0 意味着这是原始空间下的分割结果,是后续分析的基础。
  • mwp1sub 与 mwp2sub:调制后的灰质和调制后的白质图像 ,这是做 VBM(基于体素的形态学分析) 最核心的文件。w 代表已非线性归一化到 MNI 空间;m 代表进行了"调制(Modulation)",即把配准过程中拉伸/压缩的体积变化补偿了回来。在做 VBM 统计前,通常需要先对这两个文件进行 8mm 的高斯平滑。
  • wmsub:归一化到 MNI 空间且经过偏置场校正的 T1 图像 ,它看起来就是一个标准的、摆正了的脑部 T1 图像。通常用于作为背景图,将其他分析结果(如激活图)叠加在上面进行可视化。文件较小是因为它被重采样到了 MNI 空间的低分辨率网格上。
  • y_sub:形变场文件 ,记录了从受试者原始空间"扭曲"到 MNI 标准空间的数学变换矩阵/向量。如果想把其他模态的图像(比如 PET 或 fMRI)也配准到 MNI 空间,或者把 MNI 空间的图谱反推回原始空间,就需要用到这个文件。
  • nsub:未调制/原始空间的组织图或高分辨率图像 ,保持原始分辨率未经重度重采样的空间归一化图像,主要用于保留最原始的高清细节。

检查以上结果文件: 切换 SPM 界面,点击 Check Reg,选择 mri 文件夹中的所有文件:

显示如下所示:


  又学会了新技巧 (●'◡'●)

相关推荐
机器学习之心1 小时前
把 PINN 塞进群智能反演:一次可审计的结构损伤识别 MATLAB 复现
matlab
机器学习之心8 小时前
基于CNN-BiLSTM的轴承剩余寿命预测,MATLAB代码
matlab·cnn·cnn-bilstm·轴承剩余寿命预测
苦瓜汤补钙10 小时前
Matlab 2022b(中文)的使用教程——Win11
开发语言·matlab
星夜离尘561 天前
MATLAB 工程实验:滞回加持续时间报警,把 UNKNOWN 留在状态机里
开发语言·matlab
星夜离尘562 天前
MATLAB 只剩批次摘要怎么合并方差:用 n、mean、M2 保留批间差异
开发语言·matlab
爱喝热水的呀哈喽3 天前
HEJIAN RESEARCH
开发语言·matlab
星夜离尘563 天前
MATLAB阶跃响应怎么量:别把最后一个采样点当成稳态
开发语言·matlab
星夜离尘563 天前
MATLAB滑动RMS如何接报警:窗口未满和缺样不能当成正常
开发语言·matlab
机器学习之心3 天前
给地铁牵引系统做一次“体检“:灰色聚类 + 正态云模型的MATLAB完整实现
matlab·数据挖掘·聚类