别人的代码 erp_ERP分析中如何自动删除休息阶段的脑电数据?

本文介绍了一种使用Matlab中的EEGlab和ERPlab工具自动删除脑电数据中休息阶段数据的方法,通过代码实现了手动操作的自动化,提高了EEG数据分析效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

18819159cce2e16a2ac4e0c435e88ffe.gif06ed70a0c7b37aea2be4cbde20b39523.png

文章转载自公众号:流浪心球

作者:念靖晴

为了保证EEG研究中采集到的脑电数据的质量。因此在整个实验任务进行中,研究者往往会设置休息阶段,休息阶段的时长设置一般有以下几种形式:
  1. 被试自主决定

  2. 强制休息一定时长和被试自主决定

  3. 研究者决定

处于休息阶段的被试,可能会有一些轻微的肢体运动等,进而产生更大的脑电伪迹。从而干扰或影响对后续ERP数据分析中正常任务进行时脑电伪迹的识别判断和拒绝。因此,在进行ERP数据分析前有必要删除休息阶段的脑电数据。 以往的研究者主要依靠手动的方法去删除相应的数据,这种方法往往需要花费大量的时间和精力,有时候一不留神还可能发生遗漏、错删等现象。 我作为一个比较“懒”的人,一直试图摆脱这个痛苦的过程,从知道每次ERP数据分析开始前需要手动删除休息阶段数据开始,我就在寻找一个便捷的方式去计算机去帮我实现这个痛苦的过程,众里寻他千百度,蓦然回首它在别人的代码中。 废话到此结束,切入正题,完整代码如下(此代码仅适用于Matlab):
% Transform "boundary" to "-99"EEG = pop_creabasiceventlist( EEG , 'AlphanumericCleaning', 'on', 'BoundaryNumeric', { -99 }, 'BoundaryString',{ 'boundary' } );% Remove segments of EEG during the break periods in between trial blocks (defined as 2 seconds or longer in between successive stimulus event codes)EEG = pop_erplabDeleteTimeSegments( EEG , 'displayEEG', 0, 'endEventcodeBufferMS',  2000, 'ignoreUseEventcodes', [111 112 121 122 211 212 221 222], 'ignoreUseType', 'Use', 'startEventcodeBufferMS',  2000, 'timeThresholdMS',  2000 );
代码解读: 由于代码仅适用于数值,但由于脑电采集设备的第一个Marker或Evencodes为 boundary ,为导致后面的代码没法正常运行,因此需要将boundary 转化为一个相应的数值,如:-99。即代码:
EEG  = pop_creabasiceventlist( EEG , 'AlphanumericCleaning', 'on', 'BoundaryNumeric', { -99 }, 'BoundaryString',{ 'boundary' } );
在进行对应转换后,执行如下的代码:
EEG  = pop_erplabDeleteTimeSegments( EEG , 'displayEEG', 0, 'endEventcodeBufferMS',  2000, 'ignoreUseEventcodes', [111 112 121 122 211 212 221 222], 'ignoreUseType', 'Use', 'startEventcodeBufferMS',  2000, 'timeThresholdMS',  2000 );
在此代码中,有以下几个内容需要进行修改: 第一处需要修改的地方为Maker 或 Evencodes,代码中的示例为:[111 112 121 122 211 212 221 222],你需要将你研究中使用的所有的Maker 或 Evencodes都需要填入,包含事件Marker 和反应Marker。 第二处需要修改的地方为:Maker 或 Evencodes 开始前和结束后的时长,这个需要根据你自己单个试次的时长来自行确定。示例中的时长为 2s ( 2000 ms)。 温馨提示:运行此代码,需要提前在Matlab 中加载EEGlab 和 ERPlab。 实际使用示例: 代码使用前: e772dc16417d91b90cd3687701db97f4.png 使用代码:
    EEG  = pop_creabasiceventlist( EEG , 'AlphanumericCleaning', 'on', 'BoundaryNumeric', { -99 }, 'BoundaryString',{ 'boundary' } );    %Remove segments of EEG during the break periods in between trial blocks (defined as 2 seconds or longer in between successive stimulus event codes)    EEG  = pop_erplabDeleteTimeSegments( EEG , 'displayEEG', 0, 'endEventcodeBufferMS', 3000, 'ignoreUseEventcodes',[11 21 22 31 41 43 51 53 61 63 71 73 77 88 99], 'ignoreUseType', 'Use', 'startEventcodeBufferMS',  3000, 'timeThresholdMS', 3000);
使用代码后: 56fc9219fb795c3d9748834291b5d09c.png 排版:华华 作者:念靖晴 校对:喵君姐姐 文章转载自公众号:流浪心球 7cb5e603b47059fee81a9e68d90ea821.png 17f69e79f8b9ead746ce88823123a01c.gif

干货 | 脑电-超扫描数据分析

帕金森病患者脑电时空微状态分析

如何使用Cartool工具包分析EEG源成像?

Nature neuroscience:提高EEG/MEG研究可重复性

因为微信更改了推送规则,如果不想错过我们的精彩内容,请点『在看』以及星标⭐我们呦!

ee49a18389cfa0506490c46191c403f2.png

1bb7c13eae748afd29d1bfd591667820.png

a9478f171b2686485bc81d3f23a32bb7.png

信号(Electroencephalograph,EEG)是神经细胞生理活动在大皮层或头皮表面的总体反映,其包含了大量的生理与病理信息,并可以用许多特征量来描述其特征信号。P300位即受者辨认“新异”(oddball)刺激序列中低概率的“靶刺激”时,在头皮记录到的潜伏期约为300ms的最大晚期正性波,是事件相关位(Event-Related Potential,ERP)中应用最广、与认知功能关系最为密切的成分。机接口(BCI)是一种不依赖于外周神经和肌肉等常规输出通道的信息交流系统。P300是神经系统接受特定模式下的视觉刺激所产生的特定活动,适合于机接口应用。 本文针对P300信号的特点,即诱发位中的P300成分通常是在新异刺激模型中对不同刺激进行辨别、分类、判断时产生的,所以采用视觉“Oddball”范式诱发事件相关位,然后采用EGI 64导系统采集原始信号,再用Net-Station软件对原始数据进行预处理,预处理步骤包括滤波(Filter)、数据分段(Segmentation)、人工伪迹检测(Artifact Detection)、坏通道替换(Bad Channel Replacement)、叠加平均(Averaging)、参考点转换(Average Referencing)、基线校正(Baseline Correction)等,最后采用功率谱分析与相关系数矩阵相结合的方法选取恰当的极,确定少量活跃极分布在头顶位置,活跃极主要集中在后区域,为机接口应用产品的开发奠定理论基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值