python-eeg工具库mne中文教程-参考电极应用(代码片段)

rosevorchid rosevorchid     2023-05-04     285

关键词:

@(目录)

本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195
技术图片

MNE-Python中的参考

MNE-Python中的平均参考设置

set_eeg_reference(self, 
                  ref_channels='average',
                  projection=False, 
                  ch_type='auto', 
                  verbose=None)

指定用于EEG信号的参考。

默认情况下,MNE-Python将自动重新参考EEG信号,以使用平均参考(请参见下文)。 这个函数可以显示指定所需的EEG参考。这可以是现有电极或新的虚拟通道。 此函数将根据所需参考重新参考数据,并防止MNE-Python自动添加平均参考投影。

引用简介

一些常见的参考方案以及ref_channels参数的相应值如下:

无需重新引用(No re-referencing)

如果EEG数据已经在使用正确的参考信号,则设置ref_channels = []。这将阻止MNE-Python自动添加平均参考投影。

平均参考(Average reference)

通过设置ref_channels =‘average‘来对当前EEG信号进行平均,创建一个新的虚拟参考电极。
如果在info[‘bads‘]中设置了错误的EEG通道,则会自动排除它们。

单电极(A single electrode)

将ref_channels设置为包含将用作新参考的通道名称的列表,例如ref_channels = [‘Cz‘]。

多个电极的平均值(The mean of multiple electrodes)

通过计算从两个或多个选定通道记录的当前EEG信号的平均值,可以创建一个新的虚拟参考电极。
将ref_channels设置为通道名称列表,指定要使用的通道。
例如,要使用平均乳突参考,在使用10-20命名方案时,请设置ref_channels = [‘M1‘,‘M2‘]。

Python案例

import mne
from mne.datasets import sample
from matplotlib import pyplot as plt

# 数据文件存放地址
data_path = sample.data_path()
raw_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw.fif'
event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'
event_id, tmin, tmax = 1, -0.2, 0.5

# 读取fif文件,并生成raw对象
raw = mne.io.read_raw_fif(raw_fname, preload=True)
events = mne.read_events(event_fname)

# 将绘制脑电通道,以可视化参考方案中的差异。
picks = mne.pick_types(raw.info,
                       meg=False,
                       eeg=True, 
                       eog=True, 
                       exclude='bads')

技术图片

下面将应用不同的EEG参考方案,并绘制所产生的诱发电位。
注意,当使用mne.Epochs构造epochs时,这里提供proj = True参数。这意味着将自动应用所有可用的projector(投影)。
具体来说,如果存在由raw.set_eeg_reference(‘average‘,projection = True)设置的平均参考投影机,则MNE在创建epochs(时间片段)时会应用此projector(投影)。

reject = dict(eog=150e-6)
epochs_params = dict(events=events, 
                     event_id=event_id, 
                     tmin=tmin, tmax=tmax,
                     picks=picks, 
                     reject=reject, proj=True)

fig, (ax1, ax2, ax3) = plt.subplots(nrows=3, ncols=1, sharex=True)

"""
设置为 没有参考。
这里假定EEG是由正确的参考得到的。
这明确阻止MNE添加默认的EEG参考。
任何普通的参考projector(投影)都会被自动删除。
"""
raw.set_eeg_reference([])
evoked_no_ref = mne.Epochs(raw, **epochs_params).average()

evoked_no_ref.plot(axes=ax1, 
                   titles=dict(eeg='Original reference'), 
                   show=False,
                   time_unit='s')
"""
平均参考 默认情况下就是平均参考,但也可以显式添加。
"""
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')
"""
从平均参考重新参考EEG 001和EEG 002通道的平均值。
"""
raw.set_eeg_reference(['EEG 001', 'EEG 002'])
evoked_custom = mne.Epochs(raw, **epochs_params).average()

evoked_custom.plot(axes=ax3, 
                   titles=dict(eeg='Custom reference'),
                   time_unit='s')
plt.show()

技术图片

"""
绘制raw对象中所有通道的曲线图
"""
raw.plot(n_channels=len(raw))
plt.show()

技术图片

"""
使用所有通道的平均值作为参考
"""
raw_avg_ref = raw.copy().set_eeg_reference(ref_channels='average')
raw_avg_ref.plot(n_channels=len(raw))
plt.show()

技术图片

参考
MNE-Python 参考电极
脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号
技术图片

参考电极简介

...的平均值,使其看起来好像没有参考)。参考:MNE-Python中文教程-参考电极 查看详情

python-mne库使用教程(代码片段)

一.读取数据mne库支持多种数据格式的读取,这里我来写一点我的样例。一个是从csv读取数据,一个是读取EDF(信息较为多)里的数据。1.从csv读取数据csv读取的话只有电压值很多信息是没有的。#因为数据为22导... 查看详情

mne读取seed数据集mat文件(代码片段)

...ttps://mne.tools/dev/generated/mne.io.Raw.html#mne.io.Raw或者MNE完整的教程文档:https://mne.tools/dev/auto_tutorials/index.html 查看详情

mne学习笔记:evoked数据结构(代码片段)

