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

前言

1.学习背景

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

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

NSP整体指标计算笔记(一)https://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的分离整合计算

Matlab 复制代码
% 计算每个ROI的整合分离指标
input_dir = 'path/to/input';
output_dir = 'path/to/output';

if ~exist(output_dir, 'dir')
    mkdir(output_dir); 
end

files = 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_rois
        roi_integration(j) = H(1) * eigenvecs(j,1)^2;
        
        seg_sum = 0;
        for level = 2:n_rois
            seg_sum = seg_sum + H(level) * eigenvecs(j,level)^2; 
        end
        roi_segregation(j) = seg_sum;
        roi_balance(j) = roi_integration(j) - roi_segregation(j);
    end
    
    results.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个)
  1. 躯体运动网络 (Somatomotor Network)
  • ROI: 10-15, 59-66 (共14个)
  1. 背侧注意网络 (Dorsal Attention Network)
  • ROI: 16-23, 67-73 (共15个)
  1. 腹侧注意网络 (Salience/Ventral Attention Network)
  • ROI: 24-30, 74-78 (共12个)
  1. 边缘网络 (Limbic Network)
  • ROI: 31-33, 79-80 (共5个)
  1. 控制网络 (Control Network)
  • ROI: 34-37, 81-89 (共13个)
  1. 默认网络 (Default Mode Network)
  • ROI: 38-50, 90-100 (共24个)
Matlab 复制代码
% 计算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
相关推荐
码上有前1 分钟前
解析后端框架学习:从单体应用到微服务架构的进阶之路
学习·微服务·架构
sp_fyf_202422 分钟前
【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理
CoderIsArt25 分钟前
基于 BP 神经网络整定的 PID 控制
人工智能·深度学习·神经网络
岳不谢27 分钟前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为
开源社39 分钟前
一场开源视角的AI会议即将在南京举办
人工智能·开源
FreeIPCC39 分钟前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
海害嗨41 分钟前
阿里巴巴官方「SpringCloudAlibaba全彩学习手册」限时开源!
学习·开源
机器之心1 小时前
全球十亿级轨迹点驱动,首个轨迹基础大模型来了
人工智能·后端
z千鑫1 小时前
【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
人工智能·pytorch·深度学习·aigc·tensorflow·keras·codemoss
EterNity_TiMe_1 小时前
【论文复现】神经网络的公式推导与代码实现
人工智能·python·深度学习·神经网络·数据分析·特征分析