新课题默认选 SPM 25.01.02;正在投稿、复现历史结果,或深度依赖旧脚本与第三方工具箱的项目,先保留 SPM12。迁移期间不要覆盖原环境,而应隔离安装两套版本,用同一份脱敏数据和代表性批处理做双轨回归。
这篇文章适合三类人:首次搭建 fMRI、PET、EEG 或 MEG 分析环境的研究生;正在用 SPM12 完成论文或复现实验的科研人员;以及负责 Apple Silicon Mac、MATLAB 授权和课题组环境交付的技术人员。
新建神经影像项目通常应从 SPM 25.01.02 开始,而正在投稿、复现历史结果或依赖旧脚本的项目应先保留 SPM12。本文按新项目、在研论文、脚本开发者、无 MATLAB 用户与课题组管理员分别给出版本判断、验证证据、回退条件和双轨部署方法。
新建神经影像项目通常应从 SPM 25.01.02 开始,而正在投稿、复现历史结果或依赖旧脚本的项目应先保留 SPM12。本文按新项目、在研论文、脚本开发者、无 MATLAB 用户与课题组管理员分别给出版本判断、验证证据、回退条件和双轨部署方法。
新课题默认选 SPM 25.01.02;正在投稿、复现历史结果,或深度依赖旧脚本与第三方工具箱的项目,先保留 SPM12。迁移期间不要覆盖原环境,而应隔离安装两套版本,用同一份脱敏数据和代表性批处理做双轨回归。
这篇文章适合三类人:首次搭建 fMRI、PET、EEG 或 MEG 分析环境的研究生;正在用 SPM12 完成论文或复现实验的科研人员;以及负责 Apple Silicon Mac、MATLAB 授权和课题组环境交付的技术人员。
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 官方版本号说明。
SPM12 并不是简单的旧界面。官方 SPM12 说明明确指出,不同版本之间的 SPM.mat 等文件格式并不完全兼容,SPM12 的算法、模板和模型也可能与更早版本存在差异;SPM12 页面还列出了其适配的 MATLAB 范围。对于已经完成预处理、统计建模或主要图表的论文,升级版本会把软件变化和科研结论变化混在一起。可参考 SPM12 官方兼容性说明 与 SPM12 发布说明。
在研论文升级会不会影响结果复现? 会有这种可能,但不能只凭“新版能打开旧数据”来判断结果是否等价。至少应比较设计矩阵、参数估计、对比图、阈值后的显著区域、输出文件名称和关键日志;如果这些差异没有提前定义解释方式,就不应在投稿或审稿阶段直接切换版本。
建议保留以下只读副本:
SPM.mat、批处理脚本和启动文件;新版本只在复制目录中运行。若代表性被试、一个完整批处理和一个关键二级分析无法通过预先定义的复现标准,就停止迁移,继续使用 SPM12。
SPM12 的批处理脚本能否直接在 SPM 25 运行,不能用“界面启动成功”作为答案。脚本可能调用旧函数名、默认参数、批处理字段、路径变量、第三方工具箱接口或平台专用的 MEX 文件。SPM 官方也说明,MEX 文件属于平台相关二进制文件;在 Apple Silicon 上,MATLAB 对应的扩展名是 mexmaca64,不能把 Intel 构建的二进制直接当作原生 Apple Silicon 文件使用。可核对 SPM MEX 编译说明 与 MathWorks 的 MEX 平台兼容性文档。
双轨回归不需要一开始重跑全部数据,先按以下顺序缩小问题范围:
ver、spm('version')、computer('arch')、MATLAB 路径和工具箱列表。spm_ 函数、matlabbatch 字段、cfg_dep 依赖和自定义路径。.mex*、Java 文件、动态库和第三方工具箱声明。如果实验室脚本只依赖纯 MATLAB 代码,迁移风险可能低于包含 MEX 或外部工具箱的流程,但这只是风险判断,不能替代实际回归。
SPM 25 提供不依赖 MATLAB 许可证的 Standalone 路线。官方文档说明,Standalone 包含匹配版本的 MATLAB Runtime;运行时仍需要安装对应 Runtime,官方示例中该运行环境约占 2.5 GB,首次启动还可能需要解包并写入可写目录。相关边界见 SPM Standalone 官方文档。
没有 MATLAB 许可证能不能使用 SPM 25 Standalone? 可以,但应先判断任务是否只使用核心 SPM。Standalone 适合执行已经准备好的批处理、运行基础图形界面和完成不依赖额外编译的分析;官方文档同时说明,贡献型工具箱不能直接加入现成 Standalone,需要重新编译。
因此,预算有限的学生不应只比较许可证成本,还要检查:
如果论文流程依赖自定义代码,先用少量脱敏数据验证 Standalone 的完整链路,再决定是否采用。只要扩展无法加载,或批处理输出与 MATLAB 版本不同,就保留有 MATLAB 的 SPM12 或 SPM 25 环境。
Apple Silicon 环境的风险不只来自芯片,还来自 MATLAB 架构、MEX 文件、启动路径和可写目录。MathWorks 当前文档显示,原生 Apple Silicon MATLAB 从 R2023b 开始提供;Intel 版 MATLAB 与 Apple Silicon 版是不同应用,部分旧版本和工具箱需要单独核对。可参考 MathWorks Apple Silicon 支持说明。
在同一台 Apple Silicon Mac 上并行维护两个 SPM 版本时,应怎样避免路径冲突? 核心不是简单建立两个文件夹,而是把以下资源全部分开:
startup.m 或实验室启动脚本;可以采用类似下面的目录结构:
~/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 购买方案说明。
对于实验室技术支持人员,最稳妥的规则不是强制所有人统一升级,而是按项目生命周期管理:
每个项目至少应有一张环境记录单,包含 SPM 版本、MATLAB 版本、macOS 版本、机器架构、工具箱、脚本提交版本、输入数据校验值和回退位置。若任何关键输出无法解释,停止条件优先于“尽快统一版本”。
最终怎么做选择?
如果当前方案是实验室 Linux 或 Windows 主机,真实缺点通常是:没有原生 macOS 环境、无法直接验证 Apple Silicon 下的 MEX 加载、远程桌面与本地图形行为可能不同,而且多人共用环境容易污染 MATLAB 路径。对于只需要完成一次版本迁移验证、又不希望为临时课题提前采购 Mac 的团队,按周或按月租用 VNCMac 的远程 Apple Silicon Mac,更适合搭建隔离环境、保留 SPM12 与 SPM 25.01.02,并用同一套脱敏任务完成回归。长期满负载计算、连接实验仪器或处理不能离开校内网络的敏感数据,则仍应优先评估自购设备或校内专用主机。