DeepSIF 分步完整流程 估测提取扣带回状态

DeepSIF 分步完整流程:EEG反演 → 重点提取扣带回(前/中/后扣带回、深部扣带皮层)神经源状态

前置说明

  1. DeepSIF 核心作用:从头皮EEG求解颅内三维神经电流源分布(源成像),突破头皮EEG无法直接观测深部脑区(扣带回、岛叶、丘脑等)的局限;
  2. 目标脑区:Cingulate Cortex 扣带回细分
    • ACC 前扣带回(深部情绪/认知控制)
    • MCC 中扣带回(运动、疼痛)
    • PCC 后扣带回(默认网络核心,深部中线脑区)
  3. 环境基础:Python 3.8~3.11、MNE-Python、DeepSIF官方开源仓库、标准头部模板(fsaverage)、你的EEG原始数据(.edf/.bdf/.set/.fif)

一、环境部署 Step1:安装依赖 & 拉取 DeepSIF 源码

1.1 创建独立虚拟环境

# Windows/Mac/Linux通用
python -m venv deepsif_env
# 激活
# Linux/Mac
source deepsif_env/bin/activate
# Windows cmd
deepsif_env\Scripts\activate

1.2 安装核心依赖包

pip install mne mne-bids nibabel scipy numpy matplotlib scikit-learn h5py tqdm pyvista ipywidgets
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

1.3 克隆 DeepSIF 官方开源仓库

git clone https://github.com/rsaikat/deepsif.git
cd deepsif
# 安装项目本地依赖
pip install -r requirements.txt

1.4 下载标准脑模板(fsaverage,MNE必备)

# 运行一次即可,python交互窗口
import mne
mne.datasets.fetch_fsaverage(verbose=True)

Step2:EEG原始数据预处理(MNE标准流水线,DeepSIF输入要求干净EEG)

2.1 加载EEG数据(支持EDF/BDF/SET/FIF)

新建 preprocess_eeg.py

import mne

# ----------------配置区----------------
eeg_file = "your_data.edf"  # 替换你的EEG文件路径
sfreq_target = 250  # 统一重采样频率,匹配DeepSIF默认
low_pass = 45
high_pass = 0.5
# -------------------------------------

# 读取原始EEG
raw = mne.io.read_raw_edf(eeg_file, preload=True)
# 1. 重采样降低计算量
raw.resample(sfreq_target)
# 2. 带通滤波去除直流漂移、工频噪声
raw.filter(high_pass, low_pass)
# 3. 50/60Hz工频陷波(按需)
raw.notch_filter([50, 100])

# 4. 电极定位(关键!源成像必须电极坐标)
# 方案A:设备配套电极文件 .elc/.loc
# raw.set_montage("standard_1020") 通用10-20电极帽
# 方案B:自定义设备电极坐标文件
# raw.set_montage(mne.channels.read_custom_montage("electrodes.elc"))

# 5. 去除眼电EOG、肌电EMG伪影 (ICA)
ica = mne.preprocessing.ICA(n_components=15, random_state=42)
ica.fit(raw)
# 自动识别眼电成分并剔除
eog_idx, _ = ica.find_bads_eog(raw)
ica.exclude = eog_idx
raw_clean = ica.apply(raw)

# 6. 保存预处理干净数据,作为DeepSIF输入
raw_clean.save("eeg_clean_raw.fif", overwrite=True)
print("预处理完成,输出:eeg_clean_raw.fif")

运行:python preprocess_eeg.py

Step3:构建正向模型(头模型,EEG→颅内映射基础)

DeepSIF依赖BEM边界元头模型,用于构建头皮-颅骨-大脑三层传导模型,是深部扣带回成像核心。 新建 build_forward.py

import mne
from mne.datasets import fetch_fsaverage

# 加载标准fsaverage模板
fs_dir = fetch_fsaverage()
subject = "fsaverage"
subjects_dir = fs_dir.parent

# 1. 生成三层BEM模型(脑、颅骨、头皮)
bem_model = mne.make_bem_model(subject=subject, subjects_dir=subjects_dir, conductivity=[0.3, 0.006, 0.3])
bem_sol = mne.make_bem_solution(bem_model)

