概述
MNE-Python 是一个面向电生理数据分析的科学计算 Python 工具包,覆盖 MEG、EEG、iEEG、fNIRS 的数据结构、预处理、频谱分析、源建模与可视化。该技能基于 mne==1.11.0、Python 3.13.5 构建;若使用不同版本,需查看 assets/version.txt 并参考 doc/changes/v1.11.rst 了解 API 差异。
用途
该技能有意限定于日常分析的常见工作流,用于完成从信号加载到分段、预处理、时频分析、逆建模与报告生成的完整管道,也适用于传感器域/源空间工作流与电生理质量控制。
主要能力
技能覆盖以下模块:mne.io(原始类与格式读写)、mne.epochs、mne.preprocessing(伪迹检测/校正、ICA、滤波辅助)、mne.time_frequency(PSD/TFR/CSD 估计)、mne.viz(传感器/源绘图)、mne.report,以及基本的正/逆问题设置。
明确不覆盖:所有格式专用读取器的完整覆盖、每一个数据集辅助函数、全部高级波束形成/最小范数变体,以及 mne._fiff / mne.commands 下的底层内部实现。
快速参考中列出的常见接口包括:
| 函数 / 类 | 用途 |
|---|---|
mne.create_info() |
构建所有核心容器使用的通道元数据 |
mne.io.RawArray() |
将内存中的连续数据包装为 Raw |
mne.make_fixed_length_events() |
创建用于分窗的规则事件标记 |
mne.Epochs() |
将连续原始数据切分为事件锁定试次 |
mne.compute_covariance() |
从 epochs 估计噪声/数据协方差 |
mne.preprocessing.ICA() |
配置用于伪迹处理的 ICA 分解 |
mne.time_frequency.psd_array_welch() |
用 Welch 方法从数组计算 PSD |
mne.make_sphere_model() |
构建简单的头部电导模型 |
mne.Report() |
生成 HTML 质控/报告产物 |
使用方式
安装
pip install mne
# optional but commonly needed for decoding / ICA workflows
pip install scikit-learn
数据容器与 I/O
import numpy as np
import mne
# tested against mne==1.11.0
info = mne.create_info(["Fz", "Cz"], sfreq=100.0, ch_types="eeg")
raw = mne.io.RawArray(np.random.randn(2, 300), info)
print(raw.get_data().shape)
事件、Epochs 与 Evoked
import numpy as np
import mne
# tested against mne==1.11.0
info = mne.create_info(["EEG 001"], sfreq=100.0, ch_types="eeg")
raw = mne.io.RawArray(np.random.randn(1, 1000), info)
events = mne.make_fixed_length_events(raw, duration=0.5)
epochs = mne.Epochs(raw, events, event_id={"stim": 1}, tmin=0.0, tmax=0.2, baseline=None, preload=True, verbose=False)
print(len(epochs))
预处理与伪迹
import mne
# tested against mne==1.11.0
ica = mne.preprocessing.ICA(n_components=2, method="fastica", random_state=0)
print(ica.method)
频谱与时频分析
import numpy as np
import mne
# tested against mne==1.11.0
sfreq = 200.0
t = np.arange(0, 2, 1 / sfreq)
signal = np.sin(2 * np.pi * 10 * t)
psd, freqs = mne.time_frequency.psd_array_welch(signal, sfreq=sfreq, fmin=1, fmax=40)
print(psd.shape[0], round(float(freqs[psd.argmax()]), 1))
正向、逆向与源基础
import mne
# tested against mne==1.11.0
sphere = mne.make_sphere_model(head_radius=0.09)
print(type(sphere).__name__)
可视化与报告
import mne
# tested against mne==1.11.0
report = mne.Report(title="Synthetic QC")
report.add_html("<p>ok</p>", title="status")
print(len(report))
验证(Medium+)
python .opencode/skills/opensci-skill/scripts/verify-snippets.py --root .opencode/skills/mne-python --fail-fast
覆盖模式与 API 字典
覆盖模式为 hybrid:工作流覆盖体现为 references/*.md 中精选的日常分析路径;字典覆盖提供广泛的符号查找资产,便于在打开源文件前先进行 API 发现。字典资产包括 assets/symbol-index.md(模块级符号导航)、assets/symbol-index.jsonl(机器可读的符号查找记录)与 assets/symbol-cards/(按模块划分、含签名与锚点的符号卡片)。
模块映射:mne.io 为原始类与格式读写器(核心导入路径);mne.preprocessing 为伪迹检测/校正、ICA、滤波辅助(高使用率预处理 API);mne.time_frequency 为 PSD/TFR/CSD 估计器(频谱工作流);mne.viz 为传感器/源绘图后端;mne._fiff.meas_info 为元数据内部实现(Info,标记为 [LARGE],超过 500 行)。导入方式为惰性 __getattr__ 配合由 stub 驱动的 __all__(通过 lazy_loader.attach_stub())。
参考资料文件:references/data-containers-and-io.md(元数据创建、内存 Raw 对象与形状契约)、references/events-epochs-and-evoked.md(事件生成、试次分段与 evoked 平均基础)、references/preprocessing-and-artifacts.md(协方差估计与 ICA 伪迹工作流设置)、references/spectral-and-time-frequency.md(Welch PSD 与常见频谱工作流模式)、references/forward-inverse-and-source.md(球模型、临时协方差与源管道入口)、references/visualization-and-reporting.md(报告生成与快速可视化产物)。
适用场景
适用于 MEG/EEG/iEEG/fNIRS 的日常分析流程:加载原始信号、分段、预处理、时频分析、逆建模、传感器/源空间工作流、报告生成与电生理质量控制。
限制
该技能不覆盖所有格式专用读取器、全部数据集辅助函数、所有高级波束形成/最小范数变体以及底层内部实现;版本不同时 API 可能存在差异,需查阅版本变更文档。关于收费、价格与具体平台信息,资料中暂未提供。