[Eeglablist] a few questions about your ICA-based preprocessing pipeline

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Tue Sep 26 18:01:23 PDT 2017


Dear Roberto,



***
Hi Makoto,

> So are you suggesting to run pop_runinca() with PCA.  Can I ask you the
reason for that? Does it just speed up the decomposition?

Yes. ICA can also benefit from increasing datapoint/parameter ratio.

> Ok, I am slowly understanding the mechanics here. So you suggest to:
1. create a STUDY (call it STD1) for IC rejection only;
2. clustering ICs over datasets of the STUDY (call it STD2),  which will
then create another (full?) STUDY.design of .set files (= the clustered
ICs).
Is it at point 2 that you epoch the ICs? I still miss why epoch ICs of STD2?

If you don't need to see event-related brain potential, you don't need to
epoch the data.

> So once I have all (epoched?) ICs in STD2, I can project the selected IC
clusters to the actual data of STD1. Correct?

Correct.

> It might be a naive question (which is also related to my last question
above), but why does projecting epoched ICs not cause to epoch the actual
data as well?

It does because scalp channel data (EEG.data) will be re-constructed from
EEG.icaact.

Makoto



On Sat, Sep 23, 2017 at 12:20 AM, Roberto Petrosino <
roberto.petrosino at uconn.edu> wrote:

