Struggle 发表于 2024-4-28 16:17:33

MRI学习笔记-全脑与行为数据的多元回归Multiple regression

spm操作:

第一步:准备步骤

https://img-blog.csdnimg.cn/direct/d22b3c1fa300477dabf6aa7dbb93116c.pnghttps://img-blog.csdnimg.cn/direct/c25b79e938b241b5bb402adbee6f1341.pnghttps://img-blog.csdnimg.cn/direct/529aa9ed4be541aab3f4ce21ecff02ed.pnghttps://img-blog.csdnimg.cn/direct/bbf194d90bee408a9ad7cf39c6c59559.png
第二步:编辑Factorial design specification

2.1 选择保存生成结果的路径
https://img-blog.csdnimg.cn/direct/28f5f9a918fa479a8d5176a870f1c94c.png
2.2 选择分析的方法
https://img-blog.csdnimg.cn/direct/05cfe58424634a5f95eae9012133a249.png
2.3 选择一阶分析生成的图像文件(需要与行为结果做回归分析的文件)
选择一个被试:
https://img-blog.csdnimg.cn/direct/0fbe5e7bfd14498a9429ff2048bb08dc.png
选择所有被试:
https://img-blog.csdnimg.cn/direct/e8babe1aa32c449397a5abf384b3a79b.png
2.4 增加协变量(行为数据)
https://img-blog.csdnimg.cn/direct/26014e7046094ffda824d580c229b596.png
4:按照nii顺序输入相应行为数据
https://img-blog.csdnimg.cn/direct/bfa2ed933d194b1098edc215b8c41fa1.png
7:给本次回归分析起个名字
https://img-blog.csdnimg.cn/direct/f0af48455bb04b8e9354a14ea46f8237.png
2.5 其余保持默认即可,最后如下
https://img-blog.csdnimg.cn/direct/c26bddd5a2a848e9b7a84956b06eb703.png
第三步:编辑Model estimation

对上一步生成的SPM.mat文件进行估计
https://img-blog.csdnimg.cn/direct/0ea592082d9641d59d2db5cd881b550f.png
第四步:编辑Contrast Manager

4.1 选择上一步生成的SPM.mat文件
https://img-blog.csdnimg.cn/direct/dc368fc080974ee9a034d3ce5d684f1f.png
4.2 新建两个T-contrast
2:点击两下
https://img-blog.csdnimg.cn/direct/4ba7707ebfae482880c1dfe2b8c746bc.png
https://img-blog.csdnimg.cn/direct/aed85ec9e1ee4b749d6c1ad5431badca.png
4.3 编辑第一个T-contrast(positive)
https://img-blog.csdnimg.cn/direct/d3d625b660ad4f4a9cc3ad473209edc2.png
https://img-blog.csdnimg.cn/direct/d3c75f34b7fd44eda4a80e4a36d246e5.png
4.4 编辑第二个T-contrast(negative)
https://img-blog.csdnimg.cn/direct/362f394762f2437699b42967c1d580bd.png
https://img-blog.csdnimg.cn/direct/61b0f9dde8854a698261f5e26d5e4f83.png
第五步:运行batch

https://img-blog.csdnimg.cn/direct/128e8fbdc1e64ccb9e8f11bc73094f06.png】
生成的文件
https://img-blog.csdnimg.cn/direct/18eefdfbf0984ff08a508d0a4ba27dd3.png
第六步:保存batch和script,稍作更改后可以用于批处理

https://img-blog.csdnimg.cn/direct/fc42426dec474e02a8e6940724c287a4.png
批处理脚本:

第一步:文件路径框架

最上层路径。2:回归分析的结果,只要在这个路径新建一个 data_08_MultipleRegression 文件夹即可
https://img-blog.csdnimg.cn/direct/c64750afe13f4ffe91d4a9a859dc3a3a.png
1:一阶分析的结果具体路径;
https://img-blog.csdnimg.cn/direct/23c85302287d45b2bfd7628b3e7f4045.png
第二步:将行为数据的excel文本保存在data_08_MultipleRegression/M5中

https://img-blog.csdnimg.cn/direct/2adba36be1384cd6bb53b1caac72e6f2.png
https://img-blog.csdnimg.cn/direct/f94a6fc0b0db4472ab681822c7253d66.png
第三步:批处理脚本

生成batch
clc;
clear;
nmodel = '5';%模型编号
numsub = 27;%被试编号,我的编号是01、02、03....27
rootdir = 'D:\LLYdata\motor_inhibition_data2\motor_inhibition_fmri';%数据最上层路径
ffxname = 'data_05_1st_level2';%1st分析文件名
rfxname = 'data_08_MultipleRegression';%2st分析文件名
batchfilename = 'batchfiles';%保存batchfile的文件名
ffxdir = fullfile(rootdir,ffxname,strcat('M',nmodel));%1st分析完整路径
rfxdir = fullfile(rootdir,rfxname,strcat('M',nmodel));%2st分析完整路径
%% 读保存在excel中的行为数据,并定义每个行为数据所在的列数
[~,~,data] = xlsread(fullfile(rfxdir,'behaviordata.xlsx'));
for i = 1:size(data,2)
    eval();
