AI 开发 2026年9月7日 约 21 分钟 SPM 25.01.02 SPM12

SPM 25.01.02 还是 SPM12:2026 神经影像项目怎么选

新建神经影像项目通常应从 SPM 25.01.02 开始,而正在投稿、复现历史结果或依赖旧脚本的项目应先保留 SPM12。本文按新项目、在研论文、脚本开发者、无 MATLAB 用户与课题组管理员分别给出版本判断、验证证据、回退条件和双轨部署方法。

SPM 25.01.02 还是 SPM12:2026 神经影像项目怎么选

新建神经影像项目通常应从 SPM 25.01.02 开始,而正在投稿、复现历史结果或依赖旧脚本的项目应先保留 SPM12。本文按新项目、在研论文、脚本开发者、无 MATLAB 用户与课题组管理员分别给出版本判断、验证证据、回退条件和双轨部署方法。

新课题默认选 SPM 25.01.02;正在投稿、复现历史结果,或深度依赖旧脚本与第三方工具箱的项目,先保留 SPM12。迁移期间不要覆盖原环境,而应隔离安装两套版本,用同一份脱敏数据和代表性批处理做双轨回归。

这篇文章适合三类人:首次搭建 fMRI、PET、EEG 或 MEG 分析环境的研究生;正在用 SPM12 完成论文或复现实验的科研人员;以及负责 Apple Silicon Mac、MATLAB 授权和课题组环境交付的技术人员。

01

先按项目生命周期做版本判断

SPM 官方当前将 SPM 25.01.02 标记为稳定发行版,同时仍保留 SPM12 的历史代码与文档。SPM 官方安装说明也建议优先使用最新版本,但这不等于在研项目应当无条件升级。版本选择首先取决于项目是否已经产生需要复现的结果,而不是界面是否能正常打开。可先核对 SPM 25.01.02 官方发行页SPM 官方安装说明

项目状态 默认选择 迁移策略 通过标准 评分
新立项、没有历史结果 SPM 25.01.02 直接建立新版基线 版本、图形界面、最小批处理和结果文件均正常 5 / 5
已完成主要分析、准备投稿 SPM12 冻结旧环境,不在关键节点升级 原脚本和原始结果可重新生成 5 / 5
需要复现旧论文或公开数据 先用 SPM12 在副本上测试 SPM 25.01.02 预先定义的数值与文件差异标准通过 4 / 5
维护实验室脚本或扩展 双轨 逐项检查函数、字段、MEX 和工具箱 每个差异都有日志和解释 4 / 5
没有 MATLAB 许可证 视任务选择 Standalone 先验证扩展和批处理边界 Runtime、GUI、批处理和输出均可用 3 / 5

新建项目到底该从哪一版开始? 如果项目尚未产生正式结果,且没有必须沿用的课程模板、实验室脚本或第三方扩展,优先使用 SPM 25.01.02。这样建立的环境更容易记录当前稳定版本,也能避免把旧课程中的 SPM12 路径、默认参数和启动文件误认为长期标准。

SPM 的版本号已经采用日历式命名,SPM 25 对应版本系列,具体补丁发布号则写在发行版本中。版本应使用 spm('version')[v, r] = spm('ver') 记录,而不要只在论文中写“使用 SPM”。相关规则见 SPM 官方版本号说明

02

在研论文为什么不宜直接升级

SPM12 并不是简单的旧界面。官方 SPM12 说明明确指出,不同版本之间的 SPM.mat 等文件格式并不完全兼容,SPM12 的算法、模板和模型也可能与更早版本存在差异;SPM12 页面还列出了其适配的 MATLAB 范围。对于已经完成预处理、统计建模或主要图表的论文,升级版本会把软件变化和科研结论变化混在一起。可参考 SPM12 官方兼容性说明SPM12 发布说明