> Hello everyone,
>
> many thanks for all your posts - they are all very helpful! I am replying
> to each of you below - sorry for the long email!.
>
> Hi Clemens,
>
> […] I've found that Extended Infomax ICA is much faster in MNE-Python than
> in EEGLAB (even much faster than binica). So instead of days or weeks,
> computation time could go down to hours.
>
> You can do many EEGLAB analyses with MNE-Python - I'd encourage you to
> read the tutorials and examples to get an overview. There's also a mailing
> list quite similar to this one if you have questions.
>
>
>  Yeah, I did know that MNE-python could run ICA analysis, but my only
> concern that I would have to run IC classification for 30 subjects - I
> couldn’t find out how to cluster ICs like Makoto’s pipeline does. That’s
> basically the reason I am inclined to use eeglab for pre-processing and
> artifact rejection and then MNE-python for actual regression analyses. But
> if you do know some method in MNE similar to Makoto’s, I’d be willing to
> try that out too.
>
> ***
> Hi Tarik,
>
> See the following excellent website for learning about ICA classification.
> I recommend students to do at least 500 classifications, it's doable on
> smartphone. The tutorials and examples are excellent resources.
> http://reaching.ucsd.edu:8000/auth/login
>
> See the multiple ICA classification plugins (MARA, ADJUST, SASICA,
> IC-MARC) for some near-automatic methods for removing unhealthy ICs. The
> articles on each of those plugins are also useful if you're just beginning
> with dense-EEG and ICA.
>
>
> I have actually already started to do some classifications in the spare
> time (it’s really cool!). Also, many thanks for suggesting the
> classification plugins - I’ll surely check them out.
>
> Overall, I recommend running ICA without PCA, but then just focusing on
> the first 35 ICs. Usually one can just pick out the top 10 neural ICs and
> reject the rest. It depends on why you're doing ICA (just to find blinks)
> or to actually examine the ICs. eeglab is built to help you stay in ICA
> land, rather than go back to channel-level space. This of course depends on
> multiple factors, such as whether you have good similar neural ICs for most
> of your subjects.
>
>
> I actually need it just for artifact rejection (so basically blinks). So
> if I understand what you are saying, you suggestion is similation to
> Makoto’s (but see comments below on using PCA within ICA decomposition) -
> namely, decompose the signal in 35 ICs only and then select the neural ones.
> If I understand what your last sentence above mean, you suggest to go over
> ICs of all subjects to make sure they have good similar neural components -
> is that right?
>
> MNE python should have no problem eating the data that results from
> eeglab. If you find the exact method, please share it with the eeglab list.
> If you develop a method for passing data between eeglab and mne-python that
> would also be a cool thing to share.
>
>
> I tried to use MNE with artifact-laden eeglab data, and it worked
> effortlessly. If someone is interested in trying that out, there are two
> special MNE functions - mne.io.read_raw_eeglab() for non-epoched data and
> mne.io.read_epochs_eeglab() for epoched data. See the tutorial
> <http://martinos.org/mne/dev/manual/migrating.html> for more info.
>
> ***
> Hi Makoto,
>
> If you are only interested in decomposing (for removing) eye blinks AND if
> you don't want to spend a week, use 'pca' option from infomax runica() GUI.
> You see 'extended', 1 there. Add 'pca', 35 to decompose 35 ICs only. This
> should be enough to capture eye blinks. Change the number as necessary. It
> should work even with 10-20 if your target is eye blinks.
>
>
> So are you suggesting to run pop_runinca() with PCA.  Can I ask you the
> reason for that? Does it just speed up the decomposition?
>
> What I suggest in doing so is to select IC clusters at the group level
> instead of opening 30 subjects and going through 256x30 ICs manually. My
> suggested method uses power spectrum density (PSD) only for clustering,
> with scalp maps as additional info to help evaluations. This should be done
> with continuous data. As a result, it will create another set of .set
> files. Does it make sense?
>
>
> Ok, I am slowly understanding the mechanics here. So you suggest to:
>
> 1. create a STUDY (call it STD1) for IC rejection only;
> 2. clustering ICs over datasets of the STUDY (call it STD2),  which will
> then create another (full?) STUDY.design of .set files (= the clustered
> ICs).
>
> Is it at point 2 that you epoch the ICs? I still miss why epoch ICs of
> STD2?
>
> > On a related note - when and how exactly do I remove the IC from the
> actual data?
>
>    1. When creating STUDY, outside-brain ICs can be kicked out.
>    2. When creating STUDY, ICs with dipoles with residual variance (i.e.
>    difference from ideal dipolar projection on scalp) > 15 %, as a default
>    value, can be rejected.
>    3. When projecting the selected IC clusters, the ICs contained by the
>    unselected clusters are rejected.
>
> So once I have all (epoched?) ICs in STD2, I can project the selected IC
> clusters to the actual data of STD1. Correct? It might be a naive question
> (which is also related to my last question above), but why does projecting
> epoched ICs not cause to epoch the actual data as well?
>
> Many many thanks for all of your for the help!
>
> Have a nice weekend,
>
> -Roberto
>
> ----------
> Roberto Petrosino
> Ph.D. Student in Linguistics
> CT Institute for the Brain and Cognitive Sciences
> University of Connecticut
>
>
> On Sep 21, 2017, at 4:26 AM, Brunner, Clemens (clemens.brunner at uni-graz.at)
> <clemens.brunner at uni-graz.at> wrote:
>
> Hi Roberto!
>
> Regarding your second question, I've found that Extended Infomax ICA is
> much faster in MNE-Python than in EEGLAB (even much faster than binica). So
> instead of days or weeks, computation time could go down to hours.
>
> You can do many EEGLAB analyses with MNE-Python - I'd encourage you to
> read the tutorials and examples to get an overview. There's also a mailing
> list quite similar to this one if you have questions.
>
> Clemens
>
>
> On 20 Sep 2017, at 20:27, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> wrote:
>
> Dear Roberto,
>
> 1) My initial concern is that I want to run regression analyses through
> MNE-python on epoched and artifact-free data (this is because the matlab
> toolbox for it is quite buggy). Is that at all compatible with your ASR
> pipeline?
>
>
> I have no experience in MNE-python thing, I don't even know what it
> represent for!
> So I can't say anything for sure. Sorry.
>
> My plan was to run ICA on all data throught eeglab, and then exports the
> clean datasets through MNE. Do you think it is feasible?
>
>
> Technically yes, as long as the thing can import Matlab variables in one
> way or another.
>
> 2) Running ICA on 256 components for 30 subjects may last days (if not
> weeks), so I was wondering what your opinion on that is. Since the goal is
> just to find blinks and other noise, I was thinking that I could ask it to
> estimate a smaller number of components - but then what would the
> consequences be?
>
>
> If you are only interested in decomposing (for removing) eye blinks AND if
> you don't want to spend a week, use 'pca' option from infomax runica() GUI.
> You see 'extended', 1 there. Add 'pca', 35 to decompose 35 ICs only. This
> should be enough to capture eye blinks. Change the number as necessary. It
> should work even with 10-20 if your target is eye blinks.
>
> 3) I am using your batch code for multiple subjects, and I am a little
> unclear about the last steps of the ASR pipeline that are not present in
> the batchcode (i.e., steps 13-15). If I understand well, you suggest to
> create a STUDY just for clustered IC rejection, so that I can select
> clustered ICs to apply on the whole STUDY. But then why do you suggest to
> epoch the ICs and then create a full STUDY?
>
>
> What I suggest in doing so is to select IC clusters at the group level
> instead of opening 30 subjects and going through 256x30 ICs manually. My
> suggested method uses power spectrum density (PSD) only for clustering,
> with scalp maps as additional info to help evaluations. This should be done
> with continuous data. As a result, it will create another set of .set
> files. Does it make sense?
>
> On a related note - when and how exactly do I remove the IC from the
> actual data?
>
> • When creating STUDY, outside-brain ICs can be kicked out.
> • When creating STUDY, ICs with dipoles with residual variance (i.e.
> difference from ideal dipolar projection on scalp) > 15 %, as a default
> value, can be rejected.
> • When projecting the selected IC clusters, the ICs contained by the
> unselected clusters are rejected.
> Makoto
>
>
>
>
> On Sun, Sep 17, 2017 at 8:51 AM, Roberto Petrosino <
> roberto.petrosino at uconn.edu> wrote:
> Dear Dr. Mayakoshi,
>
> I am a PhD Student in Linguistics at UConn, and I am currently working on
> a project testing the EEG response to words with a EGI 256-channel net. I
> am trying to use your ASR pipeline, and I have a few questions. I am sorry
> that I am writing directly to you, but I got no reply from the eeglab
> mailing list, so I was wondering if you could help out. Apologies in
> advance for my naive questions - this is my first time using ICA for
> artifact rejection.
>
> 1) My initial concern is that I want to run regression analyses through
> MNE-python on epoched and artifact-free data (this is because the matlab
> toolbox for it is quite buggy). Is that at all compatible with your ASR
> pipeline?
> My plan was to run ICA on all data throught eeglab, and then exports the
> clean datasets through MNE. Do you think it is feasible?
>
> 2) Running ICA on 256 components for 30 subjects may last days (if not
> weeks), so I was wondering what your opinion on that is. Since the goal is
> just to find blinks and other noise, I was thinking that I could ask it to
> estimate a smaller number of components - but then what would the
> consequences be?
>
> 3) I am using your batch code for multiple subjects, and I am a little
> unclear about the last steps of the ASR pipeline that are not present in
> the batchcode (i.e., steps 13-15). If I understand well, you suggest to
> create a STUDY just for clustered IC rejection, so that I can select
> clustered ICs to apply on the whole STUDY. But then why do you suggest to
> epoch the ICs and then create a full STUDY? On a related note - when and
> how exactly do I remove the IC from the actual data?
>
> Many thanks for your help in advance.
>
> Best regards,
>
> -Roberto
>
> ----------
> Roberto Petrosino
> Ph.D. Student in Linguistics
> CT Institute for the Brain and Cognitive Sciences
> University of Connecticut
>
>
>
>
>
> --
> Makoto Miyakoshi
> Swartz Center for Computational Neuroscience
> Institute for Neural Computation, University of California San Diego
> _______________________________________________
> 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/20170927/ffc73364/attachment.html>


More information about the eeglablist mailing list