创建一个storageevent事件_MNE-从头创建Epoch对象

原创:Rose小哥 | 本文章来源于"脑机接口社区"

Python-EEG工具库MNE中文教程(2)-MNE中数据结构Epoch及其创建方法​mp.weixin.qq.com
bc97fb2b050a76b6543821748a2a8bd0.png

在脑机接口社区:MNE中数据结构Epoch及其创建方法 介绍了MNE数据结构Epoch以及一种创建方法,这里用另一个案例在此介绍一下创建方法。

在实际过程中,有时需要从头构建数据来创建Epochs对象,
方式:利用mne.EpochsArray创建Epochs对象,创建时直接构建numpy数组即可,数组的形状必须是(n_epochs, n_chans, n_times)

数据对应的单位:
V: eeg, eog, seeg, emg, ecg, bio, ecog

T: mag

T/m: grad

M: hbo, hbr

Am: dipole

AU: misc

import mne
import numpy as np
import matplotlib.pyplot as plt

第一步:构建数据

构建一个大小为10x5x200的三维数组,数组中数据是随机数;

第一维数据表示:10 epochs

第二维数据表示:5 channels

第三维数据表示:2 seconds per epoch

# 采样频率
sfreq = 100
data = np.random.randn(10, 5, sfreq * 2)

# 创建一个info结构
info = mne.create_info(
    ch_names=['MEG1', 'MEG2', 'EEG1', 'EEG2', 'EOG'],
    ch_types=['grad', 'grad', 'eeg', 'eeg', 'eog'],
    sfreq=sfreq
)

第二步:构建events

在创建Epochs对象时,必须提供一个"events"数组,

事件(event)描述的是某一种波形(症状)的起始点,其为一个三元组,形状为(n_events,3):
第一列元素以整数来描述的事件起始采样点;
第二列元素对应的是当前事件来源的刺激通道(stimulus channel)的先前值(previous value),该值大多数情况是0;
第三列元素表示的是该event的id。

events = np.array([
    [0, 0, 1],
    [1, 0, 2],
    [2, 0, 1],
    [3, 0, 2],
    [4, 0, 1],
    [5, 0, 2],
    [6, 0, 1],
    [7, 0, 2],
    [8, 0, 1],
    [9, 0, 2],
])

设置事件的id

如果是dict,则以后可以使用这些键访问关联的事件。示例:dict(听觉=1,视觉=3)

如果是int,将创建一个id为string的dict。

如果是列表,则使用列表中指定ID的所有事件。

如果没有,则所有事件都将与一起使用,并使用与事件id整数对应的字符串整数名称创建dict。

# 创建event id,受试者或者微笑或者皱眉
event_id = dict(smiling=1, frowning=2)
"""
tmin:event开始前的时间,如果未指定,则默认为0
"""
# 设置事件开始前时间为-0.1s
tmin = -0.1

第三步:创建epochs对象

"""
利用mne.EpochsArray创建epochs对象
"""
custom_epochs = mne.EpochsArray(data, info, events, tmin, event_id)
print(custom_epochs)
# 绘制
_ = custom_epochs['smiling'].average().plot(time_unit='s')

88ac99ccc72e95fd2ba4796a54336e90.png

8c8b8c6e3d3bfdc308cfdc6871f086ed.png

文章来源于公众号"脑机接口社区"

Python-EEG工具库MNE中文教程(2)-MNE中数据结构Epoch及其创建方法

d9f7adaa38abf15275273d59413faa71.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值