[Eeglablist] marking bad channels and interpolating at different stages of preprocessing & ICA

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Mon Oct 17 20:16:41 PDT 2016


Dear Raquel,

> 1.-
I want to mark channels as bad, and thereby exclude them from the average
reference first. Then run ICA, remove components, and only then interpolate
the removed channel(s). Does this make sense? In eeglab, once I remove a
channel with edit > select data > channel range (remove), I cannot find a
way to interpolate it anymore. Is there a way around this issue?

I updated channel rejection and average reference parts in this wiki page.
https://sccn.ucsd.edu/wiki/Makoto's_preprocessing_pipeline

   % Keep original EEG.
   originalEEG = EEG;

   % Interpolate channels.
   EEG = pop_interp(EEG, originalEEG.chanlocs, 'spherical');

> 2.A
I have 64 channels + 4 externals, so I compute the average reference over
the 64 channels.
Because I have an average reference, the rank of the data goes down by 1,
so I use EEG = pop_runica(EEG , 'extended',1,'interupt','on','*pca',67*);
to reduce the number of ICs to match the rank. Is this right?

Correct.

> 2.B
Now, if I eliminate, say, 1 channel, I would have to reduce the rank by one
more, right? But, what if I *did *interpolate before running the ICA, I
would still have to reduce the number of IC's to 66, is that correct?

No, if you remove a channel when your data rank is numberOfChannels-1, your
data are full rank again and no longer need to perform pca dimension
reduction.

Data rank is a funny thing because it is not explicitly visible, right?
See also a snippet from that wiki page. Basically, you can ask what data
rank is by running Matlab function rank() IF your data is 'double' (you can
change it from EEGLAB option, default is 'single' so be careful).

   % Discard channels to make the data full ranked.
   dataRank = rank(EEG.data');
   channelSubset = loc_subsets(EEG.chanlocs, dataRank);
   EEG = pop_select( EEG,'channel', channelSubset{1});
   EEG = pop_chanedit(EEG, 'eval','chans = pop_chancenter( chans, [],[]);');


Makoto



On Wed, Sep 7, 2016 at 10:41 AM, Raquel London <
raquel at dragondelapatagonia.com> wrote:

> Hi all,
>
> I have a few questions about how to handle bad channels & ICA in eeglab.
>
> 1.-
> I want to mark channels as bad, and thereby exclude them from the average
> reference first. Then run ICA, remove components, and only then interpolate
> the removed channel(s). Does this make sense?
> In eeglab, once I remove a channel with edit > select data > channel range
> (remove), I cannot find a way to interpolate it anymore. Is there a way
> around this issue?
>
> 2.A
> I have 64 channels + 4 externals, so I compute the average reference over
> the 64 channels.
> Because I have an average reference, the rank of the data goes down by 1,
> so I use EEG = pop_runica(EEG , 'extended',1,'interupt','on','*pca',67*);
> to reduce the number of ICs to match the rank. Is this right?
>
> 2.B
> Now, if I eliminate, say, 1 channel, I would have to reduce the rank by
> one more, right? But, what if I *did *interpolate before running the ICA,
> I would still have to reduce the number of IC's to 66, is that correct?
>
> Thanks so much in advance for your comments!
>
> Raquel
>
>
>
> _______________________________________________
> 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
>



-- 
Makoto Miyakoshi
Swartz Center for Computational Neuroscience
Institute for Neural Computation, University of California San Diego
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20161017/638e09d2/attachment.html>


More information about the eeglablist mailing list