# 2. 加载干净EEG,提取电极信息
raw = mne.io.read_raw_fif("eeg_clean_raw.fif", preload=True)
info = raw.info

# 3. 构建源空间:全脑离散偶极子网格(包含深部中线扣带回区域)
src = mne.setup_source_space(subject, subjects_dir=subjects_dir, spacing="oct6", add_dist=False)

# 4. 计算正向矩阵 leadfield(头皮电压 ↔ 颅内神经源电流)
fwd = mne.make_forward_solution(info, trans=mne.transforms.read_trans(fs_dir / "fsaverage/trans/fsaverage-trans.fif"),
                                src=src, bem=bem_sol, meg=False, eeg=True)

# 保存正向模型,DeepSIF加载使用
mne.write_forward_solution("eeg_forward.fif", fwd, overwrite=True)
print("正向模型构建完成:eeg_forward.fif")

运行:python build_forward.py

Step4:使用DeepSIF预训练模型执行源反演(求解全脑神经电流)

DeepSIF用深度学习替代传统MNE/dSPM,对深部中线脑区(扣带回)重建精度更高。 新建 run_deepsif_inverse.py

import torch
import mne
from deepsif import DeepSIFModel, compute_source_estimate

# 1. 加载预处理EEG、正向模型
raw = mne.io.read_raw_fif("eeg_clean_raw.fif", preload=True)
fwd = mne.read_forward_solution("eeg_forward.fif")
data = raw.get_data()  # (n_channels, n_timepoints)

# 2. 加载DeepSIF预训练权重(仓库自带预训练EEG模型)
device = "cuda" if torch.cuda.is_available() else "cpu"
model = DeepSIFModel(device=device)
model.load_pretrained("pretrained_models/eeg_deepsif.pth")

# 3. 执行源反演,输出全脑每个源点的电流强度
source_estimate = compute_source_estimate(model, data, fwd, device=device)

# 4. 保存源成像结果(MNE SourceEstimate标准格式)
source_estimate.save("deepsif_full_brain_stc.h5", overwrite=True)
print("DeepSIF全脑源重建完成,保存 deepsif_full_brain_stc.h5")

运行:python run_deepsif_inverse.py

关键点:DeepSIF自动优化深部中线脑区偶极子重建,天然适配扣带回这类深埋皮层中线结构,优于传统线性逆问题算法。

Step5:提取扣带回分区掩码,分离ACC/MCC/PCC深部信号(核心步骤)

5.1 从Destrieux脑图谱提取扣带回感兴趣区ROI

Destrieux细分扣带回,精准区分深部前后中扣带;MNE自带模板图谱。 新建 extract_cingulate_roi.py

import mne
import numpy as np
from mne.datasets import fetch_fsaverage

# 加载模板与源空间
fs_dir = fetch_fsaverage()
subject = "fsaverage"
subjects_dir = fs_dir.parent
fwd = mne.read_forward_solution("eeg_forward.fif")
src = fwd["src"]

# 读取Destrieux脑分区图谱
labels = mne.read_labels_from_annot(subject, parc="aparc.a2009s", subjects_dir=subjects_dir)

# 筛选所有扣带回分区(深部中线脑区)
cingulate_names = [
    "G_cingul-Ant-lh", "G_cingul-Ant-rh",    # 前扣带回 ACC 深部
    "G_cingul-Mid-Ant-lh", "G_cingul-Mid-Ant-rh", # 前中扣 MCC前部
    "G_cingul-Mid-Post-lh", "G_cingul-Mid-Post-rh",# 后中扣 MCC后部
    "G_cingul-Post-lh", "G_cingul-Post-rh"   # 后扣带回 PCC 默认网络深部核心
]
cingulate_labels = [lab for lab in labels if lab.name in cingulate_names]

# 合并所有扣带回掩码,匹配源空间网格点
all_cingulate_label = mne.Label(sum(cingulate_labels), name="all_cingulate_deep")
# 获取源空间中属于扣带回的顶点索引
cingulate_vertices = all_cingulate_label.get_vertices(src)
np.save("cingulate_vertex_idx.npy", cingulate_vertices)

