SPM中文教程汇总已.docx
《SPM中文教程汇总已.docx》由会员分享,可在线阅读,更多相关《SPM中文教程汇总已.docx(12页珍藏版)》请在冰豆网上搜索。
![SPM中文教程汇总已.docx](https://file1.bdocx.com/fileroot1/2022-10/11/5bb90ca9-8a12-477a-b871-9a48bb9191c4/5bb90ca9-8a12-477a-b871-9a48bb9191c41.gif)
SPM中文教程汇总已
Revisedasof23November2020
SPM中文教程汇总已
一、SPM的安装与启动
先安装matlab,然后将SPM复制到matlab下的一个文件夹(SPM2需要或以上版本)。
启动matlab,首先setpath,然后在matlab命令窗口中输入SPM即可启动,然后选择fMRI,也可以直接输入SPMfMRI
二、SPM数据处理概要
先将所得数据进行空间预处理(对齐,平滑,标准化等),然后进行模型估计(将刺激的时间、间隔与血流动力函数进行卷积,所得结果与全脑象素信号进行相关分析),最后察看结果。
三、SPM8数据处理的一般步骤
为方便后续的数据处理,如果数据分散处理后整合,建议所有处理数据路径保持一致,要统一路径。
处理前首先要采用数据转换软件将dicom数据转换成SPM解析格式,然后进行数据预处理,预处理结束后到matlab安装目录中备份spm*.ps文件,其中包含了空间校正和标准化的信息,然后进行建模分析。
运行命令:
spmfmri,打开spm8的操作界面
我们称左上侧的窗口为按钮窗口(buttonwindow),左下侧的窗口为输入窗口(inputwindow),右侧大窗口为树形结构窗口或图形窗口(TreeBuildingWindoworthegraphicswindow)。
在spm8和spm5中,每一步处理都采用了直观的“树形结构”的面板,如果一个分支项左面有“+”号,你可以双击显示子分支项,如果一个分支项右面有“<-X”号,你必须为之指定选项(否则不能运行该tree),分支项的选项在其右侧面板指定,而帮助信息则在下面的面板中显示。
如果我们处理数据没有特殊需求,我们只关心带有“<-X”项目并完成输入即可,其余均可采用默认设置。
另外注意在TreeBuildingWindow的顶部菜单,新增了一个菜单项“TASKS”,在使用批处理分析时非常重要。
以下内容,还可以参考E:
\《汇总》中“静息态fMRI的数据预处理流程”这部分的讲述。
1、转换数据
dicom格式转换为img文件,将以层为单位的数据转换成以全脑为单位的数据。
转换时格式请选择NIfTI,可用SPM输入面板中的DiCOMImport模块转换,也可以采用专门的转换软件,如MRIcovert。
2、Slicetiming
校正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(扫描层序数)的顺序来采集的,因此各个扫描层之间的采集时间是有差异的。
Slicetiming这一步所要做的就是通过一定的算法纠正这一时间差异。
常规的纠正方法是在保持整段采集信号不变的条件下推前或者推后采集的起始时间。
这可以通过简单的移动采集信号的正弦相位来做到。
一种常用的数学转换方法:
傅立叶转换可以把任何复杂信号转换为由不同频率和相位的简单正弦曲线的线性组合。
这样,只要通过加入一个常数到每个频率的相位中,就可以达到移动数据起始和结束时间的目的。
我们在按钮窗口中的预处理面板中点击“SliceTimimg”,将出现如下对话框:
对上图右侧选项我们做如下设置————
Data,预备数个被试或者session的数据。
以下所述参数设置将被应用到所有所选数据。
点击data并在下面的面板中点击“newsession”,这样在data下会出现“session”的分支项,选中该项并点击面板下方的“selectfiles”,然后用spm文件选择器选择你要处理的数据,最后点击“Done”。
选择数据时可以把静息态、数值任务和物理大小任务分为三个session来选(data——newsession——session),也可以作为一个session来选,结果是一样的。
NumberofSlices,我们输入每祯图像的层数,如“32”,即扫描层总数。
TR,我们输入重复时间,一般为2秒,我们输入“2”
TA,是每祯图像获取第一层开始到获取最后一层图像的时间间隔,单位为秒。
一般可以用以下公式计算:
TA=TR-(TR/扫描层数)。
这里可以不必计算出结果,直接写上带入了数字的公式就可以了。
比如,TR为3秒,扫描了20层,则可以直接写为:
3-(3/20)。
我们的数据则输入“2-2/32”
Sliceorder,输入扫描顺序。
如前述此顺序可通过SPM的Display功能查看。
我们输入“1:
2:
31,2:
2:
32”。
指定层获取顺序的层次序参数是一个含N个数的向量,这里N是每个volume所含的层数。
每一个数表示该层在图像(volume)中的位置。
向量内的数字排列顺序是这些层的获取时间顺序。
如行向量[13579111315171921232524681012141618202224](在Matlab中可表示为[1:
2:
25,2:
2,25])各种扫描类型和输入的层顺序如下:
ascending升序扫描(firstslice=bottom,扫描序数从底部到顶部排列,即从1顺序递增到n):
[1:
1:
nslices];descending降序扫描(firstslice=top,扫描序数从顶部到底部排列,即从n顺序递减到1):
[nslices:
-1:
1];interleaved间隔扫描(扫描序数间隔递增或递减,一般顺序为2,4,6,8,10..1,3,5,7,9..n)(middle-top):
fork=1:
nslices,round((nslices-k)/2+(rem((nslices-k),2)*(nslices-1)/2))+1,end;interleaved(bottom->up):
[1:
2:
nslices2:
2:
nslices],如[1:
2:
25,2:
2,25];interleaved(top->down):
[nslices:
-2:
1,nslices-1:
-2:
1]
ReferenceSlice,我们输入“31”。
选择参考扫描层(一般可使用默认值),其它扫描层的起始时间都将以此层的起始时间为标准来移动进行校正。
通常选择nslice/2,如25层时选择13层作为参考层。
FilenamePrefix,是指新生成的图像前加何标记,一般采用默认设置。
最后点击面板上方的向右的绿色三角即开始运行。
运行完后将会生成一系列a*.img文件,这就是时间校准后的数据。
注意很多研究者容易将时间校准和空间校准顺序颠倒,一般的观点是如果图像获取是隔层(interleaved)进行的,如1、3、5、7、9、2、4、6、8、10,则要先进行slicetiming再进行realign,如果图像各层是连续(sequential)获取的,如1、2、3、4、5、6、7、8、9、10,则要先进行realign再做slicetiming。
(为什么)
3、Realign(相当于AFNI中的registration)
分两步:
1)coregister,将每个session的第一个scan与第一个session的第一个scan进行比较,然后将每个session中的其他scan与本session中的第一个scan进行比较,得到每个文件的转换参数,生成文件,同时为每个session生成一个对齐参数(realignmentparameters),文件名为realignment_params_*.txt
2)reslice,用文件对重新切片,生成文件。
并可依选择生成一个平均象,名为。
以上两步具体解释如下——即使我们对被试的头部做了很好的固定,在实验过程中,被试也会不由自主的有一些轻微的头动,这在fMRI实验中尤为明显。
这一步就是把一个实验序列中的每一帧图像都和这个序列的第一桢图像按照一定的算法做对齐,以矫正头动。
做完这一步,能给出该序列中被试的头动情况,以作为是否放弃该数据的依据,如果头动超过1个voxel(功能图像扫描矩阵一般是64*64,则体素的大小为(FOV/64)*(FOV/64)*(层厚+层间距)),则要考虑放弃该时间点数据。
该程序利用最小二乘法(leastsquaresapproach)原理和含6个参数(刚体模型)的空间变换,对从一个被试获取的时间序列进行校正。
用户可指定某个volume作为随后volumes的参考。
可以是第1个volume,也可选择比较有代表性的volume(更明智的选择),例如选择磁场相对稳定的第4个volume。
校正信息(头动信息)将在结果窗口(GraphicsWindow)显示。
每个Session的校正信息将存储为rp*.txt,其中*为Session数据集名称。
另外,头动校正信息将以plot图形显示。
如下图:
Translation表示被试头部在X,Y,Z三个方向的平移,分别用蓝,绿,红三种颜色表示。
Rotation表示被试头部在实验过程当中绕X(L-R),Y(A-P),Z(S-I)三条轴的转动角度。
横坐标代表这个序列所采集的所有图像,纵坐标表示的是偏移量和偏转角度,分别以毫米和度为单位。
采用SPM8,头动信息和空间标准化的图形文件将以spm_“data”.ps的形式保存于matlab的工作目录下,如我们是2009年4月30日处理的数据,则将以文件存于matlab的work目录下。
我们在预处理面板校准选项中选择“Realign(Est&Res)”,出现如下对话框,我们按下面设置进行:
选中“data”,选择“NewSession”,然后选中data下出现的“Session”选项。
点击“SpecifyFiles”,用spm文件选择器选择刚做完时间校准的图像(a*.img)。
其余选项采用默认设置,点击上方绿色的三角开始运行。
Realign这一步也有分开进行的,具体描述如下——
Realign:
Estimate(重排参数的估计)
此步骤采用最小方差原理和六参数刚体空间变换来重排从同一个被试上采集到的图像数据。
使用者所选取的第一幅图像文件将被作为其它图像重排的参考标准。
也就是说,你想要用哪一幅图像作为参考标准,就先选哪一幅图像的文件。
参考图像文件不一定非用采集到的第一幅图像,使用最有“代表性”的一幅图像也许更好。
本步骤的目的主要是去除fMRI和PET数据中的运动伪影。
图像数据的头文件会被改写以反映数据相对空间位置的变化。
此过程的具体参数会在结果窗口中以平移(translation)和旋转(rotation)曲线图显示。
每个session的重排参数会被存储到名为rp*.txt的文件中。
这些参数可以在最后的一般线性模型统计估计中作为混淆因素考虑进去。
选择一个被试需要进行此步骤处理的所有sessions。
注:
在core