SPM中文教程汇总(已整理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、SPM的安装与启动
先安装matlab,然后将SPM复制到matlab下的一个文件夹(SPM2需要matlab6.0或以上版本)。启动matlab,首先set path,然后在matlab命令窗口中输入SPM即可启动,然后选择fMRI,也可以直接输入SPM fMRI
二、SPM数据处理概要
先将所得数据进行空间预处理(对齐,平滑,标准化等),然后进行模型估计(将刺激的时间、间隔与血流动力函数进行卷积,所得结果与全脑象素信号进行相关分析),最后察看结果。
三、SPM8数据处理的一般步骤
为方便后续的数据处理,如果数据分散处理后整合,建议所有处理数据路径保持一致,要统一路径。处理前首先要采用数据转换软件将dicom数据转换成SPM解析格式,然后进行数据预处理,预处理结束后到matlab安装目录中备份spm*.ps文件,其中包含了空间校正和标准化的信息,然后进行建模分析。
运行命令:spm fmri,打开spm8的操作界面
我们称左上侧的窗口为按钮窗口(button window),左下侧的窗口为输入窗口(input window),右侧大窗口为树形结构窗口或图形窗口(Tree Building Window or the graphics window)。
在spm8和spm5中,每一步处理都采用了直观的“树形结构”的面板,如果一个分支项左面有“+”号,你可以双击显示子分支项,如果一个分支项右面有“<-X”号,你必须为之指定选项(否则不能运行该tree),分支项的选项在其右侧面板指定,而帮助信息则在下面的面板中显示。如果我们处理数据没
有特殊需求,我们只关心带有“<-X”项目并完成输入即可,其余均可采用默认设置。另外注意在Tree Building Window的顶部菜单,新增了一个菜单项“TASKS”,在使用批处理分析时非常重要。
以下内容,还可以参考E:\《汇总》中“静息态fMRI的数据预处理流程”这部分的讲述。
1、转换数据
dicom格式转换为img文件,将以层为单位的数据转换成以全脑为单位的数据。转换时格式请选择NIfTI,可用SPM输入面板中的DiCOM Import模块转换,也可以采用专门的转换软件,如MRIcovert。
2、Slice timing
校正1个volume中层与层之间获取(采集)时间的差异,即纠正slice(下译为扫描层)之间采集时间的差异。这对事件相关设计的实验尤为重要,使一个TR中的各层获得时间一致(如都在一个TR的开始),相当于AFNI中tshift所做的工作。校正后的新文件名为:a+原文件名。
原理概述:Sliceorder(扫描层序数)用于指明扫描层被采集时的顺序,其总数为n,n即一个volume (volume为一个TR时间内的扫描量)里面所包含的扫描层的总数。每个Sliceorder(扫描层系数)同时指明了每个扫描层在图像文件中的存储位置。因此扫描层系数表明了扫描层被采集时的时间顺序。我们可以用SPM的Display功能来查看这个顺序。移动鼠标的十字准线到Z 坐标为1的位置时,我们看到的就是一个volume里面第一个slice(扫描层)上的象元(voxel)。核磁仪采集数据的时间精度为一个TR,因此我们通常默认一个TR内采集到的数据(一个volume)采自完全相同的时间。但事实并非如此,一个TR内我们需要采集很多扫描层(例如20层)的数据以覆盖较大的脑区(通常是全脑)。这些扫描层是一个接一个按照上面所说的sliceorder(扫描层序数)的顺序来采集的,因此各个扫描层之间的采集时间是有差异的。Slice timing这一步所要做的就是通过一定的算法纠正这一时间差异。常规的纠正方法是在保持整段采集信号不变的条件下推前或者推后采集的起始时间。这可以通过简单的移动采集信号的正弦相位来做到。一种常用的数学转换方法:傅立叶转换可以把任何复杂信号转换为由不同频率和相位的简单正弦曲线的线性组合。这样,只要通过加入一个常数到每个频率的相位中,就可以达到移动数据起始和结束时间的目的。
我们在按钮窗口中的预处理面板中点击“Slice Timimg”,将出现如下对话框:
对上图右侧选项我们做如下设置————
Data,预备数个被试或者session的数据。以下所述参数设置将被应用到所有所选数据。点击data 并在下面的面板中点击“new session”,这样在data下会出现“session”的分支项,选中该项并点击面板下方的“select files”,然后用spm文件选择器选择你要处理的数据,最后点击“Done”。选择数据时可以把静息态、数值任务和物理大小任务分为三个session来选(data——new session——session),也可以作为一个session来选,结果是一样的。
Number of Slices,我们输入每祯图像的层数,如“32”,即扫描层总数。
TR,我们输入重复时间,一般为2秒,我们输入“2”
TA,是每祯图像获取第一层开始到获取最后一层图像的时间间隔,单位为秒。一般可以用以下公式计算:TA=TR-(TR/扫描层数)。这里可以不必计算出结果,直接写上带入了数字的公式就可以了。比如,TR为3秒,扫描了20层,则可以直接写为:3-(3/20)。我们的数据则输入“2-2/32”
Slice order,输入扫描顺序。如前述此顺序可通过SPM的Display功能查看。我们输入“1:2:31, 2:2:32”。指定层获取顺序的层次序参数是一个含N个数的向量,这里N是每个volume所含的层数。每一个数表示该层在图像(volume)中的位置。向量内的数字排列顺序是这些层的获取时间顺序。如行向量[1 3 5 7 9 11 13 15 17 19 21 23 25 2 4 6 8 10 12 14 16 18 20 22 24](在Matlab中可表示为[1:2:25,2:2,25]) 各种扫描类型和输入的层顺序如下:ascending 升序扫描(first slice=bottom,扫描序数从底部到顶部排列,即从1顺序递增到n): [1:1:nslices];descending 降序扫描(first slice=top,扫描序数从顶部到底部排列,即从n顺序递减到1): [nslices:-1:1];interleaved 间隔扫描(扫描序数间隔递增或递减,一般顺序为2,4,6,8,10..1,3,5,7,9..n)(middle-top):for k = 1:nslices,round((nslices-k)/2 + (rem((nslices-k),2) * (nslices - 1)/2)) + 1,end;interleaved (bottom -> up): [1:2:nslices 2:2:nslices],如[1:2:25,2:2,25];interleaved (top -> down): [nslices:-2:1, nslices-1:-2:1]