在前面我们介绍过Evoked的数据结构以及如何创建Evoked对象:

脑电分析系列[MNE-Python-4]| MNE中数据结构Evoked及其对象创建

Evoked potential(EP)诱发电位或诱发反应是指在出现诸如闪光或纯音之类的刺激后,从人类或其他动物的神经系统,特别是大脑的特定部分记录的特定模式的电位。不同形式和类型的刺激会产生不同类型的电位。

诱发电位振幅往往较低,从小于1微伏到数微伏不等,而脑电图为数十微伏,肌电图为毫伏,心电图通常接近20毫伏。为了在EEG、ECG、EMG等生物信号和环境噪声的背景下解决这些低幅度电位,通常需要对信号进行平均。信号被时间锁定在刺激上,大部分噪声是随机产生的,这样就可以通过对重复响应来平均掉噪声。

诱发电位(Evoked)结构主要用于存储实验期间的平均数据,在MNE中,创建Evoked对象通常使用mne.Epochs.average()来平均epochs数据来实现。

本示例中,我们着重于mne.Evoked的绘图功能。

案例介绍

# 导入工具包
import os.path as op
import numpy as np
import matplotlib.pyplot as pltimport mne
"""
第一步:
从文件中读取诱发对象
"""
# 获取数据文件默认春芳地址
data_path = mne.datasets.sample.data_path()
# 构建文件存放的具体路径
fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')
# 根据文件存放的具体路径
evoked = mne.read_evokeds(fname, baseline=(None, 0), proj=True)

# 打印 evoked
print(evoked)

从上面打印信息可以看到,Evoked的内容包含了4个类别的evoked数据,分别是:Left Auditory、Right Auditory、Left visual、Right visual。

注意,诱发事件是一系列诱发事件的实例。
通过将参数条件传递给mne.read_evokeds(),您只能读取其中一个类别。 为了使本教程更简单,我们将每个实例读取到一个变量。

evoked_l_aud = evoked[0]
evoked_r_aud = evoked[1]
evoked_l_vis = evoked[2]
evoked_r_vis = evoked[3]

下面我们绘制事件相关的电位/场(ERP / ERF)。 默认情况下不绘制不良通道。
在这里,我们明确设置了exclude参数,以红色显示不良频道。MNE-python的所有绘图功能都会返回图形实例的句柄。
有了句柄后,我们可以自定义绘制效果

fig = evoked_l_aud.plot(exclude=(), time_unit='s')

下面我们将它变得更漂亮一些,仅使用MEG通道。许多mne函数都包含一个pick参数来包含频道的选择。pick_types()、mne.pick_channels()、mne.pick_channels_regexp()或可以解释为通道名称或通道类型的字符串列表,可以轻松构造这些通道索引。

使用spatial_colors=True,对各个通道行进行颜色编码,以显示传感器的位置—具体地说,将传感器的x、y和z位置转换为R、G和B值。

evoked_l_aud.plot(spatial_colors=True, gfp=True, picks='meg')

注意左边的图例。这些颜色表明可能有两个不同的信号来源。 从第一个数字来看,这并不明显。尝试用鼠标左键绘制斜线。 它应该打开一个新窗口,其中topomaps(头皮区域)是绘制区域的平均值。还有一个单独绘制topomaps的功能。

evoked_l_aud.plot_topomap(time_unit='s')

默认情况下,topomaps是从诱发数据上平均分布的时间点绘制的。
我们也可以自己定义时间。

times = np.arange(0.05, 0.151, 0.05)
evoked_r_aud.plot_topomap(times=times, ch_type='mag', time_unit='s')

# 或者我们可以自动选择峰值。
# 或者我们可以自动选择峰值。
evoked_r_aud.plot_topomap(times='peaks', ch_type='mag', time_unit='s')

首先,我们在一个图形中创建一组matplotlib轴,并将所有诱发数据的类别相互绘制在一起。

fig, ax = plt.subplots(1, 5, figsize=(8, 2))
kwargs = dict(times=0.1, show=False, vmin=-300, vmax=300, time_unit='s')
evoked_l_aud.plot_topomap(axes=ax[0], colorbar=True, **kwargs)
evoked_r_aud.plot_topomap(axes=ax[1], colorbar=False, **kwargs)
evoked_l_vis.plot_topomap(axes=ax[2], colorbar=False, **kwargs)
evoked_r_vis.plot_topomap(axes=ax[3], colorbar=False, **kwargs)
for ax, title in zip(ax[:4], ['Aud/L', 'Aud/R', 'Vis/L', 'Vis/R']):ax.set_title(title)
plt.show()

如上图,我们创建了五个轴,但是只有四个类别。第五轴用于绘制颜色栏。创建此类自定义图或使用colorbar = False禁用颜色条时,必须为其提供空间。这就是警告要告诉您的内容。同样,我们将show = False用于第三个函数调用。

我们可以使用Evoked对象的mne.Evoked.plot_joint()方法在一张图中组合两种图形。按原样调用(evoked.plot_joint()),此函数应提供时空动态的信息显示。 可以使用topomap_args和ts_args参数直接设置图的时间序列部分和topomap部分的样式。也可以将键值对作为Python字典传递。

然后将它们作为参数传递给联合绘图的mne.Evoked.plot_topomap()和时间序列(mne.Evoked.plot())。

对于使用这些topomap_args和ts_args参数的特定样式的示例,此处显示了特定时间点(90和200 ms)的topomaps,未绘制传感器(通过转发到plot_topomap的参数),并且显示了Global Field Power:

ts_args = dict(gfp=True, time_unit='s')
topomap_args = dict(sensors=False, time_unit='s')
evoked_r_aud.plot_joint(title='right auditory', times=[.09, .20],ts_args=ts_args, topomap_args=topomap_args)

