SPM12核磁数据预处理傻⽠攻略
总体的分析逻辑
1. Dicom转Nifti,去掉前10个由于机器因素不稳定的时间点,⼿动将结构像的图像的original定位到AC(前联合),并且如果结构像的
⽅向旋转地太厉害也需要⼈⼯调整⼀下,使⽤的是SPM中的Display⼯具,先t orient再reorient。
2. Temporal preprocessing:Slice Timing时间层校正
3. Spatial preprocessing:
1. Realign头动校正,会⽣成rp开头的头动参数⽂件,头动过⼤标准为2mm和2°。
2. Coregister配准(将结构像与功能像位置对准)
3. Segment分割(将与功能像配准的结构像分割成灰质,⽩质,脑脊液),在这⼀步的Deformation fields中选择Forward就会
把分割的⽂件normali到MNI空间(这⼀点跟VBM分析中使⽤DARTEL的Normali
to MNI是不同的,VBM中使⽤的是原始的结构像⽂件⽽不是与功能像配准后的结构像⽂件)。Deformation
field⽣成的是y开头的nii⽂件。
4. Normali归⼀化,将头动校正后的功能像⽂件与归⼀化到MNI空间,这⼀步就需要⽤到上⼀步的y开头的⽂件。
5. Normali归⼀化,再做⼀次归⼀化是为了将bia corrected的结构像(在Segment阶段⽣成的m开头⽂件)也归⼀化到MNI空
间,这样你就可以把归⼀化后的功能像w开头⽂件superimpod到归⼀化后的结构像w开头的⽂件上。
6. Smooth平滑,Smooth是⼀种空间上的滤波,⽽之后的去线性趋势和低通滤波是时间上的滤波,其作⽤如下图(图⽚来⾃
于):
4. 下⾯两步是SPM的预处理过程中没有的,但是⼀般也需要做,我之后应该会⽤DPARSF或者REST来做这两步吧,现在这⾥写出来,
避免有⼈觉得只做到Smooth就结束了
Detrend去线性趋势,也就是⾼通滤波(让⾼频的信号留下来,⽽把低频的信号去掉就叫做⾼通滤波,反之就叫做低通滤波),在SPM 的1-st level分析中包括了这⼀步,所以如果处理的是任务态的功能像数据就可以只使⽤SPM了。
Filter低频滤波(0.01~0.08Hz)和去除协变量,这⼀步多⽤在静息态的数据处理中。
与时间上的滤波相关的问题:
步骤1:安装好Matlab
(要⽤SPM12这个版本的话要是Matlab2012以后的版本,我之前装的2016b按道理是可以的,但是后来legend函数更新失败,导致realignment部分报错,在运⾏batch的时候会出现问题,所以安装的时候最好是能装新的就装新的版本。)
ps:注意matlab的安装路径,以及之后⼯作的路径都不要有中⽂,虽然matlab⽀持中⽂,但是很多时候还是会出现这样那样的问题。
步骤2:下载SPM12
,然后把它解压到Matlab的安装地址下的toolbox⽂件夹中,最后的样⼦就是下图这样:
步骤3:设置SPM的路径
打开matlab,在设置路径(下⾯第⼀幅图)中,选择“添加并包含⼦⽂件夹”,找到toolbox中的spm12⽂件夹,然后点击保存,最后关闭(看下⾯第⼆幅图)。现在你就可以开始使⽤SPM12了。
步骤4:整理核磁数据⽂件
把你的核磁数据都转成nii的格式,这⼀步可以使⽤SPM中的Dicom Import,也可以选⽤其它的⽅法。总之,最后你需要把⽂件的格式整理成下图的形式:
然后,强烈建议整个data⽂件夹先备份⼀份。接着删除每个ssion的前10个时间点(也就是前⼗个nii⽂件,这⾥不⼀定是10个,按照需要可以删掉8~12个)。
⼿动将结构像的图像的original定位到AC(前联合),并且如果结构像的⽅向旋转地太厉害也需要⼈⼯调整⼀下,使⽤的是SPM中的Display⼯具,先t orient再reorient。
步骤5:把Matlab的⼯作路径改成data⽂件夹的地址
(如图),在Matlab的命令⾏窗⼝输⼊:spm fmri 然后回车,这样就会打开SPM12分析核磁数据的窗⼝了。如果你只输⼊spm,然后回车的话就会出现⼏个选项,其中有fmri,点击那个按钮也可以打开
分析核磁数据的窗⼝。
步骤6:开始分析
点击Menu窗⼝中的Batch,打开了⼀个Batch editor界⾯,然后在其中的SPM中分别选择 ① SPM-Temporal-Slice Timing(下⾯第⼆张图,其它选择⽅法类似) ② SPM-Spatial-Realign-Realign:Estimate & Reslice③ SPM-Spatial-Coregister-Coregister:Estimate ④ SPM-Spatial-Segment⑤ SPM-Spatial-Normali-Normali:Write⑥ SPM-Spatial-Normali-Normali:Write⑦ SPM-Spatial-Smooth。最后的界⾯就如下⾯第三张图⽚所⽰。
注意:Normali:Write要选两次,然后这些modules的顺序不要搞乱了!
步骤7: Slice Timing
选中Slice Timing这个module,然后设置参数如下:
双击Data建⽴新的ssion,然后双击ssion后的<-X打开⼀个界⾯,添加单个ssion⽂件夹中的所有原始功能像.nii⽂件(如图⼀)。
Number of Slices是nii⽂件的扫描时的层数,我这⾥是35层。
TR为Time of Repetition,可以通过matlab中的dicominfo(‘XXX’)命令来查看,其中XXX为dicom⽂件的全写,最好包括⽂件的绝对地址,注意要加单引号。我这⾥的TR为3(单位是秒)。
TA=TR-TR/(Number of Slices),所以在这⾥是3-3/35(如图⼆)。
Slice order为[1:2:number_of_slices 2:2:number_of_slices],所以这⾥填⼊1:2:35 2:2:35(如图三)
Reference Slice设置为中间时间扫描的那⼀层,我们注意到在Slice order部分最后⽣产的矩阵为[1 3 5 7 9 11 13 15 17 19 21
23 25 27 29 31 33 35 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34],所以中间时刻扫描的层是第35层,所以
Reference Slice设为35。
最后所有Slice Timing的参数都设置好了,最终如下⾯第四张图所⽰