查看原文
其他

PCA | EP toolkit简易使用指南

喵君姐姐 行上行下 2022-04-26


Hello,

这里是行上行下,我是喵君姐姐~


在与审稿人斗智斗勇的过程当中,我们会遇到各种各样的问题。


例如,熟悉反馈相关负波(feedback-related negativity,FRN)的小伙伴可能知道:在脑电数据分析的过程当中,存在FRN与P300时间窗相互重叠的问题。



可能,有的审稿人会抓住不放,让你做主成分分析Principal Components Analysis,PCA),这是一种基于数据统计特征的线性分解方法用不相关的主成分更简洁的表征数据特征。



那么我们究竟应该如何做PCA呢?


今天,有幸邀请到吴婷婷老师对使用ERP PCA toolkit工具包进行脑电数据PCA的讲解。

 


ERP PCA toolkit是Matlab下的一个toolbox,主要用于实现ERP数据的PCA分析。该toolbox由Center for Advanced Study of Language,University ofMaryland的Joseph Dien开发的。

该同志年逾不惑,将毕生精力用于ERP数据的PCA分析[1]。该toolbox是他集成了自己所有相关算法编成的一个傻瓜软件,意在让不明白PCA原理的人也能在半个小时内完成PCA并输出最后结果[2]。
 
该toolbox包含了预处理(去眼电、眼跳、动作电位、漂移、坏电极等)、平均、后处理(转参考)、呈现波形与地形图、PCA、峰值/平均波幅输出、robust ANOVA等几个主要功能模块。理论上可以完成ERP数据的所有分析步骤。而且,各个处理步骤充分地考虑的计算的robust,可以尽量得到最稳定、最可靠的结果。
 
但是,该软件是基于EGI的数据(盐水帽)在Mac电脑上开发的,对其他类型的EEG数据支持并不好。所以,目前对于我们Neuroscan用户,其中的预处理、平均等功能都无法使用,PCA的过程中也存在很多陷阱

因此,吴婷婷老师结合Joseph Dien同志编写的95页tutorial和她的使用经验写了这份针对XP系统Neuroscan用户的简明指南,希望能对大家有所帮助。


以下内容稍多,但是满满的干货,还请耐心阅读哟。也可直接在公众号后台回复关键词“ERP PCA工具包”,获得ERP PCA工具包相关资料的整理,包含工具包软件、三种类型的电极点坐标、中英文使用教程、相关参考文献等。



 
首先,你必须在电脑上安装Matlab。Dien同志建议,在XP 系统上,Matlab最好安装7.3以上的版本。我用的是R2009a,基本没有什么问题。

作者建议内存最好2GB或更高,这个据我理解是预处理时对内存需要较高,而scan用户能用到的PCA功能并不要求太高配置。我的电脑是2GB内存,所有数据总共57M左右,大概在20分钟内能全部处理完。其他低内存用户可以自行挑战一下运行速度。
 
然后,去下载3个toolbox:

EEGLAB  http://sccn.ucsd.edu/eeglab/index.html


EP toolkit  http://sourceforge.net/projects/erppcatoolkit/


FieldTrip http://www.ru.nl/fcdonders/fieldtrip/


后面两个都选择最新版本的下载,但EEGLAB不要选择过高版本,否则里面ICA有关的某个函数调用时会报错。作者建议使用eeglab8_0_3_3b,而我用eeglab9_0_3_4b也行,但eeglab10.2.2.4b就不行。下载完毕后将这三个toolbox依次set path,然后save。

注意:EEGLAB中的external文件夹下的fieldtrip-partial包含部分fieldtrip功能,最好将这个文件夹remove后,再add你自己下载的FieldTrip最新版本。

安装完毕后,在Matlab主界面下键入ep并回车,在弹出窗口中点击Agree,即可进入EP Toolkit的界面。

此外,这个配置也可:Win7系统,Matlab 2016a / eeglab13.5.4b / Frildtrip20190627 / EP 最新下载版本。
 


1. Neuroscan数据预处理



EP toolkit只能读取.avg格式的Neuroscan文件,所以叠加平均之前的所有步骤都要用Neuroscan进行。详细步骤同一般ERP数据处理,在此不再详述。在叠加平均之前,坏电极信息一定要标注清楚。

注意:VEOG、HEOG、和自定义的参考电极(如T8)也要标坏。因为这些电极是不需要进入PCA的。

每个被试间坏电极信息要一致,即某个电极要么就所有人都标坏,要么都不标。因为EP toolkit本身是可以进行坏电极自动检测的,但这个功能无法对Neuroscan文件进行,而且它还无法正确读取 Neuroscan文件的坏电极信息,故只有在输入前把所有坏电极数据都去掉。

