当前位置: 首页 > news >正文

【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的局部指标(二)

前言

1.学习背景 

  前几天笔者学习使用NSP (Network Segregation and Partnership) 算法计算大脑整合分离的全局指标,现在要在之前学习的基础上再来玩玩局部指标。

  局部指标的计算主要在两个层面上进行:第一个层面是针对每个独立ROI的指标计算,这让我们能够精确定位到具体脑区的整合分离特征;第二个层面是针对每个功能子网络的指标计算,这让我们能够从中观层面理解不同功能网络的整合分离模式。

NSP整体指标计算笔记(一)icon-default.png?t=O83Ahttps://mp.csdn.net/mp_blog/creation/editor/143579470

2.参考文献

 Wang, R., Lin, P., Liu, M., Wu, Y., Zhou, T., & Zhou, C. (2019). Hierarchical Connectome Modes and Critical State Jointly Maximize Human Brain Functional Diversity. Physical Review Letters, 123(3), 038301. https://doi.org/10.1103/PhysRevLett.123.038301

Chang, Z., Wang, X., Wu, Y., Lin, P., & Wang, R. (2023). Segregation, integration and balance in resting-state brain functional networks associated with bipolar disorder symptoms. Human Brain Mapping, 44(2), 599–611. https://doi.org/10.1002/hbm.26087

 3.分层嵌套谱分割(Nested Spectral Partition, NSP)模型

  这个方法就像是在玩俄罗斯套娃,通过特征值分解的方法,将复杂的大脑连接矩阵层层拆解。具体来说,NSP首先将整个大脑网络视为一个整体,然后基于功能连接矩阵进行特征分解,利用特征向量的符号特征,像剥洋葱一样逐层将网络划分为更细致的功能模块。是数据驱动的,可以稳定的自然展示组织方式。

  在上一篇文章中,笔者详细介绍了如何使用NSP(嵌套谱分割)算法计算大脑网络的全局整合分离指标。我们通过构建功能连接矩阵,进行特征值分解,并利用层级划分的方式,最终得到了反映整个大脑网络特性的三个关键指标:整合度(Hin)、分离度(Hse)和平衡度(HB)。然后可以用这三个指标进行组间比较(t-test,anova),笔者也在自己的数据上玩了一下。虽然没有看到显著差别,但还是有有意思的发现,比如性别对分离整合的影响非常显著!男性的大脑更偏分离,女性更偏整合。

性别分离整合的差异

  然而,仅仅了解全局指标还不够细致。就像我们不能仅用一个人的平均体温来判断他的健康状况一样,我们还需要深入到每个器官的具体状态。在今天的内容中,我们将在全局分析的基础上,试试复现计算局部指标,这些指标包括每个ROI的整合分离特征,以及各个功能子网络的整合分离模式。

二、区域的分离整合指标数学原理

  • H1是第一层的模块度指标
  • Hi是第i层的模块度指标
  • Uij是第i层特征向量中第j个脑区的分量值
  • N是总的脑区数量

  区域的平衡指标等于区域的整合指标-区域的分离指标。

三、ROI的分离整合计算

% 计算每个ROI的整合分离指标
input_dir = 'path/to/input';
output_dir = 'path/to/output';if ~exist(output_dir, 'dir')mkdir(output_dir); 
endfiles = dir(fullfile(input_dir, '*.mat'));for i = 1:length(files)data = load(fullfile(input_dir, files(i).name));FC = data.processed_FC;eigenvals = data.eigenvalues;eigenvecs = data.eigenvectors;n_rois = size(FC, 1);[H, M, pi_values] = calculate_hierarchical_metrics(eigenvecs, eigenvals, n_rois);roi_integration = zeros(n_rois, 1);roi_segregation = zeros(n_rois, 1);roi_balance = zeros(n_rois, 1);for j = 1:n_roisroi_integration(j) = H(1) * eigenvecs(j,1)^2;seg_sum = 0;for level = 2:n_roisseg_sum = seg_sum + H(level) * eigenvecs(j,level)^2; endroi_segregation(j) = seg_sum;roi_balance(j) = roi_integration(j) - roi_segregation(j);endresults.roi_integration = roi_integration;results.roi_segregation = roi_segregation;results.roi_balance = roi_balance;save(fullfile(output_dir, ['metrics_' files(i).name]), 'results');
end

  在上一篇博客中,笔者介绍了计算NSP参数的函数`calculate_hierarchical_metrics`。计算局部指标时沿用了这个函数,:针对每个ROI,取它在第一层特征向量中的贡献(即该ROI对应的特征向量元素的平方乘以H1)作为整合度,而分离度则是把该ROI在第2层到最后一层中的贡献都加起来。最后用整合度减去分离度,就得到了每个ROI的平衡度指标。所有ROI的局部指标加起来等于全脑指标。

