[Eeglablist] a few questions about your ICA-based preprocessing pipeline
Tarik S Bel-Bahar
tarikbelbahar at gmail.com
Tue Sep 26 23:56:47 PDT 2017
Hi Roberto,
Just quick followup here. Thanks for the details about eeglab to mnepython.
The more bridges we can build for users across different tools, the better
for the community. Perhaps someday you can share a "Roberto's pipeline"
recommendations to help beginners.
Regarding 35 ICs, I don't mean PCA to reduce to 35, I mean that many
researchers acknowledge that with high-density EEG (e.g, 64 channels or
more) you'll only really find interpretable relatively pure neural ICs
within the the first 35 or 25 ICs. Whether or not that changes with PCA
reduction remains a matter of opinion. You can test it out yourself. When
you PCA (say 35) for ICA for a high-channel montage, do you get the same
decomposition as when you just ICA without PCA and look at the first 35 ICs?
Also, remember, almost all EEG data is usually "mixed" with EMG and other
artifact signals. So you should definitely not be "just cleaning for
"blinks", but at least other eye artifacts, and also EMG-dominated ICs.
Last, what I meant about "staying in ICA" land was to do analyses on ICs,
and not on the "IC-pruned/cleaned" channel-level data. This is a
theoretical choice one needs to make.Think about it, why would you go back
to channel-level when you've (apparently) decomposed the signal into
IC/neural sources ? Also, yes, whether or not you do your main analyses on
ICs or on channels, if you are doing ICA, you want to know whether or not
your are getting similar neural ICs across your subjects/conditions or not.
This matters more of course if you attempt to do ICA-level analyses, as you
would want similar IC's from each subject for your analyses. That's what
the IC clustering is for, but note that clustering is a bit of an art,
especially when having to deal with ICs that don't show up across all
subjects, thus needed to then deal with issues of having to re-ICA/re-clean
some subjects and/or drop some subjects.
Note that ICA has many flavors, and there are a range of blind source
decomposition techniques that have not yet received full attention or
adoption in the literature.That being said, ICA can get you pretty far in
terms of brain dynamics!
>
> 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.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: 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20170926/0ee1c98a/attachment.html>
More information about the eeglablist
mailing list