print(f"扣带回总源点数量:{len(cingulate_vertices)}")
print("扣带回顶点索引保存 cingulate_vertex_idx.npy")

运行:python extract_cingulate_roi.py

Step6:提取扣带回深部脑区时序信号 & 量化状态指标

读取DeepSIF全脑源数据,单独截取扣带回神经电流时序,计算能量、频域、激活强度作为脑区状态报告指标。 新建 cingulate_state_analysis.py

import mne
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

# 加载数据
stc = mne.read_source_estimate("deepsif_full_brain_stc.h5")
cingulate_vtx = np.load("cingulate_vertex_idx.npy")

# 1. 提取扣带回所有源点的神经电流时序 (n_vertices, n_time)
stc_cingulate = stc.extract_label_time_course(
    mne.Label(sum(mne.read_labels_from_annot("fsaverage", parc="aparc.a2009s"))),
    src=fwd["src"], mode="mean"
)
# 取扣带回平均信号:代表整个深部扣带回整体活动
cingulate_ts = np.mean(stc.data[cingulate_vtx, :], axis=0)
np.save("cingulate_deep_timeseries.npy", cingulate_ts)

# 2. 计算脑区状态量化指标(报告核心数据)
sfreq = 250
# 功率谱
freqs, psd = signal.welch(cingulate_ts, fs=sfreq, nperseg=1024)
# 分频段能量(神经标准频段)
delta = psd[(freqs >= 0.5) & (freqs < 4)].sum()
theta = psd[(freqs >= 4) & (freqs < 8)].sum()
alpha = psd[(freqs >= 8) & (freqs < 13)].sum()
beta = psd[(freqs >= 13) & (freqs < 30)].sum()
gamma = psd[(freqs >= 30) & (freqs < 45)].sum()
total_power = psd.sum()

# 平均激活强度(整体兴奋程度)
mean_activation = np.mean(np.abs(cingulate_ts))
max_activation = np.max(np.abs(cingulate_ts))

# 3. 输出量化报告文本
report = f"""
===== 深部扣带回脑区状态报告(DeepSIF源成像结果)=====
1. 基础参数
采样率:{sfreq} Hz
分析源点总数:{len(cingulate_vtx)} 个颅内偶极子(ACC/MCC/PCC深部皮层)
2. 整体激活强度
平均神经电流幅值:{mean_activation:.4f}
最大瞬时激活强度:{max_activation:.4f}
3. 分频段能量分布
Delta(0.5-4Hz):{delta:.2f}
Theta(4-8Hz):{theta:.2f}
Alpha(8-13Hz):{alpha:.2f}
Beta(13-30Hz):{beta:.2f}
Gamma(30-45Hz):{gamma:.2f}
总能量:{total_power:.2f}
4. 状态解读参考
- Theta高:前扣带回ACC高度激活,情绪冲突、压力、内省
- Alpha高:后扣带回PCC抑制,注意力向外、低默认网络活动
- Gamma升高:扣带回高级整合、疼痛/认知负荷升高
"""
print(report)
# 保存报告
with open("cingulate_deep_state_report.txt", "w", encoding="utf-8") as f:
    f.write(report)

# 4. 绘图:扣带回时序 + 功率谱
plt.figure(figsize=(14,6))
plt.subplot(1,2,1)
plt.plot(np.arange(len(cingulate_ts))/sfreq, cingulate_ts)
plt.title("深部扣带回神经电流时序信号")
plt.xlabel("Time (s)")
plt.ylabel("Source Current")

plt.subplot(1,2,2)
plt.plot(freqs, psd)
plt.xlim(0,45)
plt.title("扣带回功率谱")
plt.xlabel("Frequency (Hz)")
plt.tight_layout()
plt.savefig("cingulate_spectrum_timeseries.png", dpi=300)
plt.show()

运行:python cingulate_state_analysis.py

Step7:可视化深部扣带回三维脑成像(直观展示激活分布)

新建 visualize_cingulate_brain.py

import mne
from mne.datasets import fetch_fsaverage

