[Eeglablist] Adjust data rank for ICA?

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Mon Feb 27 13:30:52 PST 2023


Dear Julia, Daniele, and Anna,

Yes, that recommendation is still valid.

In fact, a dedicated paper on this issue is about to be accepted (now in
minor revision).
I included Sven Hoffmann in the author's list. You can find his name on
line 611 of pop_runica(). Basically, my recommendation there is to enable
Sven's solution which has been disabled.

Makoto

On Mon, Feb 20, 2023 at 10:53 AM Daniele Scanzi <dsca347 at aucklanduni.ac.nz>
wrote:

> Kia ora Anna,
>
> I have never used gyroscopes before, so I'm not sure about your question. I
> guess you are correct in excluding them from ICA - but more knowledgeable
> people here might be more helpful on this.
> Regarding the data rank issue. From what I can understand, changing the
> 'pop_runica' line, as described by Makoto, should force ICA to use the
> reduced rank as deduced by the heuristic 'sum(eig(cov(double(EEG.data'))) >
> 1E-7)'. If you apply the change and run your script, you should see a
> message like this:
>
> ---
> "Data rank (your_data_rank) is smaller than the number of channels
> (your_number_of_channels).
>
> Input data size [ your_data_rank  ,npoints] =  your_data_rank   channels,
> npoints frames/nAfter PCA dimension reduction,
> finding  your_data_rank   ICA components using extended ICA."
> ---
>
> The data rank should equal the total number of channels (24) minus the
> interpolated channels minus 1 (if your data is re-referenced to the average
> and added the online reference back).
> I think the code you reported is an alternative solution to changing the
> 'pop_runica` script.
>
> Hope this helps,
>
> Daniele
>
>
>
>
> On Sat, 18 Feb 2023 at 08:14, Anna Bánki <anna.banki at univie.ac.at> wrote:
>
> > Hi Daniele, Julia,
> >
> >
> > I am also interpolating some bad channels (max 3-4) before running ICA.
> > Could you help, apart from changing max to min in the pop_runica[]
> script,
> > would you also set back the full rank before running ICA with this code?
> >
> >
> > channelSubset = loc_subsets(EEG.chanlocs, yourDataRankHere);
> > EEG = pop_select( EEG,'channel', channelSubset{1});
> > EEG = pop_chanedit(EEG, 'eval','chans = pop_chancenter( chans, [],[]);');
> >
> >
> >
> >
> https://sccn.ucsd.edu/wiki/Makoto%27s_preprocessing_pipeline#Interpolate_all_the_removed_channels_.2803.2F05.2F2021_updated.29
> >
> > In my layout, there are 3 gyroscope channels on top of the 24 scalp
> > channels, so for now, I only selected my channels as 1:24 before ICA, but
> > did not consider the rank-deficiency issue.
> >
> > Thanks,
> >
> > Anna
> >
> > ------------------------------
> > *From:* eeglablist <eeglablist-bounces at sccn.ucsd.edu> on behalf of
> > Daniele Scanzi <dsca347 at aucklanduni.ac.nz>
> > *Sent:* 16 February 2023 21:47
> > *To:* Julia Basso
> > *Cc:* eeglablist at sccn.ucsd.edu
> > *Subject:* Re: [Eeglablist] Adjust data rank for ICA?
> >
> > Hi Julia,
> >
> > From my understanding, you should still change that line (I think it is
> > line 624) from max to min, otherwise 'runica' most likely won't adjust
> for
> > rank-deficient data.
> >
> > Cheers,
> >
> > Daniele
> >
> > On Fri, 17 Feb 2023 at 09:34, Julia Basso <jbasso at vt.edu> wrote:
> >
> > > Hi,
> > >
> > > We are reading Makato's preprocessing pipeline and utilizing the
> general
> > > pipeline for our dataset. We have interpolated across some bad channels
> > and
> > > have taken note of the section on "Adjust data rank for ICA". We see
> that
> > > he recommends changing one line of code in pop_runica() from max to
> min,
> > to
> > > adjust for the number of interpolated channels. However, this was a
> note
> > > from 5/17/19. Has anything been adjusted in the current code to adjust
> > for
> > > this problem?
> > >
> > > Do you recommend doing this or should we leave it at max?
> > >
> > > Thank you for any help you can provide!
> > >
> > > Best,
> > >
> > > Dr. Basso
> > >
> > > --
> > > _______________________________________________
> > > 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
> > >
> > _______________________________________________
> > 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
> >
> _______________________________________________
> 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



More information about the eeglablist mailing list