首页 > 其他分享 >基于spm实现计算脑簇(Cluster)和大尺度脑网络(Large-Scale Network)的重叠

基于spm实现计算脑簇(Cluster)和大尺度脑网络(Large-Scale Network)的重叠

时间:2024-08-16 22:23:08浏览次数:17  
标签:Scale name cluster ImageInput2 matlabbatch Large Cluster spm output

前言

  在神经科学的处理中,经常会出现想通过大尺度脑网络的视角来分析某一脑区的情形,首先我们要判断簇(Cluster)属于哪个网络,其次我们想要得知量化的信息与某网络的重叠百分比。那拿到Cluster的掩模与脑功能网络的模版后,有哪些方法可以计算重叠比例呢?

Network-based connectivity: a. Large-scale network parcellation is ...

目录

前言

一、基于可视化软件进行简单查看

环境配置:

操作步骤:

二、基于matlab进行百分比量化的计算

环境配置:

操作步骤:

1.计算重叠比例

2.画图

​编辑总结


一、基于可视化软件进行简单查看

环境配置:

操作步骤:

  首先打开TemplateImage>选择AddOverlay>选中Cluster

  再次打开AddOverlay>选中脑功能模版>选择AllRange(index)>依次检查每一个脑网络

  例子:如下图可以看出位于右上额回的团块,主要重叠在VAN(腹侧注意网络)里。可是这样的结论真的是可靠的吗?

二、基于matlab进行百分比量化的计算

环境配置:

 环境:matlabR2021a

