写EEGLAB预处理代码

今天来介绍一下如何通过GUI操作生成批处理代码进行预处理数据分析。

以上期使用EEGLAB GUI界面进行单一数据为例,如果想要查看其代码,可以有两种方式可以查看代码。

第一种的操作是(见下图)File > History scripts > Save dataset history script > 保存代码为.m文件。

图片

第二种方式是在命令行键入:EEG.history (见下图)

图片

那么针对多被试的数据处理,我们可以使用GUI界面进行一个一个的被试数据加载,但是会花费大量的时间,效率很低。如果能使用代码进行批预处理,将是非常棒的。

对于预处理过程,其实是要先理解所做的步骤是为了改变数据的什么类型,哪些步骤是自动化的,哪些步骤是需要手动进行的。批处理的本质是,在单次处理GUI代码的基础上,加上循环(for – end循环)并添加或修改一些必要的信息(如文件名,路径名等)。

通常可分为ICA前的批处理和ICA后的代码,

ICA前进行导入数据、通道编辑、重参考、删除电极、滤波、分段、基线校正、保存数据,因为这些步骤是可重复的,无需手动干预。最后手动查看剔除坏段和插值坏导

ICA后进行ICA运行、剔除眼动成分等、保存数据

代码编写:

ICA前:

首先手动新建保存预处理后的文件夹:. set文件(跑完ICA后保存set文件);

不建议与原始文件夹放在一起。

图片

改写单个被试的代码:

EEG.etc.eeglabvers = '2023.0'; % 使用的eeglab版本EEG = pop_loadbv('/Users/chenrui/Documents/MATLAB/raw_EEG/BP/', 'AuditoryOddball_P300_1.vhdr', [1 143720], [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22]);EEG=pop_chanedit(EEG, []);EEG = pop_select( EEG, 'rmchannel',{'VEOG'});EEG = pop_reref( EEG, [20 21] );EEG = pop_eegfiltnew(EEG, 'locutoff',0.1,'plotfreqz',1);EEG = pop_eegfiltnew(EEG, 'hicutoff',30,'plotfreqz',1);pop_eegplot( EEG, 1, 1, 1);EEG = pop_epoch( EEG, {  'S11'  'S22'  }, [-0.2           1], 'epochinfo', 'yes');EEG = pop_rmbase( EEG, [-200 0] ,[]);pop_eegplot( EEG, 1, 1, 1);EEG = pop_runica(EEG, 'icatype', 'runica', 'extended',1,'interrupt','on');EEG = pop_iclabel(EEG, 'default');EEG = pop_subcomp( EEG, [2], 0);EEG = eeg_checkset( EEG );pop_eegplot( EEG, 1, 1, 1);EEG = pop_saveset( EEG, 'filename','eeg.set','filepath','/Users/chenrui/Documents/MATLAB/raw_EEG/BP/');

第一部分:ICA前的批处理代码

第一步:定义读取和保存数据的路径名文件夹

从单次处理的代码中,我们看到第一步是读取BP设备所采集的原始数据vhdr格式的文件,其中涉及文件所在的路径和文件名。前提你可以看到的是其命名是有一定的规则的,最简单的建议是通过数字命名。

%读取数据的文件夹路径,根据自己的路径进行修改即可;dataPath = '/Users/chenrui/Desktop/Raw/Raw';%保存数据的文件夹路径,根据自己的路径进行修改即可;savePath = '/Users/chenrui/Desktop/Raw/Pre_ICA';

第二步:通过for循环读取被试的名称

for subj = [1:10];    ...
end

第三步:通过上面单个的eeglab的函数进行步骤的组合

定位电极

EEG = pop_chanedit(EEG,[]);

上面这一行代码的功能对应的是定位电极,选择对应的定位文件即可

剔除无效电极

EEG = pop_select(EEG, 'rmchannel',{'VEOG'});

上面代码的功能对应着删除无用电极,大括号里面的内容是要删除的电极名称,这个可以根据需要自行删减。

重参考(离线参考)

EEG = pop_reref(EEG, [20 21]);

上面的代码的功能对应转换参考,用到的函数pop_reref也是eeglab的内置函数,如果用双侧乳突作为参考,就要填写双侧乳突电极点对应的编号,并用中括号括起来,如果用平均参考,就直接改成一个空的中括号。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值