[Eeglablist] Adjust data rank for ICA?

Daniele Scanzi dsca347 at aucklanduni.ac.nz
Sun Feb 19 13:08:05 PST 2023


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
>



More information about the eeglablist mailing list