软件:spm12(官方下载

操作步骤:

1.计算重叠比例

首先在Matlab里运行如下代码,会自动在输出路径里产生Cluster和每一个脑网络交集的掩模,并基于此计算出和每个网络重叠的比例在matlab工作区。

path.cluster='Path_to_Clsuter/';
outputDir='/Path_to_Out/';
%  %% functional connectivity
 cluster=dir(path.cluster);
 cluster=char(cluster.name);
 cluster(cluster(:,1)=='.',:)=[];
 cluster=cellstr(cluster);
 cluster_num=length(cluster(:,1));
 
 for k=1:cluster_num
%      
       ImageInput2_name=cluster(k);
       ImageInput2_name=char(ImageInput2_name);
        ImageInput2=[path.cluster '\' ImageInput2_name];
        for j=1:7
        ImageInput1=['Yeo_7network_Lib_' num2str(j) '.img'];
     
     output_name_pre=ImageInput2_name;
     output_name_pre=strrep(output_name_pre,'.nii','');
     output_name=[output_name_pre '_Yeo' num2str(j)];
     
     spm('Defaults','fMRI');
     spm_jobman('initcfg');
     clear matlabbatch;
     matlabbatch{1}.spm.util.imcalc.input = {ImageInput2 
                                         ImageInput1
                                        
                                        };
matlabbatch{1}.spm.util.imcalc.output =output_name;
matlabbatch{1}.spm.util.imcalc.outdir = {outputDir};
matlabbatch{1}.spm.util.imcalc.expression = 'i1.*i2';
matlabbatch{1}.spm.util.imcalc.var = struct('name', {}, 'value', {});
matlabbatch{1}.spm.util.imcalc.options.dmtx = 0;
matlabbatch{1}.spm.util.imcalc.options.mask = 0;
matlabbatch{1}.spm.util.imcalc.options.interp = 1;
matlabbatch{1}.spm.util.imcalc.options.dtype = 4;
 spm_jobman('run',matlabbatch);
  %% calculate the number of voxels in the two images
 V=spm_vol(ImageInput2);
 ImageInput2_f=spm_read_vols(V);
 clear V
 V=spm_vol(fullfile(outputDir,[output_name '.nii']));
 output_Image_f=spm_read_vols(V);
 clear V
 num_ImageInput2_f=numel(ImageInput2_f(abs(ImageInput2_f)>0));
 num_output_Image_f=numel(output_Image_f(abs(output_Image_f)>0));
 percentage(k,j)=num_output_Image_f/num_ImageInput2_f;
 clear ImageInput2_f output_Image_f
        end
      percentage_ROI_name(k,1)=cellstr(output_name);
  end
  [max,Index_max]=max(percentage,[],2);
2.画图

通过可视化热图可以看出,其实该簇主要FPN网络,而肉眼看起来已经重叠度非常高的VAN网络其实只占比24%。

% 定义网络名称
percentage(percentage>1)=0;
networks = {'Visual', 'Van', 'Somatomotor', 'Limbic', 'FPN', 'DMN', 'DAN'};

figure;

h = heatmap(networks, {'Networks'}, percentage);

总结

  本文介绍了两种方法识别某一脑区于其他脑网络的重叠程度:第一种方法利用mango等看图软件进行肉眼观察,但因为fMRI是高维图像的原因,这种方法虽然简单直观,但并不可靠。第二种方法是利用spm进行计算,可以得到量化的结果,更加可靠。

标签:Scale,name,cluster,ImageInput2,matlabbatch,Large,Cluster,spm,output
From: https://blog.csdn.net/Rose9614/article/details/141269937

相关文章

  • 一分钟接入英智Mistral Large 2407 123B服务
    英智MistralLarge2407123B服务目录目录免费API_KEY获取方式快速使用在编程语言里使用ShellPythonNode.js在第三方应用里使用在NextChat里使用Q&A404NotFound参考免费API_KEY获取方式将您的“API_KEY”(申请服务的免费套餐后可获取)......
  • 【问题记录】【Apache Camel】Apache Camel 报 413Request Entity Too Large
    1 前言ApacheCamel不知道大家有没有用过。它是一个基于企业应用集成模式(EIP)的强大开源集成框架。能够快速、轻松地集成,用于在各种系统之间消费或生产数据。说白了可以用于系统之间的不同方式的交互支撑。最近出现一个问题,来记录一下。2 问题现象有客户反应说一个单子卡......
  • coca how word clusters页面
           Collocates     Clusters   Topics   Texts   KWIC       45624how do36622how you28435how it25414how can24930how they24357how did24206how long22277how about21728how ......
  • 光纤PCIe 卡设计资料第383篇: 基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡
    基于kintexUltraScaleXCKU060的双路QSFP+光纤PCIe卡一、板卡概述    本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA  XCKU060-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡,搭配两路40G QSFP+接口,两组64-bit DDR4,每组容量2Gbyte,可稳定......
  • M3KE: A Massive Multi-Level Multi-Subject Knowledge Evaluation Benchmark for Chi
    文章目录题目摘要简介相关工作M3KE实验结论题目M3KE:面向中文大型语言模型的海量多层次多学科知识评估基准论文地址:https://arxiv.org/abs/2305.10263项目地址:https://github.com/tjunlp-lab/M3KE摘要    大型语言模型最近在跨任务泛化、指令跟随等多个......
  • MySQL InnoDB Cluster – how to manage a split-brain situation
    本文是翻译MySQLInnoDBCluster–howtomanageasplit-brainsituation[1]这篇文章,如有翻译不妥或不对的地方,敬请谅解与指正。请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢!每次我展示MySQLInnoDBCluster时,在创建集群的演示中,很多人都不明白为什么当我集群中已有2......
  • 《ImageNet: A Large-Scale Hierarchical Image Database》李飞飞论文阅读笔记
    OpenSNN开思通智网,官网地址:https://w3.opensnn.com/2024年8月份"O站创作者招募计划"快来O站写文章,千元大奖等你来拿!“一起来O站,玩转AGI!”论文地址:《ImageNet:ALarge-ScaleHierarchicalImageDatabase》这篇论文是关于一个叫做“ImageNet”的大型图像数据库的介绍。......
  • 【学习日记3】DAIL-SQL论文:Text-to-SQL Empowered by Large Language Models: A Bench
    PS:自己回顾用的ABSTRACT        大型语言模型(LLMs)已成为Text-to-SQL任务的新模式。然而,缺乏系统的基准测试限制了有效、高效和经济的基于LLM的Text-to-SQL方案的发展。为了解决这一挑战,本文首先对现有的提示工程方法进行了系统且广泛的比较,包括问题表示、示例......
  • Leetcode: 586. Customer Placing the Largest Number of Orders
    题目要求如下:给出的例子如下:简单地说就是要找出表中订单最多客户的ID。使用如下的代码进行实现:importpandasaspddeflargest_orders(orders:pd.DataFrame)->pd.DataFrame:returnorders.groupby("customer_number").count().reset_index().nlargest(1,colum......
  • redis-cluster集群部署
    目录主机规划redis安装下载redis安装依赖关闭防火墙编译安装redis所以主机配置环境变量所以主机创建配置目录创建配置文件内核优化启动redis使用system管理使用redis-cli创建集群创建集群查看集群状态集群状态验证redis从5开始已经废弃了使用ruby脚本创建配置,而将创建配置文件直......