不用于商业行为,转载请联系后台

若有侵权,请后台留言,管理员即时删侵!

更多阅读

EEG公开数据集汇总

学习神经科学,发展人工智能

探索双耳助听器中的人体通信

手部的运动区域也与整个身体相连

他们想把广告植入你的梦境

EEG伪影详解和过滤工具的汇总(二)

EEG伪影类型详解和过滤工具的汇总(一)

MNE中数据结构Epoch及其创建方法

投稿通道

如何让你的工作让更多人知晓和受益?

脑机接口社区就是这样一个连接学界、

企业界和爱好者的平台渠道。

社区鼓励高校实验室、企业或个人在我们平台上分享优质内容。

稿件要求

稿件系个人原创作品,若已在其他平台发表,请明确标注。

稿件一经录取,便提供稿费!

投稿通道

微信扫码,备注:投稿+姓名+单位

微信交流群,请扫码上方微信

(备注:姓名+单位+专业/领域行业)

QQ交流群:913607986

你的每一次在看,我都很在意!

脑电分析系列[MNE-Python-19]| 可视化Evoked数据相关推荐

  1. 脑电分析系列[MNE-Python-5]| Python机器学习算法随机森林判断睡眠类型

    案例介绍 本案例通过对多导睡眠图(Polysomnography,PSG)数据进行睡眠阶段的分类来判断睡眠类型. 训练:对Alice的睡眠数据进行训练: 测试:利用训练结果对Bob的睡眠数据进行测试, ...

  2. 脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

    今天主要介绍一下MNE中如何用协方差矩阵来处理脑电数据的. MNE中的许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计. 在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪 ...

  3. 脑电分析系列[MNE-Python-6]| Python读取.set文件和.locs文件

    本案例主要介绍如何读取eeglab示例文件.set以及.locs文件. .set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等. .locs文件记录的是电极位置信息. 知识点 ...

  4. 脑电分析系列[MNE-Python-2]| MNE中数据结构Raw及其用法简介(更新)

    Raw对象主要用来存储连续型数据,核心数据为n_channels和times,也包含Info对象. 下面可以通过几个案例来说明Raw对象和相关用法. Raw结构查看: # 引入python库 impo ...

  5. 脑电分析系列 | MNE-Python汇总

    1 脑电分析系列MNE-Python教程 [MNE-1]| MNE-Python详细安装与使用(更新) [MNE-2]| MNE中数据结构Raw及其用法简介(更新) [MNE-3]| MNE中数据结构 ...

  6. 脑电分析系列[MNE-Python-11]| 信号空间投影SSP 应用

    信号空间投影(SSP) 在前面一篇分享(脑电分析系列[MNE-Python-10]| 信号空间投影SSP数学原理)中提到,投影矩阵将根据您试图投射出的噪声种类而变化.信号空间投影(SSP)是一种通过比 ...

  7. 脑电分析工具MNE教程

    资料来源:脑电分析系列 | MNE-Python汇总 目录 1.安装与使用 2.数据结构Raw 3.Epoch 4.Evoked 5.案例 (1)导入工具库 (2)加载数据 (3)测试数据 (4)提取 ...

  8. 脑电分析系列 | eeglab汇总

    1 脑电分析系列eeglab教程 eeglab教程系列(1)-安装教程 eeglab教程系列(2)-加载.显示数据 eeglab教程系列(3)-绘制脑电头皮图 eeglab教程系列(4)-绘制通道光谱 ...

  9. 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法

    Epoch概念简介 相信很多人第一次接触epoch时,都会有疑惑,这个词在EEG中到底指的是什么. 下面将详细说明一下. 从连续的脑电图信号中提取一些特定时间窗口的信号,这些时间窗口可以称作为epoc ...

最新文章

  1. java子类和父类构造函数_java 子类和父类构造函数关系
  2. IPv6网络协议的安全疑云
  3. java 第三方序列化,11.既然有第三方的序列化方式,说明java官方提供的序列化方式应该有一些很明显或者很致命的缺点……...
  4. 电脑安装系统多少钱_电脑系统安装教学
  5. spring_01概念及案例
  6. 程序员的毕业设计,时隔一年,仍感觉头秃
  7. python之路-08-集合
  8. Linux中的configure、pkg-config、pkg_config_path
  9. 精品软件 推荐 DiskGenius专业版 磁盘管理软件 4.7 注册版本分享
  10. corosynclib+drbd+mysql组合应用
  11. Linux中安装WPS
  12. Thinkphp精仿韩都衣舍商城网站源码
  13. 通达信资金净流入公式_净流入副图源码指标 通达信 贴图
  14. 轻松解决ArcGIS Pro 安装中文汉化包或离线帮助文档时报错“指定路径为空”
  15. 手把手教你破解无线路由器密码
  16. Updating HP ESXi Hosts with VUM
  17. mybatis三表联合查询
  18. android 打开默认浏览器,Android调用系统自带浏览器打开网页的实现方法
  19. 我花10个小时,写出了小白也能看懂的阿里数据中台分析
  20. android7 es文件,让你更了解你的手机 – ES 文件管理器 #Android

热门文章

  1. 解决启动mysql.exe闪退问题
  2. 如何使用YUM列出包的内容?
  3. Java 8按属性区分
  4. 测试向量是否包含给定元素
  5. 在Django中,“子弹”是什么?
  6. Python的隐藏功能
  7. Android SDK版本号 与 API Level 对应关系
  8. Python-str函数
  9. 织梦dedecms移动版设置二级域名的方法 织梦如何设置m.开头的域名
  10. android studio修改项目包名