[Eeglablist] automatic artifact rejection

Stephen Politzer-Ahles spa268 at nyu.edu
Mon May 4 21:07:45 PDT 2015


Hi Dana,

I also would have thought these would be implemented, but I couldn't find t
hem just now; maybe they're in ERPLAB.

It shouldn't be hard, though, to code this yourself. Below is a quick
sample I just made; I can't guarantee this will work in all cases but it
gives you an idea. You could easily run some simple code like this and then
just add the bad trial list into the EEG.reject structure.

Best,
Steve


%%% MAXMIN CRITERION

% Finds the difference between the maximum and minimum of each epoch. Could
% be tweaked to look only at a certain time range within the epoch
diffs = squeeze( max(EEG.data,[],2) - min(EEG.data,[],2) );

% We'll kick out any trials whose difference exceeds this uV threshhold
threshold = 200;

% Find samples that exceed the threshhold
[chanidx, epochidx] = find( diffs > threshold );

% Find epochs that have at least one sample, at any channel, exceeding the
% threshhold
badepochs.maxmin = unique( epochidx );









%%% NEIGHBORING SAMPLES CRITERION

% Find the difference between neighboring samples each pair of neighboring
samples
diffs = arrayfun( @(x)( squeeze (EEG.data(:,x,:) - EEG.data(:,x-1,:) ) ),
2:size(EEG.data,2), 'UniformOutput', false );

% organize that cell array into a matrix, which will be easier to work with
n_chan = size(diffs{1},1);
n_samp = length(diffs);
n_trial = size(diffs{1},2);
diffs = reshape(cell2mat(diffs), n_chan, n_samp, n_trial);

% get the max difference across samples, for each trial
diffs = squeeze( max(diffs,[],2) );

% We'll kick out any trials whose difference exceeds this uV threshhold
threshold = 75;

% Find samples that exceed the threshhold
[chanidx, epochidx] = find( diffs > threshold );

% Find epochs that have at least one sample, at any channel, exceeding the
% threshhold
badepochs.neighbsamp = unique( epochidx );



Stephen Politzer-Ahles
New York University, Abu Dhabi
Neuroscience of Language Lab
http://www.nyu.edu/projects/politzer-ahles/

On Thu, Apr 30, 2015 at 12:37 PM, Son, D.M.E. van <
d.m.e.van.son at fsw.leidenuniv.nl> wrote:

>  Dear Eeglab members,
>
> Before manually selecting artifacts in my data, I would like to pre-select
> artifacts automatically. I have seen that Eeglab provides an automatic
> epoch rejection toolbox, but specific epoch selection that I would like to
> make, does not seem to be provided.
> e.g.; I would like to remove epochs where the difference between the
> maximum and minimum in an interval of a selectable length, and the
> difference between the maximum and minimum in the epoch itself, exceeds a
> specific value. Also, I’d like to remove epochs wherin the absolute
> difference between two neighboring sampling points exceeds a certain
> value.
>
> Does anyone have an idea if this is possible in Eeglab automatically? Or
> perhaps it is possible that I script this separately?
>
> Many thanks in advance
>
> Dana
>
>
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20150505/53f26db4/attachment.html>


More information about the eeglablist mailing list