1. 静息态脑电功能连接分析概述
静息态脑电(Resting-state EEG)功能连接分析是近年来神经科学研究中的重要技术手段。与任务态脑电不同,静息态脑电记录的是受试者在安静、无特定任务状态下的自发脑电活动。这种分析方法能够揭示大脑各区域间的功能连接特性,为理解大脑网络组织提供独特视角。
功能连接(Functional Connectivity)分析的核心在于量化不同脑区神经活动之间的统计依赖性。在脑电数据分析中,我们通常使用电极记录的时程信号来计算不同脑区之间的功能连接强度。这种方法在临床研究和认知神经科学中有着广泛应用,比如研究阿尔茨海默病、抑郁症等神经精神疾病的脑网络异常。
注意:静息态脑电记录时,受试者需保持清醒但放松的状态,通常要求闭眼静坐,避免肢体运动和频繁眨眼,以获得高质量的数据。
2. 数据预处理流程
2.1 原始数据导入与基本检查
使用EEGLAB工具箱导入原始脑电数据(.set/.fdt格式或其他常见格式):
matlab复制[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
EEG = pop_loadset('filename','subject1.set','filepath','/data/');
eeglab redraw;
导入后首先检查:
- 电极位置信息是否正确
- 采样率是否一致
- 记录时长是否符合要求(通常静息态记录5-10分钟)
- 是否存在明显的伪迹或断点
2.2 滤波与降噪处理
静息态脑电分析通常关注低频段活动,建议采用以下滤波设置:
matlab复制EEG = pop_eegfiltnew(EEG, 'locutoff',0.5,'hicutoff',45);
EEG = pop_eegfiltnew(EEG, 'locutoff',49,'hicutoff',51,'revfilt',1); % 50Hz工频陷波
滤波参数选择依据:
- 高通0.5Hz:去除超低频漂移
- 低通45Hz:保留γ波段以下成分
- 50Hz陷波:消除电源干扰
2.3 坏道检测与插值
使用EEGLAB的自动坏道检测功能:
matlab复制EEG = pop_rejchan(EEG, 'elec',[1:EEG.nbchan],'threshold',5,'norm','on','measure','kurt');
EEG = pop_interp(EEG, bad_channels, 'spherical');
实操技巧:阈值设为5个标准差通常效果较好,但需人工确认自动标记的坏道是否合理。
3. 功能连接分析方法
3.1 相位同步指标计算
相位滞后指数(Phase Lag Index, PLI)是常用的功能连接指标,能有效减少容积传导影响:
matlab复制% 计算各频段PLI
freqs = [4 8; 8 13; 13 30; 30 45]; % θ, α, β, γ波段
pli_matrix = zeros(EEG.nbchan, EEG.nbchan, size(freqs,1));
for f = 1:size(freqs,1)
[pli, ~] = pli(EEG.data, freqs(f,1), freqs(f,2), EEG.srate);
pli_matrix(:,:,f) = pli;
end
PLI计算原理:
- 对信号进行Hilbert变换提取瞬时相位
- 计算相位差的时间序列
- 统计相位差分布的不对称性
3.2 功能网络可视化
使用BrainNet Viewer工具包绘制功能连接矩阵和脑网络图:
matlab复制% 绘制α波段功能连接矩阵
figure; imagesc(pli_matrix(:,:,2));
colorbar; title('α波段PLI连接矩阵');
% 生成脑网络图
node_size = degrees_und(pli_matrix(:,:,2)); % 计算节点度
viewer_option = struct('node',EEG.chanlocs,'size',node_size,'matrix',pli_matrix(:,:,2));
brainnet(viewer_option);
4. 统计分析与结果解读
4.1 组水平统计分析
使用非参数置换检验比较组间差异:
matlab复制% 假设有两组数据:pli_group1和pli_group2
nperm = 1000; % 置换次数
[pval, ~] = permutation_test(pli_group1, pli_group2, nperm);
4.2 网络指标计算
常用图论指标包括:
- 全局效率(Global Efficiency)
- 聚类系数(Clustering Coefficient)
- 特征路径长度(Characteristic Path Length)
matlab复制% 计算α波段网络指标
threshold = 0.3; % 连接强度阈值
bin_matrix = pli_matrix(:,:,2) > threshold;
global_eff = efficiency_bin(bin_matrix,0);
clust_coef = clustering_coef_bu(bin_matrix);
char_path = charpath(distance_bin(bin_matrix));
5. 常见问题与解决方案
5.1 数据质量问题
问题表现:
- 功能连接矩阵呈现块状模式
- 某些电极连接异常增高
解决方案:
- 检查并重新插值坏道
- 增加伪迹剔除严格度
- 考虑使用ROI-based分析减少电极数量
5.2 容积传导效应
问题表现:
- 相邻电极间连接异常增高
- 连接模式不符合解剖结构
解决方案:
- 使用PLI/wPLI等对容积传导鲁棒的指标
- 考虑源空间分析
- 应用Laplacian变换减少空间模糊
5.3 多重比较校正
问题表现:
- 大量微弱但显著的连接
- 结果难以解释
解决方案:
- 使用FDR校正
- 采用网络基元(Network-based Statistic)方法
- 设置连接强度阈值
6. 完整代码示例
以下是一个完整的静息态脑电功能连接分析流程:
matlab复制%% 1. 数据准备
[EEG] = pop_loadset('subject1.set');
EEG = pop_resample(EEG, 250); % 降采样至250Hz
EEG = pop_eegfiltnew(EEG, 0.5, 45); % 滤波
EEG = pop_epoch(EEG, {}, [-10 10], 'newname', 'Epoched', 'epochinfo', 'yes'); % 分段
%% 2. 功能连接计算
freqs = [4 8; 8 13; 13 30; 30 45]; % 频段定义
pli_results = cell(1,size(freqs,1));
for f = 1:size(freqs,1)
[pli, ~] = pli(EEG.data, freqs(f,1), freqs(f,2), EEG.srate);
pli_results{f} = mean(pli,3); % 跨时段平均
end
%% 3. 网络分析
alpha_pli = pli_results{2}; % α波段
threshold = 0.3; % 连接阈值
bin_net = alpha_pli > threshold;
% 计算网络指标
global_eff = efficiency_bin(bin_net,0);
clust_coef = clustering_coef_bu(bin_net);
%% 4. 可视化
figure;
subplot(1,2,1); imagesc(alpha_pli); colorbar; title('α波段PLI');
subplot(1,2,2); plot(graph(bin_net)); title('功能网络');
7. 进阶技巧与优化建议
-
频段特异性分析:不同认知功能涉及不同频段,建议分频段报告结果。θ波段(4-8Hz)与记忆相关,α波段(8-13Hz)反映静息态网络,β和γ波段与高级认知功能相关。
-
动态功能连接:静息态网络并非静态,可考虑使用滑动窗口分析功能连接的动态特性:
matlab复制window_size = 2; % 2秒窗口
step_size = 0.2; % 200ms步长
dynamic_pli = compute_dynamic_pli(EEG.data, freqs, EEG.srate, window_size, step_size);
-
个体化分析:结合结构像数据,将功能连接映射到个体大脑解剖结构上,提高结果的可解释性。
-
机器学习应用:将功能连接特征用于分类或预测:
matlab复制% 使用连接特征进行分类
features = reshape(pli_matrix, [], size(pli_matrix,3))'; % 特征矩阵
model = fitcsvm(features, group_labels, 'KernelFunction','rbf');
在实际操作中,我发现以下几个细节对结果影响很大:
- 滤波器的过渡带设置:过窄会导致相位失真,建议使用最小阶数满足衰减要求
- 伪迹剔除的严格程度:过于宽松会引入噪声,过于严格会损失有效数据
- 功能连接阈值的确定:可通过保持网络密度一致来跨被试比较