fs_dir = fetch_fsaverage()
subject = "fsaverage"
subjects_dir = fs_dir.parent
stc = mne.read_source_estimate("deepsif_full_brain_stc.h5")

# 三维脑表面渲染,高亮深部扣带回激活
brain = stc.plot(
    subject=subject,
    subjects_dir=subjects_dir,
    hemi="both",
    views=["medial"],  # 内侧视角,完美显示中线扣带回深部区域
    clim="auto",
    cortex="gray",
    background="black"
)
# 叠加扣带回ROI轮廓
cingulate_labels = [lab for lab in mne.read_labels_from_annot(subject, parc="aparc.a2009s", subjects_dir=subjects_dir)
                    if "G_cingul" in lab.name]
for lab in cingulate_labels:
    brain.add_label(lab, borders=True, color="red")

brain.save_image("cingulate_deep_activation_medial_view.png")

运行后弹出3D脑窗口,内侧视图(medial) 可清晰观察深埋中线的扣带回激活热点。

完整输出文件汇总(报告素材)

  1. cingulate_deep_state_report.txt:扣带回量化状态核心报告
  2. cingulate_deep_timeseries.npy:深部扣带回连续神经活动时序
  3. cingulate_spectrum_timeseries.png:时序+频谱图
  4. cingulate_deep_activation_medial_view.png:大脑内侧扣带回三维激活图
  5. deepsif_full_brain_stc.h5:全脑源成像原始数据,可二次细分ACC/MCC/PCC单独分析

关键调优提示(针对EEG设备与深部脑区)

  1. 电极数量:≥32通道EEG才能保证扣带回深部重建精度;128通道效果最优;
  2. 噪声控制:肌电、工频噪声会严重干扰深部源,ICA预处理不可省略;
  3. DeepSIF对比传统算法:dSPM/MNE对中线深部脑区信号衰减严重,DeepSIF深度学习正则化大幅提升扣带回信噪比;
  4. 分区细化:如需单独输出前扣带回ACC状态,可在extract_cingulate_roi.py只保留G_cingul-Ant标签单独分析。

常见报错解决

  1. 电极montage缺失:必须匹配你的EEG设备电极坐标,否则正向矩阵失效,深部源完全失真;
  2. CUDA out of memory:改用device="cpu"运行反演,降低源空间spacing(oct7→oct6);
  3. 图谱读取失败:重新执行fetch_fsaverage下载完整模板。

扣带回在情绪、认知心理学研究中的核心价值

扣带回是情绪系统(边缘)与高级认知(前额叶)唯一深度整合中线枢纽,深埋大脑内侧(胼胝体上方),分为四大功能亚区:腹侧前扣带回sgACC/rACC、背侧前扣带回dACC、中扣带回MCC、后扣带回PCC。 传统头皮EEG很难精准捕捉深部中线信号,你之前用DeepSIF源成像专门提取扣带回,正是为了解决这一观测短板;下面从基础理论、实验范式、临床病理、干预机制、意识/内观研究五大维度完整说明其心理学价值。

一、基础理论价值:打通“情绪—认知二分”的核心脑区

传统心理学长期将情绪、认知割裂研究,扣带回从神经层面证明二者是统一调控系统,奠定情绪认知整合理论的生理基础:

  1. 腹侧ACC(rACC/sgACC):情绪输入闸门 直接连接杏仁核、下丘脑、内脏自主神经,负责编码情绪效价(愉悦/厌恶、焦虑、悲伤),把纯粹本能情绪转化为带主观评价的心理感受; 理论贡献:解释情绪主观体验从生理唤醒到心理觉知的转化过程,弥补詹姆斯-兰格情绪理论缺失的皮层整合环节。
  2. 背侧dACC:认知冲突监测器 连接背外侧前额叶,核心功能冲突监控理论(Conflict Monitoring):检测竞争信息、矛盾想法、错误反应,发出“需要增强控制”信号。 理论贡献:解释执行控制、抑制控制、元认知,统一解释Stroop、Flanker、错误监测(ERP的ERN电位起源于dACC)。
  3. MCC中扣带回:情绪-行动-疼痛整合 融合疼痛的躯体感觉与情绪厌恶、动机行为;区分“物理痛”和“心理痛苦(社会排斥、内疚)”的共同神经基底。
  4. PCC后扣带回:默认网络核心、自我加工中枢 海马、内侧前额叶通路枢纽,主导自我参照思维、内省、自传记忆、反刍、心智理论,区分“对外感知”与“对内思绪”两大意识模式。

