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分钟内能全部处理完。其他低内存用户可以自行挑战一下运行速度。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 最新下载版本。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文件,进行后期的分析。
波形和地形图的呈现需要正确的坐标信息。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的文件夹,是以后中间文件的存放路径。点击“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功能实现。点击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。最好再回头检查一下编辑的东西是否都被保存下来了。回到主界面后,点击View即可查看波形与地形图。每次可以至多对比查看4个条件,分4种颜色呈现。每种颜色第一栏是选择当前读取的数据名(选择none则跳过此颜色),第二栏是Cell名(即条件名),第三栏是被试号(也可以选总平均),如果是做过PCA的文件,可以在第四栏选因子。点击Wave可以看波形图。可以检查一下各个电极位置是否正确,呈现的波形和时间轴是否跟Scan中一样。点击其中单个电极可以放大,其中的图形可以用Matlab编辑并存成图片。关掉波形窗口后可以回到View界面,点击Topos可以看到地形图,之前可以在Epoch里编辑要看的时间窗。左上角第一行两个框内是纵轴最大和最小值信息。第一列是当前时间窗峰值出现的时间点与电极点,旁边是该电极的波形。在其中某个地形图上右击,可以选择看2D的放大图或者3D地形图。下面两个选项(Dipole和Jack-Knife)分别是简单偶极子定位和稳定性检验,但可能会报错。看完后点Done回到View界面。注意:不点而直接关掉窗口的话View界面还是灰的,不能操作,只能重启ep,如果之前操作没有保存的话,恭喜你,重新做。检查确认读取文件正确后,即可进行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的简介、安装方法、使用步骤三个方面进行了讲解。这里仅仅是做一个简单介绍,在后续的过程当中,还请多多练习。此外,使用其他方法也可以达到同样的目的,参考文献处附上相关链接,大家自行探索哟。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。