本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:941473018
在本章中,我们将继续对ICA过滤后的P300数据集进行预处理。
说明,这部分的教程是基于前面几次教程的基础上进行的。所以要进行ICA预处理进行伪影去除,需要:
先导入数据《letswave7中文教程1:软件安装与脑电数据导入》;
然后进行通道分配《letswave7中文教程2:脑电数据预处理-通道位置分配》;
之后进行ICA伪影去除《letswave7中文教程3:脑电数据预处理-ICA去除伪影》,然后再开始本节的教程。
在管理器模块数据列表中选择数据集“sp_filter ica chan_interp butt sel_chan sub093”,在菜单中点击Process->Epochsegmentation-> Segment relative to events (one file per event code)。
在Batch模块中,选择事件代码S 9和S 10,并将epoch的开始时间和持续时间设置为-1和3。
点击Batch模块底部的Run按钮,可能会执行一会。执行框如下。
执行完之后,管理器模块的数据列表中会出现两个新的数据集,分别名为“ep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“ep_S 10 sp_filter ica chan_interpbutt sel_chan sub093”。
在菜单中,有两项用于分段,分别是Segment relative to events and Segment relative to events (one fileper event code)。它们有相似的功能,但是输出是不同的。如果选择了多个事件代码,则Segment relative to events将具有不同的事件代码的所有epoch分割到一个数据集中。但是,对于Segment relative to events (one file per event code),将根据不同的事件代码生成单独的数据集。例如,在P300数据集的情况下,目标和非目标事件被标记为S 9和S 10。因此,通过Segment relative to events (one file per event code),已经生成了两个数据集。
在剔除伪影之前,有必要对所有的epochs进行观察。
选择数据集“ep_S 9sp_filter ica chan_interp butt sel_chan sub093”和“ep_S 10 sp_filter ica chan_interp butt sel_chan sub093”,并在右击菜单中选择view。
在波形的multiviewer中,我们可以看到“ep_S 9 sp_filter icachan_interp butt sel_chan sub093”的波形图.
在界面左上角Datasets中可以选择查看不同数据集。也可以在左侧选择不同的Epoch和Channels查看。
将epoch设置为叠加波,并选择所有的epoch。我们选择通道Pz进行观察,因为它是P300分析中最有趣的通道。当然,我们也应该看看其他通道的情况。通过将y轴从-100设置为100,Pz通道上的所有epoch看起来都很好。两个数据集都没有明显的伪迹。
因此,没有必要在该数据集上执行伪影移除。我们将在这个P300数据集的预处理过程中省略这一步。这里为了给大家展示伪影的操作,我们仍然进行了伪影剔除的操作过程。在Letswave7中,我们提供了两种剔除伪影的方法。
首先,我们可以手动来移除带有伪影的epoch。对于该方法,选择“ep_S9 sp_filter ica chan_interp butt sel_chan sub093”和“ep_S 10 sp_filter ica chan_interp butt sel_chan sub093”数据集,点击菜单中的Edit->Arrangesignals->Rearrange or delete epochs, channels, indexes。
在Batch模块中,将选择项设置为“Epoch”,并将希望保留的Epoch放入右列。点击Batch模块底部Run按钮,完成伪影剔除工作。
两个名为“sel_epochep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“sel_epoch ep_S 10 sp_filter icachan_interp butt sel_chan sub093”的新数据集将出现在管理器模块的数据列表中。
第二种方法是利用一些标准来抑制伪迹,例如某些通道上特定间隔内的EEG信号的值超过某个阈值。对于该方法,选择数据集“ep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“ep_S 10 sp_filter ica chan_interpbutt sel_chan sub093”,
在菜单中点击Process->Artefact rejection and suppression->Reject epochs(amplitude criterion)。
在Batch处理模块中,选择Select channels 复选框,然后选择通道Pz。如果复选框没有被选中,那么该函数将在所有通道上工作。在右侧选择复选框x轴限制,并将相应的间隔设置为0到2秒。如果没有选中复选框,则该条件将对x轴的所有范围起作用。因为y轴上有数据,而z轴是单轴的,所以我们不需要检查这两个轴。
点击Batch模块底部Run按钮,完成伪影剔除工作。在管理器模块的数据列表中将出现两个新的数据集,分别名为“ar-amp ep_9 sp_filter ica chan_interp butt sel_chan sub093”和“ar-amp ep_10 sp_filter icachan_interp butt sel_chan sub093”。事实上,由于这里的P300数据没有伪影要剔除,所以没有epochs被剔除,这两个新的数据集与前一个完全相同。
在P300的研究中,通常选择双侧乳突区域的平均值作为参考。因此,我们将重新参考TP9和TP10的平均值。
选择数据集“ep_S 9sp_filter ica chan_interp butt sel_chan sub093”和“ep_S 10 sp_filter ica chan_interp butt sel_chan sub093”,
然后在菜单中单击Process->Rereferencesignals->Rereference。
在Batch模块中,在左侧列表框中选择TP9和TP10作为新参考,在右边的列表框(Apply reference for)中选择要应用参考的所有通道。
点击Batch模块底部Run按钮,完成伪影剔除。两个名为“reref ep_S 9sp_filter ica chan_interp butt sel_chan sub093”和“reref ep_S 10 sp_filter ica chan_interp butt sel_chan sub093”的新数据集将出现在管理器模块的数据列表中。
在这里,我们选择TP9和TP10作为两个通道的平均值作为新的参考。对于普通的平均值参考,我们可以在左侧的列表框中选择所有的通道,然后将所有通道的平均值用作新的参考。
在分割中,我们将epoch的起始时间和持续时间设置为-1 s和3 s,这意味着epoch将从-1到2s开始。因此,我们将基线设置为-1 s到0 s来进行基线校正。
选择数据集“rerefep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“reref ep_S 10 sp_filter icachan_interp butt sel_chan sub093”,在菜单中点击Process->Baseline operation->Baseline correction。
在Batch模块中保持默认设置,点击Batch模块底部的Run按钮,完成伪影剔除。
两个新的数据集“blreref ep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“bl reref ep_S 10 sp_filter icachan_interp butt sel_chan sub093”将出现在管理器模块的数据列表中。
经过十步预处理后,我们可以简单地对epoch进行平均以进行时域分析。选择数据集“bl reref ep_S 9 sp_filter ica chan_interp butt sel_chan sub093”和“bl reref ep_S 10 sp_filter icachan_interp butt sel_chan sub093”,然后在菜单中单击Process->Average->Compute averag, std, median across epochs。
在Batch模块中保持默认设置,点击Batch模块底部的Run按钮进行平均。
两个新的数据集的名称“avgbl reref ep_9 sp_filter ica chan_interp butt sel_chan sub093”和“avg bl reref ep_10 sp_filter icachan_interp butt sel_chan sub093”将出现在管理器模块的数据列表中。
查看结果
选择数据集“avg blreref ep_9 sp_filter ica chan_interp butt sel_chan sub093”和“avg bl reref ep_10 sp_filter icachan_interp butt sel_chan sub093”。单击右键菜单中的”View”,我们可以在multiviewer中看到波形的时域结果。
下面我们选择两个数据集并选择通道Pz,我们可以在Pz上看到P300的结果。打开工具栏中的地形,将光标设置为0.35,可以观察P300的地形。由于它是单受试者的结果,ERP仍然是有噪声。[光标位置和地形图位置在工具栏,有箭头指示]
也可以换个头型
在这一部分中,我们一步一步地演示了预处理和时域分析。对于每个步骤,都要在文件名中添加前缀,如butt、ica和reref。因此,从数据集的名称中,我们对处理步骤能够有大致的了解。
letswave7以及rawdata1.zip 数据资源下载
在公众号后台回复"letswave"(建议复制),获取数据资源。
本文章由脑机学习者Rose笔记分享,QQ交流群:941473018
更多分享,请关注公众号