matlab代碼提取ICA分析中IC_mask.nii

#本研究共納入189名輕度腦外傷患者,分為三組:健康對(duì)照組、急性期患者組以及閾值匹配的恢復(fù)期患者組,每組各63名。研究的前期工作包括:

#通過(guò)GIFT軟件對(duì)每名參與者的空間圖譜進(jìn)行分析,所得數(shù)據(jù)格式為:ica_sub001_component_ica_s1_.nii。
#結(jié)合肉眼觀察及相關(guān)性分析,確定每個(gè)獨(dú)立成分(IC)所屬的腦網(wǎng)絡(luò)。例如,IC2被歸類為SMN(感覺(jué)運(yùn)動(dòng)網(wǎng)絡(luò))。
#接下來(lái),我們將提取每名參與者的獨(dú)立成分。例如,從ica_sub001_component_ica_s1_.nii中提取IC2。隨后,通過(guò)單樣本分析,評(píng)估三組在IC2中的差異,發(fā)現(xiàn)三組間確實(shí)存在顯著差異。為進(jìn)一步分析這些差異,我們首先制作IC2的二值化mask,之后可以進(jìn)行兩兩組間對(duì)比。


clc; clear;
spm('Defaults', 'fMRI');
spm_jobman('initcfg');

% 需要分析的IC列表(可自行修改)
icNumbers = [2,3,4,5,6,10,11,12,16,17,18,21,22,24,27,30,31]; 

% 基礎(chǔ)路徑(根據(jù)實(shí)際情況修改)
baseDir = 'E:\ICA2025\ica2025-1\result1\';
#協(xié)變量所處文件夾,Age.txt、Sex.txt、Edu.txt
covDir = 'E:\ICA2025\ica2025-1\covariates2\';
#灰質(zhì)mask先行準(zhǔn)備
maskPath = 'E:\ICA2025\GM_mask.nii,1';

% 主循環(huán):遍歷每個(gè)IC
for icIdx = 1:length(icNumbers)
    icNum = icNumbers(icIdx);
    
    % ========== 1. 創(chuàng)建結(jié)果文件夾 ==========
    resultDir = fullfile('E:\ICA2025\ica2025-1', sprintf('result3_ica_ic%d', icNum));
    if ~exist(resultDir, 'dir')
        mkdir(resultDir);
    end

    % ========== 2. 配置分析參數(shù) ==========
    matlabbatch = []; % 每次循環(huán)清空配置
    
    % ------ 2.1 模型設(shè)置 ------
    % 結(jié)果目錄
    matlabbatch{1}.spm.stats.factorial_design.dir = {resultDir};
    
    % 被試掃描文件(動(dòng)態(tài)生成IC編號(hào))
    scans = cell(189, 1);
    for i = 1:189
        subStr = sprintf('sub%03d', i);
        scans{i} = fullfile(baseDir, sprintf('ica_%s_component_ica_s1_.nii,%d', subStr, icNum));
    end
    matlabbatch{1}.spm.stats.factorial_design.des.t1.scans = scans;
    
    % ------ 2.2 協(xié)變量設(shè)置 ------
    covNames = {'Age', 'Sex', 'Edu'};
    for c = 1:3
        covFile = fullfile(covDir, [covNames{c} '.txt']);
        covData = load(covFile);
        matlabbatch{1}.spm.stats.factorial_design.cov(c).c = covData;
        matlabbatch{1}.spm.stats.factorial_design.cov(c).cname = covNames{c};
        matlabbatch{1}.spm.stats.factorial_design.cov(c).iCFI = 1;
        matlabbatch{1}.spm.stats.factorial_design.cov(c).iCC = 1;
    end
    
    % ------ 2.3 掩膜和全局設(shè)置 ------
    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 = {maskPath};
    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;

    % ========== 3. 運(yùn)行分析 ==========
    try
        % 模型估計(jì)
        matlabbatch{2}.spm.stats.fmri_est.spmmat = {fullfile(resultDir, 'SPM.mat')};
        matlabbatch{2}.spm.stats.fmri_est.write_residuals = 0;
        matlabbatch{2}.spm.stats.fmri_est.method.Classical = 1;
        
        % 對(duì)比定義
        matlabbatch{3}.spm.stats.con.spmmat = {fullfile(resultDir, 'SPM.mat')};
        matlabbatch{3}.spm.stats.con.consess{1}.tcon.name = 'Positive Effect';
        matlabbatch{3}.spm.stats.con.consess{1}.tcon.weights = [1 0 0 0];
        matlabbatch{3}.spm.stats.con.consess{1}.tcon.sessrep = 'none';
        matlabbatch{3}.spm.stats.con.delete = 0;
        
        % 結(jié)果閾值化
        matlabbatch{4}.spm.stats.results.spmmat = {fullfile(resultDir, 'SPM.mat')};
        matlabbatch{4}.spm.stats.results.conspec.contrasts = 1;
        matlabbatch{4}.spm.stats.results.conspec.threshdesc = 'FWE';
        matlabbatch{4}.spm.stats.results.conspec.thresh = 0.05;
        matlabbatch{4}.spm.stats.results.conspec.extent = 100;
        matlabbatch{4}.spm.stats.results.units = 1;
        matlabbatch{4}.spm.stats.results.print = false;
        
        % 執(zhí)行當(dāng)前批處理
        spm_jobman('run', matlabbatch);
        fprintf('IC%d 分析成功完成\n', icNum);
        
    catch ME
        fprintf('IC%d 分析失敗: %s\n', icNum, ME.message);
    end
end

disp('所有IC分析完成!');
#這里最后只能分析出spmT_0001.nii
#最后一步需要你借助xjview卡閾值,F(xiàn)WE0.05,Voxel100,+,最后保存為IC2_mask.nii
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容