顶层理论意义

扣带回完整解释双重加工模型

  • 自动内隐加工(DMN,PCC主导:胡思乱想、回忆、自我评判)
  • 受控外显加工(执行网络,dACC主导:专注、抑制、理性决策) 两类网络的切换、平衡全部由扣带回多亚区协同完成。

二、实验心理学:可量化的核心观测指标(适配你的DeepSIF-EEG源成像)

所有情绪、认知经典任务,扣带回激活是稳定、可重复的生物标记,你提取扣带回时序/频谱可直接对应心理学行为指标:

1. 认知控制类实验(dACC为核心标记)

  • Stroop任务、色词冲突:dACC激活强度 = 认知抑制负荷;
  • 任务切换、反应错误:dACC theta功率升高(4–8Hz)= 冲突与错误预警;
  • 拖延、注意力缺陷:静息dACC激活不足,冲突信号输出减弱。

    2. 情绪调节实验(rACC/sgACC)

  • 情绪重评、压抑表达:rACC增强对杏仁核自上而下抑制;
  • 负性图片/面孔范式:sgACC高激活 = 焦虑、悲伤主观评分升高;
  • 共情、道德判断:rACC编码他人痛苦的情绪共情。

    3. 自我与内隐思维实验(PCC)

  • 自我参照任务(判断词语是否描述自己):PCC显著激活;
  • 自传记忆提取、白日梦、反刍思维:静息PCC高能量;
  • 心智理论(推测他人想法):PCC+内侧前额叶协同激活。

    4. 疼痛、社会排斥(MCC)

  • 社会排斥范式(虚拟抛球游戏):MCC激活和躯体疼痛完全重叠,证明“心痛”有统一神经机制;
  • 慢性压力、内疚、羞耻均伴随MCC持续高激活。

对你DeepSIF工作的直接价值

头皮原始EEG无法区分中线深部源,只能看到宽泛额叶波形;通过源成像分离扣带回后,可实现:

  1. 分亚区提取时序信号,区分“认知冲突(dACC theta)”和“情绪反刍(PCC alpha衰减)”;
  2. 建立神经活动强度 ↔ 心理量表得分(焦虑、抑郁、正念、执行功能)的线性模型;
  3. 区分健康人与情绪障碍被试的深部脑区特征图谱。

三、临床异常心理学:情绪精神疾病的核心病理靶点

几乎所有心境、焦虑、强迫、创伤类心理疾病,核心病变环路都集中在扣带回,是诊断、分型、疗效评估关键生物标记:

  1. 重度抑郁症 MDD
    • sgACC过度激活:持续沉浸负性情绪;
    • PCC静息异常亢进:反复反刍、自责、过度自我关注;
    • dACC功能低下:无法抑制负面思维、执行控制受损; 临床应用:抗抑郁药、认知行为疗法(CBT)有效标准——降低sgACC、PCC过度激活,恢复dACC调控能力。
  2. 焦虑障碍(广泛性焦虑、社交焦虑、惊恐) rACC持续高同步,杏仁核-扣带回通路过度连通,对威胁刺激放大加工;
  3. 强迫症 OCD dACC-MCC环路过度活跃,冲突信号无限放大,产生“反复怀疑、强迫行为”;
  4. 创伤后应激障碍 PTSD MCC对创伤线索异常激活,dACC无法阻断侵入性负性记忆;
  5. 精神分裂症 扣带回多亚区间功能连接断裂,情绪与认知解离,出现情感淡漠、思维混乱;
  6. 成瘾(物质/行为成瘾) ACC奖赏编码失衡,无法权衡短期快感与长期负面后果。

临床干预价值

  • 心理治疗靶点:CBT、正念认知疗法MBCT核心重塑扣带回-前额叶-边缘网络;
  • 神经调控:经颅直流电、深部脑刺激DBS靶向ACC,用于难治抑郁、强迫症;
  • 你的EEG源成像可做低成本床边评估:无需fMRI,长期追踪扣带回活动变化判断心理干预是否起效。

