Skip to content

第7章:从菜单到脚本:历史面板

承接第6章 — ERP 分析。这是 MNELAB 配套指南的最后一章。

到目前为止,你已经通过点击完成了主 MNE-Python 教程以代码形式讲授的"加载 → 预处理 → ICA → 分段 → 平均"这套工作流程。这最后一章要展示把两者直接联系起来的那个功能:MNELAB 的历史面板

从菜单点击到历史面板中的一行代码

打开历史面板

View → History(或按 Ctrl+Y)会打开一个面板,它一直在悄悄记录着自 MNELAB 启动以来你执行的每一个操作——而且记录的不是含糊的描述,而是该操作实际执行的那行 MNE-Python 代码本身。这是 MNELAB 的核心特性之一:用作者自己的话说,它的存在正是为了帮助你"发现之前的操作对应哪个函数",以及"用代码复现你的分析"(Brunner, 2022, Journal of Open Source Software)。

一个实例

在示例记录数据上完成本指南第2至5章的操作后,历史面板里大致会留下这样的内容:

data = read_raw("sample_audvis_raw.fif", preload=True)
data.filter(1.0, 40.0)
data.set_eeg_reference("average")
ica.apply(inst=data, exclude=[0, 3])
events, _ = mne.events_from_annotations(data)
data = mne.Epochs(data, events[np.isin(events[:, 2], [1, 2, 3])],
                   tmin=-0.2, tmax=0.5, baseline=(None, 0), preload=True)

这里的每一行都正是主 MNE-Python 教程第3至7章所讲授的 API——filter()set_eeg_reference()ica.apply()events_from_annotations(),以及 mne.Epochs()。没有任何一行是被转译或近似出来的;历史面板就是一份直接的记录文本。

为什么这里没有格式衔接的章节

Brainstorm 和 EEGLAB & ERPLAB 这两条教程都以一章讲述如何跨越一道真实的文件格式边界回到 MNE-Python——比如读取一个 .set 文件,或导出为兼容 FieldTrip 的 .mat 文件。MNELAB 不需要这样的章节:它本身就是 MNE-Python,所以没有什么需要"导入"的东西。历史面板里的内容可以直接粘贴进一个 .py 文件或笔记本的代码单元格并原样运行——不需要任何读取函数,因为数据从一开始就从未真正离开过 MNE-Python 自身的对象模型。

接下来去哪里

从这里开始,继续处理你自己的记录数据,正是 MNE-Python 教程应用到你自己的数据这个模板要做的事。许多读者发现,最简单的方式是先在 MNELAB 中探索一份新的数据集,从它的历史面板中复制出相关的代码行,把它们作为那个模板的起点,而不是凭记忆把每一次调用都重新写一遍。

MNELAB 配套指南到此结束——感谢阅读。