在研论文升级会不会影响结果复现? 会有这种可能,但不能只凭“新版能打开旧数据”来判断结果是否等价。至少应比较设计矩阵、参数估计、对比图、阈值后的显著区域、输出文件名称和关键日志;如果这些差异没有提前定义解释方式,就不应在投稿或审稿阶段直接切换版本。

建议保留以下只读副本:

  1. 原始输入数据及数据清单;
  2. 原始 SPM.mat、批处理脚本和启动文件;
  3. SPM、MATLAB、macOS、第三方工具箱的版本信息;
  4. 原始结果目录及生成时间;
  5. 论文中已经引用的关键数值和图表来源。

新版本只在复制目录中运行。若代表性被试、一个完整批处理和一个关键二级分析无法通过预先定义的复现标准,就停止迁移,继续使用 SPM12。

03

自定义脚本用户应采用双轨回归

SPM12 的批处理脚本能否直接在 SPM 25 运行,不能用“界面启动成功”作为答案。脚本可能调用旧函数名、默认参数、批处理字段、路径变量、第三方工具箱接口或平台专用的 MEX 文件。SPM 官方也说明,MEX 文件属于平台相关二进制文件;在 Apple Silicon 上,MATLAB 对应的扩展名是 mexmaca64,不能把 Intel 构建的二进制直接当作原生 Apple Silicon 文件使用。可核对 SPM MEX 编译说明MathWorks 的 MEX 平台兼容性文档

双轨回归不需要一开始重跑全部数据,先按以下顺序缩小问题范围:

  1. 记录环境:保存 verspm('version')computer('arch')、MATLAB 路径和工具箱列表。
  2. 检查调用关系:搜索脚本中的 spm_ 函数、matlabbatch 字段、cfg_dep 依赖和自定义路径。
  3. 检查扩展文件:列出所有 .mex*、Java 文件、动态库和第三方工具箱声明。
  4. 运行最小任务:用一个脱敏被试完成读取、预处理、模型估计和结果导出。
  5. 比较输出:比较日志、文件树、关键矩阵、图像尺寸、统计图和错误警告。
  6. 定义停止条件:任何无法解释的结果差异、缺失字段或随机崩溃,都触发回退到 SPM12。
  7. 形成迁移记录:注明通过了哪些任务、哪些扩展仍不可用,以及下一次复核的条件。

如果实验室脚本只依赖纯 MATLAB 代码,迁移风险可能低于包含 MEX 或外部工具箱的流程,但这只是风险判断,不能替代实际回归。

04

没有 MATLAB 许可证时,Standalone 不是无条件替代

SPM 25 提供不依赖 MATLAB 许可证的 Standalone 路线。官方文档说明,Standalone 包含匹配版本的 MATLAB Runtime;运行时仍需要安装对应 Runtime,官方示例中该运行环境约占 2.5 GB,首次启动还可能需要解包并写入可写目录。相关边界见 SPM Standalone 官方文档

没有 MATLAB 许可证能不能使用 SPM 25 Standalone? 可以,但应先判断任务是否只使用核心 SPM。Standalone 适合执行已经准备好的批处理、运行基础图形界面和完成不依赖额外编译的分析;官方文档同时说明,贡献型工具箱不能直接加入现成 Standalone,需要重新编译。

因此,预算有限的学生不应只比较许可证成本,还要检查:

  • 是否需要自定义 MATLAB 函数;
  • 是否依赖额外 MATLAB 工具箱;
  • 是否使用实验室内部扩展;
  • 是否需要重新生成 MEX 文件;
  • 是否需要交互式调试和逐行修改脚本;
  • 是否能接受通过命令行或批处理运行。

如果论文流程依赖自定义代码,先用少量脱敏数据验证 Standalone 的完整链路,再决定是否采用。只要扩展无法加载,或批处理输出与 MATLAB 版本不同,就保留有 MATLAB 的 SPM12 或 SPM 25 环境。

05

Apple Silicon Mac 上必须隔离两套环境

