python入门教程app
EEG处理之超好⽤的⼯具包(1)——pythonmnemnelab使⽤
教程
【声明:本blog为原创,转载请先联系~】osi参考模型数据单位
之前主要⼀直在使⽤matlab做⼀些预处理,主要基于eeglab,不过最近由于结果呈现的需要,发现py的mne库功能更强⼤丰富,开源性也更好,所以这⾥以mnelab(基于mne库做的GUI界⾯)⼊⼿,记录⼀下其强⼤⽽简单的功能。
mnelab/mne包链接指向库(膜拜⼤佬):
1.关于安装:
(1)安装需依赖的库及版本环境:
MNELAB requires Python >= 3.6. In addition, the following Python packages are required:
>= 1.9.0
>= 5.10.0 or  >= 5.10.0
>= 1.14.0
>= 1.0.0
>= 2.1.0
>= 0.20.0
>= 5.2.0 (macOS only)
python.app (only when using Anaconda or Miniconda Python on macOS)
input功能
如果需要其他的计算/导出/导⼊格式,还需要安装以下的库
Optional dependencies provide additional features if installed:
(ICA computation with FastICA)redhat8安装教程
(ICA computation with PICARD)
(import XDF)
(export to EDF/BDF)
(export to BrainVision VHDR/VMRK/EEG)
mne做不了以下事情:
MNELAB comes with the following features that are not (yet) available in MNE:
Export to EDF/BDF (requires )
Export to EEGLAB SET
Export to BrainVision VHDR/VMRK/EEG (requires )
Import  files (requires )
(2)安装指令:
A.pip下安装
1. Install either PyQt5 (python3 -m pip install PyQt5) or PySide2 (python3 -m pip install PySide2).
2. Install MNELAB (python3 -m pip install mnelab).
You can start MNELAB in a terminal with mnelab(windows系统指令) or python3 -m mnelab(linux系统指令).
前端算法题面试题
B.anaconda下安装
An (unofficial, but regularly updated) conda package can be installed from . We strongly suggest to install MNELAB into its own dedicated environment to ensure smooth installation and operation:
conda create -y -n mnelab -c conda-forge mnelab
2.关于使⽤教程(这⾥以mnelab的可视化进⾏代码讲解,更易⼊门)
(1)数据预处理
EEG数据⼀般在后续操作前需要对其进⾏数据的简单预处理,以我个⼈经验,将其分为⼤致以下⼏个步骤:
这⾥以实际实验数据(.vhdr/vmark/eeg)数据格式为例,open读取后的⽂件内容
code:
data = read_raw("C:/Users/Administrator/Desktop/实验数据/2020.1.5下午before/03.vhdr", preload=True)
<1>脑区电极的定位,即确定channel locations。
mnelab:edit——》set montage
我们这⾥使⽤的是标准10-20格式
code:
data.set_montage('standard_1020', raise_if_subset=False)
<2>选择/删除电极。这⾥主要结合⾃⼰的研究内容,我主要研究EEG信号,因此在我们的研究中需要删除ECG、EMG、EOG等不需要的通道
mnelab:edit——》pick channels
我们主要研究EEG信号,所以这⾥将ECG通道删除
code:
raw.drop({'ECG'})
<3>在分段前进⾏滤波,防⽌后滤波⽽导致的锯齿化数据(顺序:先滤波——》再降采样、分段等),常⽤⼀般滤波[0.5,30]hz(后续可根据具体需求进⼀步进⾏sub-band多⼦带滤波)
mnelab:tools——》filter data
code:
data.filter(0.5, 30.0)
指针做参数
<4>重置参考电极,这⾥常以TP9 TP10双⽿平均电极作为参考(与研究⽬的也有关,这⾥讲p300的参考电极)
公式:所有电极数据 —(TP9+TP10)/2
mnelab:edit——》set reference
code:
data.set_eeg_reference(['TP9', 'TP10'])
结果:左图为重置参考前,右图为重置参考后(可以明显看到TP9 TP10处数据变缓和,因为以其叠加平均后作为参考)
⼀些常见的参考⽅案以及ref_channels参数的相应值如下:
(1)⽆需重新引⽤(No re-referencing):
如果EEG数据已经在使⽤正确的参考信号,则设置ref_channels = []。这将阻⽌MNE-Python⾃动添加平均参考投影。
(2)平均参考(Average reference):
通过设置ref_channels ='average'来对当前EEG信号进⾏平均,创建⼀个新的虚拟参考电极。
如果在info['bads']中设置了错误的EEG通道,则会⾃动排除它们。
raw.set_eeg_reference('average', projection=True)
evoked_car = mne.Epochs(raw, **epochs_params).average()
evoked_car.plot(axes=ax2,
titles=dict(eeg='Average reference'),
show=False,
time_unit='s')
"""
使⽤所有通道的平均值作为参考
"""
raw_avg_ref = py().set_eeg_reference(ref_channels='average')
(3)单电极(A single electrode):
将ref_channels设置为包含将⽤作新参考的通道名称的列表,例如ref_channels = ['Cz']。
多个电极的平均值(The mean of multiple electrodes:):
通过计算从两个或多个选定通道记录的当前EEG信号的平均值,可以创建⼀个新的虚拟参考电极(⾃动计算所选取通道的平均值) 将ref_channels设置为通道名称列表,指定要使⽤的通道。
例如,要使⽤平均乳突参考,在使⽤10-20命名⽅案时,请设置ref_channels = ['M1','M2']。
<5>对数据根据mark进⾏分段,同时去除基线(extract epochs),去基线常以“0时刻”(选定的事件)开始前⼀段时间作为基线
mnelab:tools——》create events from annotations(因为我们数据格式为vhdr,⾃带vmark信息)
这时可以看到,events这⾥读取了三种mark信息,1(⾮靶刺激),2(靶刺激)和99999(刺激开始点)
code:
events, _ = mne.events_from_annotations(data)
<6>分段extract epochs,去基线(⼀般以0⽬标前⼏百ms作为去基线标准baseline)
mnelab:tools——》extract epochs
这⾥选择“2”(靶刺激作为分段),总时长-0.2s-1s,去基线以-0.2s-0s 为baseline
code:
data = mne.Epochs(data, events, event_id=[2], tmin=-0.2, tmax=1.0, baseline=(-0.2, 0.0), preload=True)
【未完待续】

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。