# [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

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

%%% 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

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?
>
>
> 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>
```