关注“心仪脑”查看更多脑科学知识的分
关键词:太空,脑电实验,文献解读
很多小伙伴在做完脑电实验之后,对如何进行数据处理很是发愁。预处理的步骤还好说,在EEGLAB里面“点点点”就能完成,但是后续的叠加平均等步骤在EEGLAB里面需要通过脚本来实现,得花费大量的时间去学习。本教程将介绍一种ERPs数据分析的方法,该方法无需代码,适用于数据量较小的情况,着急处理数据但来不及学习Matlab脚本编写的小伙伴们也可以参考(本教程基于Windows 11系统,Matlab2020a,EEGLAB v2021.1)。
01导入原始数据(Import data)
File---Import data---Using EEGLAB functions and plugins
选择采集数据时对应的厂商以及数据导出时的格式。如果在Using EEGLAB functions plugins里面没有找到对应的数据格式或者厂商,可以在红色框框圈出来的位置(Manage EEGLAB extensions)里面找一下对应的扩展包(比如这里我们以ANT的设备为例,就要选择ANTeepimport v1.13这个扩展包)。
有时候我们会碰到数据导入失败的情况,这时候可以:
①先检查一下自己的数据存储路径里面有没有中文字符,如果有的话就会报错;
小贴士: 无论是数据命名还是数据的存储路径,都不要出现中文,防止一些无法识别或者无法兼容的问题出现,避免不了的话可以用拼音来代替
②如果检查过路径中不存在中文字符且数据命名也不是中文的话,可以查看一下EEGLAB里面的数据导入扩展包有没有更新到最新版本,如果没有的话同样可以在Manage EEGLAB extensions里面进行更新。
导入成功后可以在EEGLAB的这个GUI界面看到所导入数据的一些基本信息,这里简单介绍一下每一行所代表的含义:
Filename这里显示none,说明导入原始.cnt格式的数据后还没有进行保存,EEGLAB里面进行处理后存储的数据均为.set格式;
Channels per frame代表着采集时所用电极帽的通道数量,这里为32导;
Frames per epoch代表每一个分段的采样点个数,因为此时还没有分段,所以这里显示的采样点总个数,由采样率与采样时间相乘所得;
Epochs表示分段数;
Events表示打上的Mark总数;
Sampling rate(Hz)表示采样率;
Epoch start(sec)和Epoch end(sec)表示分段的开始时间与结束时间;
Reference表示重参考所选择的电极点,这里显示unknown,表示还没有进行重参考;
Channel locations表示电极定位,目的在于让EEGLAB知道每一个通道对应的位置;
ICA weights表示ICA权重,EEGLAB主要采用独立成分分析的算法校正眼电伪迹;
Dataset size(Mb)表示数据集大小。
02电极定位(channel locations)
Edit---Channel locations
在做电极定位这一步之前,可以看到电极点的坐标都显示为0,而且画出的2-D图里面所有的电极点都集中在中心的位置,说明电极还没有定位完成。所以需要点击Look up locs查找电极坐标。
这里我们选择的是标准10-5的电极坐标定位,点击OK之后可以发现,每一个通道的坐标数值都显示了出来,而且不同的通道位置也与头模对应上了。这样,电极定位这一步就完成了。
03删除无用通道
Edit---Select data
在Channel range这一行选择后续数据分析中不需要的通道,注意一定要勾选上on-> remove these的小方框小贴士:如果接下来的重参考采用全脑平均的方式,这里可以选择删除掉双侧乳突M1、M2两个通道;如果后续重参考要以双侧乳突为参考,在这里要保留这两个通道。
04重参考
Tools---Re-reference the data
在采集过程中,ANT设备所设置的在线参考点为CPz。我们都知道,脑电记录的都是相对电压值,所以说参考点的电压值越接近于零电势,所采集到的每一个通道的脑电信号就越接近真实电压值。
CPz电极点明显距离零电势很远,由于大脑中容积传导效应的存在,导致在采集过程中邻近CPz的电极点变化很小,因此需要进行重参考这一步,重新选择一个接近于零电势的电极点作为参考点。
做完重参考之后可以看到,Channels per frame变成了30,而Reference的地方变成了M1、M2,接下来具体看一下脑电信号的变化。
比较明显的是重参考之前CP1、CP2以及Pz电极点由于距离在线参考点CPz很近,脑电信号变化很小,接近于一条直线;做完重参考之后,可以看到这些电极点的电压值有了明显的变化,而且所有通道都有相似的变化趋势。
05滤波
Tools---Filter the data---Basic FIR filter(new,default)
滤波这一过程是将所选频段范围之外的频率进行衰减,以达到去除脑电信号之外伪迹干扰的目的。具体所选的频段可以参考以往同领域的研究。
将滤波后的脑电信号与重参考后的脑电信号进行对比,明显的变化就是波形图的高频“毛刺”减少,信号更加平滑了。
06分段
分段这里采用ERPLAB小插件创建了一个事件列表,后续依据这个事件列表进行分段处理。
值得注意的是,EEGLAB原始工具包中是不含有ERPLAB这个小插件的,同理可以在manage EEGLAB extensions里面找到这个小插件,直接下载就可以了。
Step1:创建事件列表(eventlist)
这里点击Advanced进入到创建的界面,Event Code的地方填上实验设置的Mark数,Bin number的地方按照1,2,3的数字顺序依次往下排列,填好之后点击Update Line就设置好一个Bin。
Step2:依据Bin分段
点击Extract bin-based epochs按照刚刚设置的Bin进行分段,随后跳出来的弹窗可以选择分段的时间窗。一般来说大部分ERP实验所选的时间窗为-200至800毫秒。
分段之后最开始的界面出现了些许的变化:Epochs的地方变成了分段的数量,Epoch start与Epoch end变成了分段的开始与结束的时间,即-0.2至0.8秒。这里之所以显示0.798,是因为采样率为500Hz(即1秒钟有500个采样点),那么每一个采样点的时间就是0.002秒,因此到最后一个采样点的时间刚好是0.798秒。这时我们发现数据量(Dataset size)小了很多,这是因为分段之后只保留了含有Mark的数据段。
07Run ICA
Tools---Decompose data by ICA
跑ICA会花费一些时间,这个过程就让电脑自己运行就好,运行速度取决于电脑的配置以及数据量的大小。
跑完ICA之后在Classify components using ICLabel中找到Label components,对独立成分进行提取。
这里出现的30个头图就是通过独立成分分析(ICA)分解出来的30个独立成分。EEGLAB会通过一些内置的算法对ICA分解出来的独立成分进行分类,比如分解出来的独立成分1属于眼电的可能性为97.1%。因为这一步的目的主要是校正眼电伪迹,因此选出来的大概率为眼电成分,基于自己以往的判断经验进行去除就可以。
判断好眼电伪迹的成分(这个例子中为1和11)之后,通过Remove components from data去除这两个成分,对眼电伪迹进行校正。
点击OK之后,在弹出的Confirmation窗口选择Plot single trial,可以看到去除成分之前与之后的信号对比。红色的是去除成分之后的信号,可以看到比较明显的向上突出的眨眼伪迹基本被校正过来了。这说明我们选对了成分,点击Accept就可以进行保存。
08叠加平均
ERPLAB---Compute averaged ERPs
Compute averaged ERPs直接保持默认点击RUN运行就可以了,计算完之后在ERPsets里面多出来一个ERP的数据集,而且Plot ERP的选项不再是灰色的了,表示可以基于这个数据集进行接下来的画图操作。
点击PLOT之后就画出了所有通道的ERP波形图,这个例子中偏差刺激所诱发出的P300波形还是比较显著的。
接下来在ERPLAB中找到ERP Measurement Tool可以提取具体的ERP数据,用于后续的统计分析。
总结
这里仅总结了EEGLAB的部分功能,在实际数据处理过程中还可能会遇到各种各样的问题。另外,当我们的数据量较大时,这样一步一步点还是比较麻烦的,所以说有机会一定要掌握一些简单的语句和代码,至少看到别人的代码知道如何去更改以供自己使用。
祝大家实验进展顺利,该显著的结果都显著。
全文完结,整理不易,看不完记得收藏,最后希望点赞支持一下!
了解更多,请关注“心仪脑”公众号!