end
%%
con= {'(UCSAS-UCGO)','(UCSRS-UCGO)-(CSR-CGO)'};%nii文件的名字
connum = {'con_0040','con_0069'};%需要与行为结果做回归分析的nii文件编号
bhname = {'SSRTStopAll','SSRTStopRight'};%行为结果在data中的列数
for ncon = 1:size(connum,2)
    % 构建完整文件路径
    for nsub = 1:numsub   
      full = fullfile(ffxdir,sprintf('%02d',nsub),strcat(connum{1,ncon},'.nii,1'));
      conpath{ncon}{nsub,1} = full;
    end
    %读取行为数据
    bhdata{ncon} = cell2mat(data(2:end,eval(bhname{ncon})));%数据格式为一列
    %命名
    conname{ncon} = strcat(con{ncon},'&',bhname{ncon});
end
exmask='E:\MATLAB\toolbox\spm12\tpm\mask_ICV.nii';%mask的路径
%%
jobfile = [];
spm('defaults','fmri')
for ncon = 1:size(connum,2)
    clear matlabbatch
    %%%生成保存结果的路径
    if ~exist(fullfile(rfxdir,conname{ncon}),'dir')
      mkdir(fullfile(rfxdir,conname{ncon}));
    end
    %%
    matlabbatch{1}.spm.stats.factorial_design.dir = {fullfile(rfxdir,conname{ncon})};%保存结果的路径
    matlabbatch{1}.spm.stats.factorial_design.des.mreg.scans = conpath{ncon};%需要与行为结果做回归分析的nii文件
    matlabbatch{1}.spm.stats.factorial_design.des.mreg.mcov.c = bhdata{ncon};%行为结果
    matlabbatch{1}.spm.stats.factorial_design.des.mreg.mcov.cname = conname{ncon};%命名
    matlabbatch{1}.spm.stats.factorial_design.des.mreg.mcov.iCC = 1;
    matlabbatch{1}.spm.stats.factorial_design.des.mreg.incint = 1;
    matlabbatch{1}.spm.stats.factorial_design.cov = struct('c', {}, 'cname', {}, 'iCFI', {}, 'iCC', {});
    matlabbatch{1}.spm.stats.factorial_design.multi_cov = struct('files', {}, 'iCFI', {}, 'iCC', {});
    matlabbatch{1}.spm.stats.factorial_design.masking.tm.tm_none = 1;
    matlabbatch{1}.spm.stats.factorial_design.masking.im = 1;
    matlabbatch{1}.spm.stats.factorial_design.masking.em = {exmask};
    matlabbatch{1}.spm.stats.factorial_design.globalc.g_omit = 1;
    matlabbatch{1}.spm.stats.factorial_design.globalm.gmsca.gmsca_no = 1;
    matlabbatch{1}.spm.stats.factorial_design.globalm.glonorm = 1;
    matlabbatch{2}.spm.stats.fmri_est.spmmat = {fullfile(rfxdir,conname{ncon},'SPM.mat')};
    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 = 'positive';
    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.consess{2}.tcon.name = 'negative';
    matlabbatch{3}.spm.stats.con.consess{2}.tcon.weights = -1;
    matlabbatch{3}.spm.stats.con.consess{2}.tcon.sessrep = 'none';
    matlabbatch{3}.spm.stats.con.delete = 0;
    %% Save new job file
    %%%生成保存batch的路径
    batchfilesdir = fullfile(rfxdir,batchfilename);
    if ~exist(batchfilesdir,'dir')
      mkdir(batchfilesdir);
    end
    batchfile = conname{ncon};
    save(fullfile(batchfilesdir,batchfile),'matlabbatch');
    jobfile{end+1,1} = fullfile(batchfilesdir,batchfile);
    fprintf('Saved batch file %s\n',batchfile)%命令行输出文字反馈
end
spm('chmod','fmri');
spm('defaults','fmri'); 第四步:运行脚本后生成的文件

1:批处理脚本生成的batch所保存的位置
2:运行batch后文件保存的位置
https://img-blog.csdnimg.cn/direct/72118fbe0b5746879299e6f565657fa0.png
https://img-blog.csdnimg.cn/direct/deb7077067234b60b682945f074e7284.png
第五步:运行batch

https://img-blog.csdnimg.cn/direct/c8dbfc583277466282941d07693add13.pnghttps://img-blog.csdnimg.cn/direct/b67c4050e46b4f73927e657fe62ac9c3.pnghttps://img-blog.csdnimg.cn/direct/512771b9137c49be91ab47b71e26fa1b.pnghttps://img-blog.csdnimg.cn/direct/1bca95b25cd940fbac1bd7ed9c8696a5.png
最后生成的结果文件
https://img-blog.csdnimg.cn/direct/b08b712c890d43f881474f422452f1a1.png
结束!打开result看结果就可以了~
页: [1]
查看完整版本: MRI学习笔记-全脑与行为数据的多元回归Multiple regression