文件名中一定要包括被试编号和条件名。在进行各条件的叠加平均时,文件命名要规律,如“Sub01-win.avg”, “Sub12-los.avg”等。各个文件间被试编号的字数和位置要完全一样(例如以上两个文件都在4:5个字符),条件名也是如此(例如以上两个文件都在7:9个字符)。

叠加平均结束后,要将.avg文件转换成.txt文件,目的是将坏电极数据去掉。该功能通过File->Save as实现,保存类型选.dat,Method的选择。当然,面对大批量文件我们会选用batch来实现这一功能。

批处理语句示例:


EXPORTAVG_EX2"$path\\DAT2\\Sub$n-21.txt" POINTS F F F F F F F F F F F { ALL },其中“$path\\DAT2\\Sub$n-21.txt”部分替换成你想要的路径与文件名。


同理,在BP数据当中,也可以使Analyzer导出每个被试每种条件平均后的数据为.txt文件,进行后期的分析。


2. 电极坐标文件建立

波形和地形图的呈现需要正确的坐标信息。EP toolkit里的electrodes 文件夹下有一些电极帽的坐标文件(.ced)。但是,Neuroscan用户最好根据自己的帽子自行制作符合当前数据的坐标文件,在保证坐标正确的前提下去掉眼电、参考与坏电极。

首先,随便打开当前实验的一个.avg文件。点击Edit->Channel Layout->ExportPosition。将当前电极设置存成.asc文件。

然后,在Matlab主界面下键入“pop_chanedit([]);”,就会出现如图2的界面。这是EEGLAB中读取电极坐标的功能。点击“Read locations”,选择刚才制作的那个.asc文件,在弹出窗口中选择“Neuroscan polar .ascfile”。读取成功后利用“Delete Chan”将眼电、参考、坏电极删掉。然后点击“Save (as .ced)”,存放到EP toolkit里的electrodes 文件夹下。


接着,用Excel打开你刚才生成的文件,并打开EP toolkit里的electrodes 文件夹下的“NeuroscanQuikCap2-67(est).ced”,将你生成的文件整成跟范例文件相同的格式。缺失的信息从pop_chanedit的界面中自行复制粘贴。这样一个适合当前数据的电极坐标文件就做好了。

此外,在公众号后台回复“ERP PCA工具包”,即可获得根据自己的帽子做的一个包括所有电极的.ced文件,大家可以在此基础上删除某些电极以得到符合自己要求的数据。其中包括Neuroscan/ANT/BP三种类型的电极点帽子哟~



3. 设置Ep toolkit的Preference

接下来的步骤都在Eptoolkit中进行。在Matlab界面下键入ep并回车,在弹出窗口中选择“Agree”后进入EP toolkit主界面。



点击界面左上角的File下的Preference即可进入设置


首先,设置File,即输入和输出文件默认类型,可以改成Neuroscan的文件,也可以不动,读文件时再设置。Preprocess,Average和Postprocess都用不着,不用设。View里可以设显示波形图时正极在上或在下。PCA里的默认参数不要动。Window和ANOVA都不用动设置完之后点Save即可。

接下来,回到主界面,设置工作路径。还是点File,然后Create Work Directory,在你选择的路径下就会生成一个叫EP work的文件夹,是以后中间文件的存放路径。

4. 读取文件(Read)

点击“Read”进入读文件界面。首次读取数据时,在File Format处选择Neuroscan (.cnt/.eeg/ .avg);File Type选择average;勾上Single Cell Files(这个选项是指每个被试每个条件都分开为单独的文件)。

Single Cell Files下两个选项是读取文件名用的,如上文所述,“4:5 Subject”是指被试编号在每个文件名的第4到第5个字符,“7:9 Cell”是指条件编号在每个文件名的第7到第9个字符。所以,文件命名一定要规律。


填写好后点Read,在第一个弹出窗口中输入结果文件的文件名,在第二个弹出窗口中选上刚才所有的.txt文件,在第三个弹出窗口中选择刚才生成的坐标文件,等待一会,data处就会出现红色结果文件。这样,文件就读取好了。

注意:如果每个文件的电极数不一样的话(某个文件坏电极标多了或少了),会导致读取失败。

如果要取消已读取的文件,双击想取消的红色文件名就可以。接下来我们先要检查一下文件读取是否正确。这一功能可以通过Edit和View功能实现。

5. 编辑文件信息

点击Main回到主界面。首先,点击Edit进入编辑界面。Overview中是当前文件的基本信息。

注意:从.txt文件中读取数据时Sampling Rate(采样率)和Presting Period(基线取刺激前多少毫秒)是按默认值生成的。进行后续处理前必须在此手动把这两个值改成你实际的值。



Subject下是被试信息,文件名中Subject编号相同的文件会被合并在一起。检查看看被试数和编号对不对。如果要计算总平均的话,先点All,表里软件会自动给每个被试的权重赋为1(weights),然后点Add,表最下面会多出一行,将names改成grand avg之类的就行。



