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

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Wed Sep 27 22:39:50 PDT 2017


Dear Jumana,

Which ICA clustering steps? You mean PCA+k-means clustering? Here we go...


   1. Load all the .set files to create a STUDY.
   2. Precompute everything but ERPimage (I don't want it).
   3. Pre-cluster them using dipole locations only (to avoid increased Type
   I error by 'double dipping')
   4. Generate 10-15 clusters with 3 SD outlier cluster.

We are now in Japan having the 25th EEGLAB workshop.

Makoto



On Wed, Sep 27, 2017 at 3:43 PM, Ahmad, Jumana <jumana.ahmad at kcl.ac.uk>
wrote:

> Hi Makoto and list,
> I wondered if you had any slides or a web based tutorial for these ICA
> clustering steps. I am interested in single trial ERP analyses and would
> ideally like to use ICA to pick out the event related activity. Thank you.
> Best wishes,
> Jumana
>
> On 27 Sep 2017, at 02:03, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> wrote:
>
> 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
>> <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Freaching.ucsd.edu%3A8000%2Fauth%2Flogin&data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d5054380c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=TZK8MpFc%2Fnry2%2BUjMNxYslf%2Fp9pLhAEhnHC0Fbv%2B%2FDo%3D&reserved=0>
>>
>> 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
>> <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmne.io&data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d5054380c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=nE5%2FyGGB7jyCF0xpM0h%2BDKs9BMNTV99ZgkeoyeHnt9k%3D&reserved=0>.read_raw_eeglab()
>> for non-epoched data and mne.io
>> <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmne.io&data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d5054380c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=nE5%2FyGGB7jyCF0xpM0h%2BDKs9BMNTV99ZgkeoyeHnt9k%3D&reserved=0>
>> .read_epochs_eeglab() for epoched data. See the tutorial
>> <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmartinos.org%2Fmne%2Fdev%2Fmanual%2Fmigrating.html&data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d5054380c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=xWDeWky2M9LI8rd4mGVaURqp6c8RAnA8iMGHINPIp4M%3D&reserved=0> 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
>> <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fsccn.ucsd.edu%2Feeglab%2Feeglabmail.html&data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d5054380c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=GSmM%2BJgPp7Pwkh7pmAWjPkEVl%2F1dLoKHnd3UWywmGkU%3D&reserved=0>
>> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.uc
>> sd.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
>
> _______________________________________________
> Eeglablist page: https://emea01.safelinks.protection.outlook.com/?url=
> http%3A%2F%2Fsccn.ucsd.edu%2Feeglab%2Feeglabmail.html&
> data=01%7C01%7Cjumana.ahmad%40kcl.ac.uk%7C69663f15a5514310cf1b08d50543
> 80c0%7C8370cf1416f34c16b83c724071654356%7C0&sdata=GSmM%
> 2BJgPp7Pwkh7pmAWjPkEVl%2F1dLoKHnd3UWywmGkU%3D&reserved=0
> 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/20170928/f1e65ccc/attachment.html>


More information about the eeglablist mailing list