SPM8安装与fMRI预处理步骤详解

5星 · 超过95%的资源 需积分: 48 90 下载量 183 浏览量 更新于2024-07-21 5 收藏 964KB PDF 举报
"这篇文档详细介绍了SPM8的安装步骤以及如何进行fMRI预处理的基本操作,主要针对Matlab2012a环境。作者柳琳来自西安电子科技大学睡眠与神经影像研究室,文档适用于组内人员和合作伙伴交流学习。" 在神经科学领域,SPM(Statistical Parametric Mapping)是一个广泛使用的软件工具,用于分析功能性磁共振成像(fMRI)数据。SPM8是其一个版本,专门设计来处理和分析大脑的血氧水平依赖(BOLD)信号,这些信号反映了大脑的活动变化。 **SPM8的安装与运行** 1. **安装SPM8**:首先,打开Matlab,通过File菜单选择SetPath,然后添加SPM8的文件夹到搜索路径。保存设置后,即可在Command Window中输入`spm`启动SPM8。 2. **卸载SPM5**:如果之前安装了SPM5,需要先卸载,方法同上,只需找到spm5文件夹并选择Remove,然后Save。 **数据准备** fMRI数据分析的第一步通常是将原始数据转化为SPM可读的格式。以下是一个简单的流程: 1. **数据拷贝**:将原始的DICOM格式数据复制到非系统盘的英文命名文件夹中,以避免因中文路径导致的错误。 2. **启动SPM8**:在Matlab中启动SPM8,选择fMRI选项。 3. **数据导入**:使用DICOM Import功能,全选原始数据,点击Done。 4. **格式转换**:指定输出文件夹(英文路径),选择“.\”选项并点击Done,将数据转换为.img和.hdr格式,这两个文件分别存储图像数据和矩阵数据。 **多Session数据处理** 对于包含多个Session的数据,每个Session都需要单独进行上述转换过程。SPM8也提供了Batch选项,支持批量处理,这在处理大量数据时非常有用。 **fMRI预处理流程** fMRI预处理通常包括以下几个步骤: 1. **头动校正**:消除由于受试者头部移动产生的伪影。 2. **空间标准化**:将个体数据转换到标准空间(如MNI模板)以便比较。 3. **高斯滤波**:降低噪声并平滑数据。 4. **时间序列分析**:进行模型建立,包括回归分析等。 5. **统计分析**:计算t值或F值图,进行阈值化处理,生成激活图。 在SPM8中,这些预处理步骤可以通过设定工作流并依次执行。每个步骤都有相应的参数可以调整,以适应不同的研究需求。 SPM8提供了一个强大而灵活的平台,用于处理和分析fMRI数据,从数据导入、预处理到统计分析,涵盖了整个fMRI研究的核心环节。正确理解和掌握SPM8的使用,对于理解大脑功能和进行神经科学研究至关重要。

clear;clc parentdir = 'F:\data process\fMRI\fmrioutput'; % 定义储存各被试源文件的上级文件夹 cd(parentdir); % 进入这个上级文件夹 allsubjects = dir('sub*');%查找该文件夹下的所有被试 subinfos = numel(allsubjects); for i=1:numel(allsubjects) % 对每个被试进行循环 cursubject = allsubjects(i).name; % 找到当前被试的名字 matlabbatch=cell(1); curWPAT = fullfile(parentdir,cursubject,'WPAT'); curfucout=fullfile('F:\data process\fMRI\fmrioutput',cursubject,'WPAT') matlabbatch{1}.spm.stats.fmri_spec.dir = {curfucout}; matlabbatch{1}.spm.stats.fmri_spec.sess.scans = cellstr(spm_select('ExtFPList', curWPAT, '^sw*.nii', Inf)) matlabbatch{1}.spm.stats.fmri_spec.timing.units = 'scans'; matlabbatch{1}.spm.stats.fmri_spec.timing.RT = 2; matlabbatch{1}.spm.stats.fmri_spec.timing.fmri_t = 16; matlabbatch{1}.spm.stats.fmri_spec.timing.fmri_t0 = 8; %% matlabbatch{1}.spm.stats.fmri_spec.sess.cond = struct('name', {}, 'onset', {}, 'duration', {}, 'tmod', {}, 'pmod', {}, 'orth', {}); matlabbatch{1}.spm.stats.fmri_spec.sess.multi = {'D:\data process\fMRI\onsets\subject(i)_run1.mat'}; matlabbatch{1}.spm.stats.fmri_spec.sess.regress = struct('name', {}, 'val', {}); matlabbatch{1}.spm.stats.fmri_spec.sess.tempxx=dir(fullfile(curfucout,'rp*.txt')) matlabbatch{1}.spm.stats.fmri_spec.sess.hpf = 128; matlabbatch{1}.spm.stats.fmri_spec.fact = struct('name', {}, 'levels', {}); matlabbatch{1}.spm.stats.fmri_spec.bases.hrf.derivs = [0 0]; matlabbatch{1}.spm.stats.fmri_spec.volt = 1; matlabbatch{1}.spm.stats.fmri_spec.global = 'None'; matlabbatch{1}.spm.stats.fmri_spec.mthresh = 0.8; matlabbatch{1}.spm.stats.fmri_spec.mask = {''}; matlabbatch{1}.spm.stats.fmri_spec.cvi = 'AR(1)'; matlabbatch{2}.spm.stats.fmri_est.spmmat(1) = cfg_dep('fMRI model specification: SPM.mat File', substruct('.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','spmmat')); matlabbatch{2}.spm.stats.fmri_est.write_residuals = 0; matlabbatch{2}.spm.stats.fmri_est.method.Classical = 1; matlabbatch{3}.spm.stats.con.spmmat(1) = cfg_dep('Model estimation: SPM.mat File', substruct('.','val', '{}',{2}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','spmmat')); matlabbatch{3}.spm.stats.con.consess{1}.tcon.name = 'Old'; matlabbatch{3}.spm.stats.con.consess{1}.tcon.weights = 1; matlabbatch{3}.spm.stats.con.consess{1}.tcon.sessrep = 'none'; matlabbatch{3}.spm.stats.con.delete = 0; end;怎么改

2023-05-24 上传