步骤 01:数据加载
将外部 EEG 数据文件读入 MNE-Python,返回 Raw 对象
1. 目标
将外部 EEG 数据文件(.fif、.edf、.bdf、.vhdr、.cnt、.set 等)读入 MNE-Python,返回 Raw 对象,作为整个预处理流水线的起点。
2. 何时使用 / 何时跳过
- 必须使用:整个流程的第一步,无任何前置步骤
- 不可跳过:所有后续步骤的输入都依赖
Raw对象
3. 前置条件
- 已安装 MNE-Python:
pip install mne - 数据文件已知格式与路径
- 建议设置
MNE_DATA环境变量或使用mne.datasets内置数据集练手
4. 核心代码
Python
import mne
# ====== 方式 A:读取 .fif 格式(MNE 原生) ======
raw = mne.io.read_raw_fif('path/to/subject-01_raw.fif', preload=True)
# ====== 方式 B:读取 EDF 格式 ======
raw = mne.io.read_raw_edf('path/to/subject-01.edf', preload=True)
# ====== 方式 C:读取 BDF(BioSemi) ======
raw = mne.io.read_raw_bdf('path/to/subject-01.bdf', preload=True)
# ====== 方式 D:读取 BrainVision(.vhdr + .eeg + .vmrk) ======
raw = mne.io.read_raw_brainvision('path/to/subject-01.vhdr', preload=True)
# ====== 方式 E:读取 EEGLAB .set ======
raw = mne.io.read_raw_eeglab('path/to/subject-01.set', preload=True)
# ====== 方式 F:使用 MNE 内置 sample 数据集练习 ======
from mne.datasets import sample
data_path = sample.data_path()
raw = mne.io.read_raw_fif(
data_path / 'MEG' / 'sample' / 'sample_audvis_raw.fif',
preload=True
)
5. 参数详解
| 参数 | 含义 | 推荐值 | 默认值 |
|---|---|---|---|
preload |
是否将数据加载到内存 | True(小数据)/ False(大文件,按需加载) |
False |
verbose |
日志详细度 | 'ERROR'(生产)/ 'INFO'(调试) |
'INFO' |
⚠️
preload=True是后续所有滤波、ICA、epoch 步骤的前置条件。如果保留preload=False,任何修改类操作(filter/pick/resample)都会报错或产生意外行为。
6. 验证方法
Python
# 验证 1:打印基本信息
print(raw)
print(raw.info)
# 验证 2:检查关键字段
assert 'sfreq' in raw.info
assert raw.info['sfreq'] > 0
print(f"采样率: {raw.info['sfreq']} Hz")
print(f"通道数: {len(raw.ch_names)}")
print(f"时长: {raw.times[-1]:.1f} s")
# 验证 3:可视化原始数据
raw.plot(duration=5, n_channels=30, scalings='auto')
期望输出:
- print(raw) 输出 <Raw | subject-01_raw.fif | 64 ch | 1000 Hz>
- raw.info 中可见 sfreq、ch_names、highpass、lowpass
7. 常见错误
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
FileNotFoundError |
路径错误或文件名拼写错误 | 使用绝对路径或 pathlib.Path 构造 |
ValueError: preload must be True |
未设 preload=True 但后续想用 .copy() 等 |
重新读取并设 preload=True |
NotImplementedError |
格式不被支持 | 转换为 .fif 或 .edf 后再读 |
RuntimeError: No reader for ... |
未安装对应 IO 插件 | pip install mne[io] 或安装专用包 |
| 通道名乱码 | EDF/BDF 文件头编码异常 | 设 encoding='latin-1' 或 eog='auto' |
8. 官方来源
| 资源类型 | 链接 |
|---|---|
| API 总览 | https://mne.tools/stable/generated/mne.io.html |
read_raw_fif |
https://mne.tools/stable/generated/mne.io.read_raw_fif.html |
read_raw_edf |
https://mne.tools/stable/generated/mne.io.read_raw_edf.html |
read_raw_bdf |
https://mne.tools/stable/generated/mne.io.read_raw_bdf.html |
read_raw_brainvision |
https://mne.tools/stable/generated/mne.io.read_raw_brainvision.html |
| 数据 IO 教程 | https://mne.tools/stable/auto_tutorials/io/10_reading_meg_data.html |
| EEG 数据 IO 教程 | https://mne.tools/stable/auto_tutorials/io/20_reading_eeg_data.html |
9. 学术引用
无需在论文中单独引用本步骤。如整体使用 mne-bids-pipeline,可引用:
Gramfort, A., et al. (2014). MNE software for processing MEG and EEG data. Neuroimage, 86, 446-460.