四、正念、内观、冥想心理学研究的核心脑区(高度适配你的禅修EEG方向)

扣带回是身心训练改变主观情绪觉知的核心神经载体,也是当代沉思神经科学最核心ROI:

  1. 短期正念训练
    • dACC激活提升:冲突控制、专注能力增强;
    • rACC抑制杏仁核:情绪唤醒降低,情绪调节能力提升;
    • PCC活动下调:减少无意义自我反刍、杂念纷飞。
  2. 长期禅修/内观修行
    • 扣带回各亚区间功能连接重塑:对外注意(执行网络)与对内觉察(默认网络)灵活切换;
    • MCC对痛苦刺激响应减弱:提升接纳、减少心理抗拒;
    • 静息态PCC频谱重构:减少沉浸式自我思维,增强纯粹觉知。
  3. 理论突破:解释“觉察”的神经机制 传统心理学很难定义“元觉察、旁观情绪”,扣带回双通路给出解释: dACC负责觉察监控,rACC负责情绪感受,二者分离时产生“不卷入情绪的客观觉知”。

五、人格、发展、社会心理学底层解释框架

1. 人格差异

  • 神经质高人群:sgACC基线激活高,更容易体验负面情绪;
  • 尽责性高人群:dACC冲突监控效率更高,自控力更强;
  • 内向高自我沉浸人群:静息PCC能量显著高于外向者。

    2. 发展心理学

    儿童青少年扣带回持续发育至25岁,直接解释:

  • 青春期情绪冲动:rACC成熟早、dACC调控系统发育滞后;
  • 青少年自我意识爆发:PCC自我参照网络快速成熟;
  • 早年创伤:永久改变扣带回-杏仁核连接,形成终身情绪调节缺陷。

    3. 社会心理学

  • 道德、公平决策:dACC编码不公平带来的认知冲突,rACC编码道德厌恶情绪;
  • 共情、利他:rACC-MCC整合他人情绪与自身动机;
  • 群体排斥、社交痛苦:MCC特异性激活。

六、总结:扣带回不可替代的独特研究价值(三点核心)

  1. 唯一跨情绪-认知整合枢纽 大脑没有第二个脑区同时深度连接边缘情绪中枢、前额执行中枢、记忆中枢、疼痛通路;所有心理活动本质都是情绪与认知的互动,扣带回是这条交互通路的观测窗口。
  2. 深部中线脑区,必须依靠源成像(DeepSIF)才能精准测量 表层EEG电极只能捕捉皮层外侧信号,扣带回深埋中线,传统时域EEG、ERP信噪比极低;你搭建的DeepSIF反演流程,解决了心理学实验中“深部情绪认知中枢无创观测”的技术瓶颈。
  3. 贯通基础实验、临床病理、沉思干预三大研究赛道
    • 基础:验证情绪认知整合理论、冲突监控、自我加工理论;
    • 临床:心理疾病生物标记、心理治疗疗效客观评估;
    • 应用:正念、禅修、情绪训练的神经机制量化研究。

配套研究报告解读指南(对接你之前的DeepSIF扣带回输出)

拿到扣带回时序/频谱报告后,心理学层面解读标准:

  1. dACC Theta(4–8Hz)升高:认知冲突高、注意力消耗大、内心矛盾;
  2. sgACC高幅值+高Gamma:负性情绪(焦虑、悲伤、烦躁)强度上升;
  3. 静息PCC总能量过高:反刍、胡思乱想、过度自我评判、抑郁倾向;
  4. MCC持续高激活:心理痛苦、内疚、社交受挫、躯体不适伴随情绪厌恶;
  5. 正念训练有效特征:dACC theta提升,sgACC、PCC整体功率下降。

评论

2 条对“DeepSIF 分步完整流程 估测提取扣带回状态”的回复

  1. 如何研究自己的扣带回状态? – xianheng2的文章 – 知乎
    https://zhuanlan.zhihu.com/p/2061753332377581110

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注