赞
踩
要开始学习处理fMRI的数据了。
fMRI的数据一般有 dcm 格式和 nii 格式。
Nifti(Neuroimaging Informatics Technology Initiative,神经影像信息学技术倡议)文件格式,是目前各大神经影像分析工具普遍兼容的体素水平的数据格式,也是在进行神经影像研究中最常见的一种数据格式。它是一个三维数组(sMRI)或者四维数组(fMRI、dMRI),再套上一个头部数据。数组里包含的就是图像体素值数据本身,头部数据里包含空间和体素信息。
Matlab从2017b后就引入了专门的Nifti文件的解析函数,SPM12(Statistical Parametric Mapping,统计参数映射)。
(1)首先得安装工具包SPM12,我参考的是下面这篇博客:
在matlab下安装spm工具_spmas包matlab-CSDN博客
(2)使用SPM12读取数据,举例如下:
- inputDir='D:\2_chenfang_labs\ECG-fMRI\result_removePhysio_40sub';
- num=40; % number of subject
- subSample=dir([inputDir,filesep]);
-
- for i=1:num
- sub=i+2;
- imgNameSample = dir([inputDir,filesep,subSample(sub,1).name,filesep,'*.nii']);
- imgnum=length(imgNameSample);
- for jj=1:imgnum
- Dir_img=[inputDir,filesep,subSample(sub,1).name,filesep,imgNameSample(jj).name];
- vSub=spm_vol(Dir_img); dim=vSub.dim; mat=vSub.mat;
- imgSub=spm_read_vols(vSub);
- data=reshape(imgSub,dim(1)*dim(2)*dim(3),1);
- data(isnan(data))=0;
- data1(jj,:,:,:)=data;% 读取fMRI数据
- end
- end
(3)数据处理完后保存为nii文件。一般先转换为mat文件,在matlab中进行处理,然后保存为nii文件,用另外的可视化软件进行分析。举例如下,其中的vSub和上面读取nii文件时的vSub是对应的。
- data_1ave=zeros(1,length(data1));
- data_1ave=mean(data1(max_loc,:));% 只取峰值点对应的时间,然后所有时间点作平均,1维数据
- data_1ave_reshape=reshape(data_1ave,61,73,61); % 转换为3维数据,这样才能保存为nii文件
- vSub.fname = ('data_name.nii'); % 保存的文件名称
- spm_write_vol(vSub,data_1ave_reshape); % 保存为nii格式
处理完数据之后,就得需要查看处理的结果,数据可视化。可以使用MRIcro 查看。
话说,不知道怎么用,还是老师手把手教的。
1,建议先打开两次MRIcro(为了方便分析),一般选择三个平面一起看。
2,选择模板,一个选ch2bet,一个选all
3,先后点击overlay,load functional overlay... ,然后选择文件。选择好文件后会出现一个overlay settings,(1)先看范围,(2)然后根据范围选择一个合适的范围,(3)选择对称,(4)最后点应用。
4,如果觉得图片有点小,可以选择放大
5,如果用ch2bet模板,不会显示对应区域的名字,aal模板则可以显示对应区域的名字,所以一般为了方便分析,会打开两次。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。