MNE学习笔记(四):Evoked数据结构参考文章:https://mp.weixin.qq.com/s/Udr0qBvspyKVjASdgL-QxQhttps://mne.tools/stable/auto_tutorials/index.html【官方教程】https://baike.baidu.com/item/%E8%AF%B1%E5 查看详情

mne学习笔记:evoked数据结构(代码片段)

MNE学习笔记(四):Evoked数据结构参考文章:https://mp.weixin.qq.com/s/Udr0qBvspyKVjASdgL-QxQhttps://mne.tools/stable/auto_tutorials/index.html【官方教程】https://baike.baidu.com/item/%E8%AF%B1%E5 查看详情

mne学习笔记:epoch数据结构(代码片段)

MNE学习笔记(三):Epoch数据结构参考文章:https://mp.weixin.qq.com/s/eJz5a1Up8fST0P1AcNs6Ighttps://mne.tools/stable/auto_tutorials/index.html【官方教程】https://roses.blog.csdn.net/article/detail 查看详情

mne学习笔记:epoch数据结构(代码片段)

MNE学习笔记(三):Epoch数据结构参考文章:https://mp.weixin.qq.com/s/eJz5a1Up8fST0P1AcNs6Ighttps://mne.tools/stable/auto_tutorials/index.html【官方教程】https://roses.blog.csdn.net/article/detail 查看详情

google官方开源的推荐系统工具库介绍(含视频教程)(代码片段)

说明:文章内容仅供学习使用,如有侵权请联系删除编辑:搜索与推荐Wiki参考:1.谷歌开源推荐系统库(TensorFlowRecommenders)2.中文视频|TFRecommenders系列视频教程TensorFlowRecommendersTensorFlow推荐器是一个使用TensorFlow构建... 查看详情

google官方开源的推荐系统工具库介绍(含视频教程)(代码片段)

说明:文章内容仅供学习使用,如有侵权请联系删除编辑:搜索与推荐Wiki参考:1.谷歌开源推荐系统库(TensorFlowRecommenders)2.中文视频|TFRecommenders系列视频教程TensorFlowRecommendersTensorFlow推荐器是一个使用TensorFlow构建... 查看详情

mne学习笔记:安装与测试(代码片段)

MNE学习笔记(一):安装与测试参考文章:https://mp.weixin.qq.com/s/3IAIOoV7Ai4q0YNO_vxklw环境首先得确保电脑中已有python3.0以上的环境,这里我安装的是Python3.9.0安装控制台输入安装代码即可完成安装:pipinstall-Umne... 查看详情

中文分词工具简介与安装教程(jiebanlpirhanlppkusegfoolnltksnownlpthulac)

...要另外下载其它的数据包,在这一点上它比其余五款分词工具都要便捷。另外,jieba库支持的文本编码方式为utf-8。Jieba库包含许多功能,如分词、词性标注、自定义词典、关键词提取。基于jieba的关键词提取有两种常用算法,一... 查看详情

mne学习笔记:evokeddata的可视化(代码片段)

MNE学习笔记(七):Evokeddata的可视化参考文章:https://mne.tools/stable/auto_tutorials/evoked/20_visualize_evoked.html准备工作这里就不再解释了,具体可以查看MNE学习笔记(四):Evoked数据结构。代码 查看详情

mne学习笔记:evokeddata的可视化(代码片段)

MNE学习笔记(七):Evokeddata的可视化参考文章:https://mne.tools/stable/auto_tutorials/evoked/20_visualize_evoked.html准备工作这里就不再解释了,具体可以查看MNE学习笔记(四):Evoked数据结构。代码 查看详情

mne学习笔记:evokeddata的可视化(代码片段)

MNE学习笔记(七):Evokeddata的可视化参考文章:https://mne.tools/stable/auto_tutorials/evoked/20_visualize_evoked.html准备工作这里就不再解释了,具体可以查看MNE学习笔记(四):Evoked数据结构。代码 查看详情

mne学习笔记:epocheddata的可视化(代码片段)

MNE学习笔记(六):Epocheddata的可视化参考文章:https://mne.tools/stable/auto_tutorials/epochs/20_visualize_epochs.html准备工作包括导包加载这个部分之前已经有详细地说明了,如果有疑惑可以去看MNE学习笔记(三)... 查看详情

mne学习笔记:epocheddata的可视化(代码片段)

MNE学习笔记(六):Epocheddata的可视化参考文章:https://mne.tools/stable/auto_tutorials/epochs/20_visualize_epochs.html准备工作包括导包加载这个部分之前已经有详细地说明了,如果有疑惑可以去看MNE学习笔记(三)... 查看详情

mne学习笔记:raw数据结构(代码片段)

MNE学习笔记(二):Raw数据结构参考文章:https://mp.weixin.qq.com/s/LXHP7dDOyhvCWi8vKWH5lwhttps://www.pianshen.com/article/7715313899/Raw数据结构定义:Raw数据类型的对象用来存储连续型数据,核心数据以2维numpyarray(分... 查看详情

mne学习笔记:安装与测试(代码片段)

MNE学习笔记(一):安装与测试参考文章:https://mp.weixin.qq.com/s/3IAIOoV7Ai4q0YNO_vxklw环境首先得确保电脑中已有python3.0以上的环境,这里我安装的是Python3.9.0安装控制台输入安装代码即可完成安装:pipinstall-Umne... 查看详情