Apple Silicon 环境的风险不只来自芯片,还来自 MATLAB 架构、MEX 文件、启动路径和可写目录。MathWorks 当前文档显示,原生 Apple Silicon MATLAB 从 R2023b 开始提供;Intel 版 MATLAB 与 Apple Silicon 版是不同应用,部分旧版本和工具箱需要单独核对。可参考 MathWorks Apple Silicon 支持说明

在同一台 Apple Silicon Mac 上并行维护两个 SPM 版本时,应怎样避免路径冲突? 核心不是简单建立两个文件夹,而是把以下资源全部分开:

  • SPM 程序目录;
  • MATLAB 搜索路径;
  • startup.m 或实验室启动脚本;
  • 批处理工作目录;
  • 临时目录与缓存目录;
  • 输出结果目录;
  • 第三方工具箱和 MEX 文件。

可以采用类似下面的目录结构:

~/neuro/spm25/
~/neuro/spm12/
~/neuro/projects/project-a-spm25/
~/neuro/projects/project-b-spm12/
~/neuro/toolboxes/spm25/
~/neuro/toolboxes/spm12/

每次启动 MATLAB 后,先执行 restoredefaultpath,再只添加当前项目需要的 SPM 和工具箱路径。不要把两套 SPM 同时写入全局 savepath,否则脚本可能调用到错误版本。

远程 macOS 环境还要额外分开判断两件事:网络交互体验与主机端计算结果。VNC 画面延迟会影响点击和图形界面操作,但不能直接说明 SPM 的计算性能;批处理是否连续运行、结果是否完整生成,应通过日志、文件校验和退出状态判断。需要先搭建环境时,可参考 Apple Silicon Mac 上的 MATLAB 科研环境;如果课题组准备长期自购设备,也可以对照 Mac 购买方案说明

06

课题组管理员应把迁移变成可回退流程

对于实验室技术支持人员,最稳妥的规则不是强制所有人统一升级,而是按项目生命周期管理:

  • 新项目:默认交付 SPM 25.01.02,并保存最小基线任务;
  • 在研项目:冻结 SPM12,除非论文节点已经完成;
  • 迁移项目:同时保留 SPM12 与 SPM 25.01.02,完成双轨回归后再决定;
  • 自定义工具箱项目:先审计函数、批处理字段、MEX 和许可证,再安排迁移;
  • 无 MATLAB 用户:先验证 Standalone 的 Runtime、GUI、批处理和扩展边界。

每个项目至少应有一张环境记录单,包含 SPM 版本、MATLAB 版本、macOS 版本、机器架构、工具箱、脚本提交版本、输入数据校验值和回退位置。若任何关键输出无法解释,停止条件优先于“尽快统一版本”。

最终怎么做选择?

  • 新课题没有历史结果:选 SPM 25.01.02。
  • 在研论文已经形成结果:继续用 SPM12。
  • 需要复现旧论文:先用 SPM12 重建原环境,再在副本测试新版。
  • 有复杂脚本或第三方工具箱:双轨运行,逐项回归。
  • 没有 MATLAB:先验证 Standalone 是否覆盖完整流程。
  • 使用 Apple Silicon:分别验证原生架构、MEX、批处理和结果下载。

如果当前方案是实验室 Linux 或 Windows 主机,真实缺点通常是:没有原生 macOS 环境、无法直接验证 Apple Silicon 下的 MEX 加载、远程桌面与本地图形行为可能不同,而且多人共用环境容易污染 MATLAB 路径。对于只需要完成一次版本迁移验证、又不希望为临时课题提前采购 Mac 的团队,按周或按月租用 VNCMac 的远程 Apple Silicon Mac,更适合搭建隔离环境、保留 SPM12 与 SPM 25.01.02,并用同一套脱敏任务完成回归。长期满负载计算、连接实验仪器或处理不能离开校内网络的敏感数据,则仍应优先评估自购设备或校内专用主机。