非官方中文翻译 本页译自 MNE-Python 官方文档: 查看英文原文 ↗。 文档版权归 MNE Developers 所有(BSD-3-Clause)。

从其他分析软件迁移#

这里提供一些从其他分析软件迁移过来的建议。

EEGLAB#

要读取从 EEGLAB 导出的数据,MNE-Python 提供了 .edf 读取器 mne.io.read_raw_edf() 以及 set 文件读取器。若要读取包含原始数据的 set 文件,请使用 mne.io.read_raw_eeglab();若要读取包含 epochs 数据的 set 文件,请使用 mne.read_epochs_eeglab()。

下表汇总了一些最常见分析任务中相互对应的 EEGLAB 与 MNE-Python 代码。为清晰起见,下表假设已存在以下变量:文件名 fname、epochs 的时间区间 tmin 和 tmax,以及实验条件 cond1 和 cond2。l_freq 和 h_freq 是频率(单位为 Hz),分别表示低于该频率和高于该频率的数据将被滤除。

处理步骤 EEGLAB 函数

MNE-Python

开始使用
addpath(...);
eeglab;

导入数据
EEG = pop_fileio(fname);



滤波
EEG = pop_eegfiltnew(EEG, l_freq, h_freq);
平均参考(Common Average referencing)
EEG= pop_averef;

移除通道
pop_select.m

运行 ICA
EEG = pop_runica(EEG, 'pca', n);

EEG = pop_binica(EEG, 'pca', n);
绘制 ICA 属性
pop_compprop( EEG, comp_num, winhandle);
绘制 ICA 成分
compheads()
排除成分
pop_selectcomps()
ica.exclude = list_of_components_to_exclude
对数据进行分段(Epoch)
event_id = {'cond1', 'cond2'};
Epochs = pop_epochs(EEG, event_id, [tmin, tmax]);

选择 Epoch
Epochs = pop_epochs(EEG_epochs, {cond2});
ERP 蝶形图
pop_timtopo(EEG_epochs, ...);


对比 ERP
pop_compareerps(EEG_epochs1, EEG_epochs2);

保存数据
EEG = pop_saveset(EEG, fname);


潜在陷阱#

  • MNE-Python 的许多对象都带有就地(in-place)操作的方法以节省内存(也就是说,调用 raw.filter(lfreq, hfreq) 时,Raw 对象中的数据会被改变)。如果你不希望如此,可以始终先调用该对象的 copy() 方法(例如 filtered_raw = raw.copy().filter(lfreq, hfreq))。此外,一些 MNE-Python 函数还提供布尔型的 copy 参数,可实现相同的目的。

  • 通道类型(channel types)这一概念在 MNE 中至关重要,因为它支持多模态数据的分析(例如 EEG、MEG、EOG、Stim 通道等),而大多数 EEGLAB 函数则假定所有通道都属于同一类型(EEG)。若要将通道限定为单一类型,请参阅 mne.pick_types()、raw.pick()、epochs.pick() 和 evoked.pick()。