找回密码
 立即注册
搜索
查看: 356|回复: 0

通过脚本使用SPM12

[复制链接]

20

主题

437

回帖

92

贡献

中级会员

积分
1265
发表于 2023-8-13 20:38:15 | 显示全部楼层 |阅读模式
本帖最后由 Alex 于 2023-8-13 20:39 编辑

一、使用脚本的必要性

1. SPM12里有些模块的图形界面(GUI)只能处理单个被试,比如,Specify 1st-level,但是实践中不可能只处理一个被试,如果每个被试都用GUI设置一遍,非常繁琐而且容易出错。

2. 使用脚本可以更容易把不同处理模块串联起来。一旦建立了一个处理流程后,相似的数据集可以重复使用脚本。当然,SPM12的Batch System也可以使用图形界面的方式将不同处理模块串联起来,但是还是会有无法处理多个被试的困难。

3. 更容易和其他处理软件结合起来使用。

4. 更容易在集群服务器上使用。

二、使用方法

1. 针对某一个模块(比如,Segment模块),使用GUI设置一个被试的数据并运行。

2. 在图形窗口菜单栏选择File -> Save Batch and Script,会生成*.m和*_job.m两个文件,其中*表示设置的文件名,*_job.m里包含进行Segment任务所需要的代码,如下图所示:

fig01.png

fig02.png

3. 在上述代码最开始的部分加上初始化的代码,在结束的部分加上运行任务的代码,如下所示:

  1. %% initialize
  2. spm('defaults', 'fmri');
  3. spm_jobman('initcfg');
  4. %% some job-related code
  5. matlabbatch{1}.spm...=...;
  6. %% run current job
  7. spm_jobman('run', matlabbatch);
复制代码

4. 比较使用GUI和使用脚本得到的结果是否一致,确保脚本正确。

5. 添加一些循环和输入输出的Matlab代码来处理所有被试的数据,需要一些基本的Matlab编程知识,这里不做介绍。

一个更完整的例子可以参考我的博客:https://learning-archive.org/?p=491。我个人对SPM12日常使用不多,还在积极学习中,有不准确的地方,欢迎指正。

三、参考资料

1. SPM12的官方文档:https://www.fil.ion.ucl.ac.uk/spm/doc/manual.pdf

2. SPM12的官方教程:https://www.fil.ion.ucl.ac.uk/spm/docs/tutorials/
学习记录:learning-archive.org
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|神经影像技术社区

GMT+8, 2024-5-4 07:24 , Processed in 0.100251 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表