前言
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个功能网络中的分布如下:
- 视觉网络 (Visual Network)
- ROI: 1-9, 51-58 (共17个)
- 躯体运动网络 (Somatomotor Network)
- ROI: 10-15, 59-66 (共14个)
- 背侧注意网络 (Dorsal Attention Network)
- ROI: 16-23, 67-73 (共15个)
- 腹侧注意网络 (Salience/Ventral Attention Network)
- ROI: 24-30, 74-78 (共12个)
- 边缘网络 (Limbic Network)
- ROI: 31-33, 79-80 (共5个)
- 控制网络 (Control Network)
- ROI: 34-37, 81-89 (共13个)
- 默认网络 (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