fMRI 研究说明:预处理和数据分析(使用 spm12)
建议参考:
SPM12 核磁数据预处理 傻瓜攻略_Iris_bysshqx17的博客-****博客_spm12
一、预处理 preprocessing
处理逻辑:创建文件夹 -> 数据格式转换 -> 数据预处理
这里是做一个batch,这样每次只改动前面几个没有dependancy的地方就可以。暂时没有想到更好的办法能一劳永逸:(,毕竟我暂时还不会写matlab脚本。
操作:在matlab输入spm fmri打开spm,点击最下方Batch按钮。
具体参数:
1. 创建文件夹 - 定义某一个subject的文件夹
操作:BasicIO --> File/Dir Operations --> Dir Operations --> Named Directory Selector
2. 创建文件夹 - 在该文件夹下创建BOLD和t1文件夹
操作:BasicIO --> File/Dir Operations --> Dir Operations --> Make Directory
(1)BOLD文件夹,存放所有由BOLD转化格式生成的nii文件
(2)t1,存放所有由T1转化格式生成的nii文件
3. 数据格式转换 - 命名原文件bold和t1,这一步可以不做,直接在后面的预处理过程中直接选中这些文件也可以
(1)BOLD
操作:BasicIO --> File/Dir Operations --> File Operations --> Named File Selector
图中案例原本有87个文件,删除正式实验之前的部分,这里删除6个,剩81个文件(*.IMA)
* 判断删几个:12s注视点,TR = 2,删除12/2 = 6个
(2)t1(*.IMA)
4. 数据格式转换 - DICOM文件转换为nii文件
原理:SPM可处理的数据格式为NifTi,因此要将数据格式转换为*.nii格式文件
操作:SPM --> util --> Import --> DICOM Import
bold文件转换为nii文件后放在BOLD文件夹中;t1文件转换为nii文件后放在t1文件夹中
(1)BOLD
(2)T1
5. 数据预处理 - 时间层矫正 slice timing
原理:Slice Timing通过插值算法,校正一个volume中slices之间扫描时间的差异
操作:SPM --> Temporal --> Slice Timing
输入:
双击Data --> 单击Session --> Dependancy --> 第一个DICOM Import(转换后的BOLD文件);
Number of Slices:一次全脑扫描fMRI图像的层数;
TR(Time of Repetition):一次全脑扫描的时间;
TA:一次全脑扫描中,最后一层与第一层的时间间隔;
Slice order:扫描顺序,这里是1:2:33 2:2:32;
Reference slice:时间层校正的参考层,也就是TR/2对应的层数
输出:矫正后文件(a开头)
6. 数据预处理 - 头动矫正 realign: estimate and reslice
原理:统计分析需要假设每个体素在各个时间点都对应大脑的同一个位置。头动校正是去除头动的干扰。
操作:SPM --> Spatial --> Realign --> Realign: Estimate and Reslice
输入:双击Data --> 右键单击Session --> Dependancy --> DEP Slice Timing 时间层矫正后的文件(或者文件夹中a开头的文件)
输出:矫正后文件(r开头文件)、平均脑文件(mean开头文件)、头动参数文件(rp_*.txt,包含6个参数,平移参数单位为mm,旋转参数单位为°)
7. 数据预处理 - 配准 coregister
原理:把高分辨率、高灰质/白质对比度的T1像配准到BOLD空间,结构像与功能像配准
操作:SPM --> Spatial --> Coregister --> Coregister: Estimate
输入: Reference Image --> 上一步生成的平均脑文件(meanimage);Source Image --> 转换后t1文件(第二个DICOM Import文件)
输出:得到一个新的t1像,覆盖了原来的t1像
8. 数据预处理 - 分割 segment
原理:分割灰质,白质和脑脊液
操作:SPM --> Spatial --> Segment
输入:
单击Volumes --> Dependancy --> 配准后的t1文件(如图);
Save Bias Corrected默认nothing,更改为Save Bias Corrected(磁场不均匀矫正);
Deformation Fields默认None,更改为Forward(非线性变换产生的变形场,从个体空间到MNI空间的转换Subj>MNI)
输出:y_*.nii文件(变形场图像)、ms*.nii文件(磁场不均匀性校正的结构像)、c*.nii(5个)
9. 数据预处理 - 标准化 normalise: write
原理:将个体的BOLD图像转化到标准空间
操作:SPM --> Spatial --> Normalise --> Normalise: Write
输入:如图
输出:从个体空间转化到MNI标准空间的BOLD图像(w*.nii)
10. 数据预处理 - 平滑 smooth
原理:消除不同被试脑结构细微差别而进行的空间平滑,提高数据的信噪比
操作:SPM --> Spatial --> Smooth
输入:
Images to smooth:标准化后的BOLD文件(如图);
FWHM(full-width at half maximum):将fMRI数据与一个三维高斯函数进行卷积积分,形成一个滤波器,滤波器的平滑范围可用高斯(Gaussian kernel)的半宽高,即FWHM来表示,一般设置为TR的2-3倍,此处设置为[6 6 6]。
输出:平滑处理后的BOLD文件(s6*.nii)
11. 结束
现在你的某一个subject文件夹中应当包含两个原文件夹,两个创建文件夹,其中包含我们刚刚操作过的所有文件。对所有subject进行同样的处理,然后就可以进行数据分析啦。
二、数据分析 analyzing
1. 个体水平分析 first level analysis
对预处理中平滑后的数据进行个体水平上的分析,是分别基于每个被试的fMRI时间序列进行分析
主要步骤:fMRI model specification -> Model estimation -> Contrast Manager
(1)定义存放路径
我在被试文件夹下新建了一个文件夹,叫做FirstLevel,来存放个体分析的数据
(2)fMRI model specification
Directory: 存放路径
时间参数设置:
Units for design: Scans / Seconds,是以秒为单位还是扫描为单位
Interscan interval: 相当于TR,一个扫描持续的时间
Microtime resolution:根据slice timing来设置,一个扫描内有多少层
Microtime onset: 一个扫描内的时间参考点(第几层,一般是一个扫描内的中间那一层的顺序值,比如一个扫描内有33层,onset就是第17层,这里设置17)
实验设计参数设置:
Scans:预处理平滑后的文件(w开头文件)
一个Condition内:
Name:名称
Onsets:出现的时间点(和之前设置的单位对应)
Duration:持续时间
(3)Model estimation
dependency:上一步生成的SPM.mat文件
(4)Contrast Manager
定义想要对比的条件