点击上面"脑机接口社区"关注我们
更多技术干货第一时间送达
大家好!
今天Rose小哥结合案例代码给大家介绍一下MNE是如何从Raw对象中解析event的。
这篇内容主要描述了如何从原始记录中读取实验事件,以及如何在MNE-Python中事件的两种不同表示形式(事件数组和注释对象)之间进行转换。
在入门教程中,我们看到了从"STIM"通道读取实验事件的示例;在这里,我们将更广泛地讨论事件和注释,提供有关从STIM通道读取的更详细的信息,并给出一个读取事件的示例。在教程"使用事件和注释连续数据"讨论了如何分别绘制、合并、加载、保存和导出事件和注释,后面的教程还介绍了Raw对象的交互式注释。
案例中为了节省内存,我对Raw对象进行了裁剪,只要60秒:
首先导入工具包
import osimport numpy as npimport mneimport matplotlib.pyplot as plt
加载数据
sample_data_folder = mne.datasets.sample.data_path()sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample','sample_audvis_raw.fif')raw = mne.io.read_raw_fif(sample_data_raw_file)
对Raw对象数据进行裁剪,获取60秒数据
raw.crop(tmax=60).load_data()
事件(Events)和注释(Annotations)数据结构
一般来说,事件和注释数据结构都具有相同的目的:它们提供了EEG/MEG记录期间的时间与事件发生时的描述之间的映。换句话说,他们把时间和内容联系起来。主要区别如下:
单位:事件(Events)这种数据结构以样本为单位表示时间,而注释(Annotations)数据结构以秒为单位表示时间。
描述上的限制:事件数据结构将"what"表示为整数"Event ID"代码,而注释数据结构将what表示为字符串。
持续时间的编码方式:事件数组的事件没有持续时间(尽管可以在事件数组中用成对的开始/偏移事件来表示持续时间),而Annotations对象的每个元素都必须包含持续时间(如果需要一个瞬时事件,则持续时间可以是零)。
内部表示:事件存储为普通的N