四、脑网络的分离整合计算

  之前使用Schaefer2018模版,我们大脑皮层划分成了100个感兴趣区域(ROI)。这些ROI根据功能联系可以进一步归类到7个典型的大尺度网络中。只需要将归属于同一网络的ROI局部指标加起来,就能得到默认网络、背侧注意网络、前额-顶叶网络等7个功能子网络的整合度、分离度和平衡度指标。

Schaefer2018模版划分为400个ROI示意图

根据Schaefer2018模版,100个ROI在7个功能网络中的分布如下:

1. 视觉网络 (Visual Network)
   - ROI: 1-9, 51-58 (共17个)

2. 躯体运动网络 (Somatomotor Network)
   - ROI: 10-15, 59-66 (共14个)

3. 背侧注意网络 (Dorsal Attention Network)
   - ROI: 16-23, 67-73 (共15个)

4. 腹侧注意网络 (Salience/Ventral Attention Network)
   - ROI: 24-30, 74-78 (共12个)

5. 边缘网络 (Limbic Network)
   - ROI: 31-33, 79-80 (共5个)

6. 控制网络 (Control Network)
   - ROI: 34-37, 81-89 (共13个)

7. 默认网络 (Default Mode Network)
   - ROI: 38-50, 90-100 (共24个)

% 计算7个功能网络的整合度、分离度和平衡度指标
networks = {[1:9, 51:58],             % Visual[10:15, 59:66],           % Somatomotor  [16:23, 67:73],           % Dorsal Attention[24:30, 74:78],           % Ventral Attention[31:33, 79:80],           % Limbic[34:37, 81:89],           % Control[38:50, 90:100]           % Default Mode
};network_names = {'Visual', 'Somatomotor', 'DorsalAttention', 'VentralAttention', ...'Limbic', 'Control', 'DefaultMode'};% 主要计算逻辑
for i = 1:length(files)data = load(fullfile(input_dir, files(i).name));for net = 1:length(networks)roi_indices = networks{net};integration_data(i, net) = mean(data.results.roi_integration(roi_indices));segregation_data(i, net) = mean(data.results.roi_segregation(roi_indices));balance_data(i, net) = mean(data.results.roi_balance(roi_indices));end
end


http://www.mrgr.cn/news/70336.html

相关文章:

  • 网络安全基础——网络安全法
  • Kubernetes 所有节点和 Pod 都使用 Asia/Shanghai 时区
  • windows 中docker desktop 安装
  • Java Web后端项目的特点和组成部分
  • leecode134.加油站
  • 前端知识点---箭头函数(javascript)
  • 【HCIP园区网综合拓扑实验】配置步骤与详解(已施工完毕)
  • 业务开发时,接口不能对外暴露怎么办?
  • C++初阶——类和对象(中)
  • 政策变化?软考考试39分就过线了?
  • C++(继承)
  • 如何清晰地描述一个磁体采购需求
  • 星海智算:风月ComfyUI_SD3.5
  • 深度学习笔记12
  • 铠侠代理商 | KIOXIA SLC闪存选型和应用
  • Java爬虫精准获得JD商品SKU信息
  • RobotFrameWork环境搭建及使用
  • Ubuntu 的 ROS 操作系统安装与测试
  • MySQL 基础
  • 【flask开启进程,前端内容图片化并转pdf-会议签到补充】
  • 01-SpringBoot3快速入门
  • 改进图卷积+informer时间序列预测代码
  • java XMLStreamConstants.CDATA 无法识别 <![CDATA[]]>
  • Verilog和VHDL有什么区别?
  • YOLO 网络的原理及发展史
  • 《Linux服务与安全管理》| 文件权限管理操作