Cells中是条件信息,文件名中Cells编号相同的文件会被合并在一起。检查看看条件数和编号对不对。如果要做差异波,将减数和被减数的weights分别设为1和-1,然后点Add即可。

Channels里是所有电极信息,不用动。Samples里是采样率等信息,也不用动。Events里是每个文件的信息,依然不用动。QC是质量检查,只有预处理用此软件进行时才有用。Factors和PCA两栏在PCA完成后才可用,分别可以看到各个因子的信息和PCA的参数。

编辑完成后,点Done。最好再回头检查一下编辑的东西是否都被保存下来了。

6. 查看文件

回到主界面后,点击View即可查看波形与地形图。每次可以至多对比查看4个条件,分4种颜色呈现。

每种颜色第一栏是选择当前读取的数据名(选择none则跳过此颜色),第二栏是Cell名(即条件名),第三栏是被试号(也可以选总平均),如果是做过PCA的文件,可以在第四栏选因子。

Voltage是纵轴上下界。Epoch是时间轴。



点击Wave可以看波形图。可以检查一下各个电极位置是否正确,呈现的波形和时间轴是否跟Scan中一样。点击其中单个电极可以放大,其中的图形可以用Matlab编辑并存成图片。关掉波形窗口后可以回到View界面,点击Topos可以看到地形图,之前可以在Epoch里编辑要看的时间窗。



左上角第一行两个框内是纵轴最大和最小值信息。第一列是当前时间窗峰值出现的时间点与电极点,旁边是该电极的波形。在其中某个地形图上右击,可以选择看2D的放大图或者3D地形图。

下面两个选项(Dipole和Jack-Knife)分别是简单偶极子定位和稳定性检验,但可能会报错。看完后点Done回到View界面。

注意:不点而直接关掉窗口的话View界面还是灰的,不能操作,只能重启ep,如果之前操作没有保存的话,恭喜你,重新做。

7. PCA

检查确认读取文件正确后,即可进行PCA。回到主界面后,点PCA进入分析界面。

首先,进行temporal PCA,参数设置如图。第一次# Factors那一栏先设为0,这样会进入一个图形界面,以寻求最优参数。设好后点一下data栏要分析的文件即可。接着会出现一个叫Scree Window的图形界面,蓝线和绿线的交点处就是Factors的最优参数(向下取证)。



可以改坐标轴的范围来更好地看清交点值。找到后点Done,回到PCA界面,在# Factors处输入那个最优值,再点data栏要分析的文件。之前可以在Title of PCA处输入想要生成的文件名。



这样在data栏下就会生成一个temporalPCA的结果文件,然后进入spatial PCA。参数栏设置如下。同样的,# Factors一栏先设为0,再输入Scree Window得到的最优参数。最后得到spatial PCA的结果文件。至此,PCA完成。



8. 输出结果


首先,大家可以通过View栏浏览整个结果。基于波形和地形图选出最符合要求的成分。例如,P300就是顶中部左右对称的一个波幅很大的正波

注意:关于如何选成分这一问题没有标准答案,主要凭个人经验。所以最好请有丰富脑电经验的老师或者师兄师姐把关哟~



选好成分后,回主界面点Window,进入输出结果窗口。对于PCA成分,我们先在Dataset里选上它。

Measure里选提取数值的方法,有平均值,最大峰,最小峰等。Samples里通过选择采样点范围定时间窗。Outcells和inCells里写条件名,可以通过在inCells里写相同的名字来实现合并条件。然后点一下AutoPCA即可。结果可输出到.txt或Excel文档。然后用这些数据统计即可。



文章的最后,做个总结。

本文从ERP PCA toolkit的简介、安装方法、使用步骤三个方面进行了讲解。这里仅仅是做一个简单介绍,在后续的过程当中,还请多多练习。

此外,使用其他方法也可以达到同样的目的,参考文献处附上相关链接,大家自行探索哟。

最后,喵君姐姐也进行了ERP PCA工具包相关资料的整理,包含工具包软件、三种类型的电极点坐标、中英文使用教程、相关参考文献等。关注公众号,在后台回复“ERP PCA工具包”即可获得哟~



参考文献:


[1] Dien, J., & Frishkoff, G. A. (2005). Principal components analysis of event-relatedpotential datasets. In T. Handy (Ed.), Event-Related Potentials: A MethodsHandbook. Cambridge, Mass: MIT Press.
[2] Dien, J. (2010). The ERP PCA Toolkit: An open source program foradvanced statistical analysis of event-related potential data. Journal of Neuroscience Methods, 187(2010) 138–145
[3] PCA 链接:http://www.escience.cn/people/cong/Toolbox.html



颅内脑电图简介

脑电数据采集指导手册

Analyer脑电数据处理指导手册

eeglab脑电数据预处理指导手册

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存