[Eeglablist] ICLabel: "source" explanation of "channel noise" independent components in the absence of obviously bad data?

Scott Burwell burwell at umn.edu
Fri Jan 3 13:41:37 PST 2020


Thanks for your thoughts on how the "Other" category of component
classifications should be interpreted / treated. I agree, if one doesn't
know *what* a given component signifies, it is probably best to keep it
until you have more corroborative evidence to exclude it.

I suppose if one were to determine whether to keep or remove components
that were categorized as "Other," one could revert to more "classical"
methods of filtering out components? E.g., keeping components with an
equivalent current dipole / scalp map residual variance of less than some
value (e.g., RV<15%), keeping components with a dipole location that is
within a brain mask, etc.



On Fri, Jan 3, 2020 at 11:07 AM Luca B Pion-tonachini <
lpiontonachini at ucsd.edu> wrote:

> “Other” is a catch-all for anything that does not fit ICLabel’s six other
> IC categories. Because that includes poorly-unmixed ICs, which may still
> contain significant brain activity, I highly suggest to *not* remove all
> “Other” ICs sight unseen. I stand in the more conservative camp of “if you
> don’t know what it is, leave it alone.”
>
>
>
> Regarding your idea of ignoring the “Other” category, I can’t say I’m a
> fan. I can understand doing that for specific components for which you
> disagree with the classification, but not all cases. If a component is
> actually purely noise, how does it make sense to call it “Brain” or “Eye”
> just because there was a 2% probability of that class? I think that your
> underlying purpose is to try to determine what is actually contained in the
> ICs classifierd as “Other” (correct me if I’m wrong) but I don’t think your
> can correctly do that with ICLabel without retraining the classifier on a
> dataset with a more detailed subcategorization of IC types.
>
>
>
> Luca
>
>
>
> *From: *Scott Burwell <burwell at umn.edu>
> *Sent: *Friday, January 3, 2020 6:40 AM
> *To: *Luca B Pion-tonachini <lpiontonachini at ucsd.edu>
> *Cc: *Scott Makeig <smakeig at ucsd.edu>; eeglablist at sccn.ucsd.edu
> *Subject: *Re: [Eeglablist] ICLabel: "source" explanation of "channel
> noise" independent components in the absence of obviously bad data?
>
>
> Thank you, Luca for the clarification. Indeed, each topography of the
> components classified as "Channel Noise" is very focal, so perhaps the
> question I should ask is more of the ICA decomposition instead of the
> classification.
>
> I am still a bit curious regarding how to handle components classified as
> "Other." Is there any unifying way to describe (and justify removal of)
> those components in a manuscript? In a large sample of subjects (n = 1500),
> I have found that the "Other non-brain" class is assigned nearly as often
> as the "Brain" class, the mean percentages of each classification type
> being: brain (37%), muscle (13%), eye (5%), heart (0%), line (2%), channel
> (8%), and other (35%). Upon inspection of the "Other" class of components,
> the topographies do not look terribly messy or uninterpretable; rather, the
> topographies of the "Other" components look less ideal than the "Brain"
> components, but I am not certain this justifies excluding these components.
> I would like to avoid throwing out more dimensions of the data than what is
> needed, and 35% of components (in addition to the ~30% thrown out across
> Muscle, Eye, Heart, Line, and Channel Noise) seems like a lot of data.
>
> I wonder how it would be received by others to only consider a subset of
> the columns in the ICLabel classifications output to "force" components
> classified as "Other" into one of the other class types? I.e., instead of
> considering all ICLabel classes / columns (see below):
> EEG = iclabel(EEG);
> sourcetypes = [1 2 3 4 5 6 7]; %Considering all ICLabel classes
> [~,idx1] =
> max(EEG.etc.ic_classification.ICLabel.classifications(:,sourcetypes)');
> tabulate(idx1)
>   Value    Count   Percent
>       1       30     50.85%
>       2       11     18.64%
>       3        2      3.39%
>       4        0      0.00%
>       5        0      0.00%
>       6        3      5.08%
>       7       13     22.03%
>
> ... consider only a subset of ICLabel classes / columns (1:6), forcing
> components above with the classification of "Other" into one of the classes
> that is (perhaps) better defined / easier to explain (see below)?
> sourcetypes = [1 2 3 4 5 6]; %Considering all but "Other" ICLabel classes
> [~,idx2] =
> max(EEG.etc.ic_classification.ICLabel.classifications(:,sourcetypes)');
> tabulate(idx2)
>   Value    Count   Percent
>       1       39     66.10%
>       2       12     20.34%
>       3        3      5.08%
>       4        0      0.00%
>       5        0      0.00%
>       6        5      8.47%
>
> Curious what you and others think about this approach? And what others
> have been doing for cutoffs / class selections with the classification
> probabilities?
>
> Best,
> Scott
>
> Ps. Compliments on the crowd-sourced classifier - it is much needed tool
> and very easy to run! I really do appreciate it :)
>
> On Thu, Jan 2, 2020 at 1:44 PM Luca B Pion-tonachini <
> lpiontonachini at ucsd.edu> wrote:
>
>> Hi Scott (and Scott),
>>
>>
>>
>> The principle factor for determining a “Channel Noise” IC is the scalp
>> topography. If the topography is very focal, that is often an indication of
>> a “Channel Noise” component. All that really means, is that the channel
>> described by the IC is in some way already independent of the other
>> channels prior to ICA decomposition. If the components ICLabel marked as
>> “Channel Noise” look very focal (you could double check this by looking at
>> the corresponding columns of the EEG.icawinv matrix: one element of each of
>> those columns should have much higher magnitude), then ICLabel is labeling
>> the ICs correctly and the real question is “why did ICA decompose those
>> components that way?” If the components don’t actually look like they
>> describe channel noise, then it is likely that ICLabel is wrong (I
>> personally hope not, but it does happen), in which case you could state
>> that as the likely explanation for the classification.
>>
>>
>>
>> Luca
>>
>>
>>
>>
>>
>> *From: *Scott Burwell <burwell at umn.edu>
>> *Sent: *Thursday, January 2, 2020 12:04 AM
>> *To: *Scott Makeig <smakeig at ucsd.edu>
>> *Cc: *eeglablist at sccn.ucsd.edu
>> *Subject: *Re: [Eeglablist] ICLabel: "source" explanation of "channel
>> noise" independent components in the absence of obviously bad data?
>>
>>
>> Thanks, Scott, for your response and happy new year to you too.
>>
>> For background (to the uninitiated), ICLabel returns a row of
>> probabilities
>> for each component that its source "class" is brain, muscle, eye, heart,
>> line noise, channel noise, or other non-brain noise. Upon ICLabel
>> returning
>> source class probabilities for each component, there is a question as to
>> how to go about filtering one's data to only "brain" components (e.g., for
>> downstream scalp or source analyses). I have been testing out different
>> cutoffs for which to keep only "brain" components, but have found this to
>> feel a bit arbitrary (e.g., keep components with brain probability > .90?
>> >
>> .75?). So, the approach I've taken lately is to decide a component's class
>> for which its probability is the greatest (see below code snippet).
>>
>> EEG = iclabel(EEG);            %run the classifier
>> sourcetypes = [1 2 3 4 5 6 7]; %brain, muscle, eye, etc.
>> [~,idx] =
>> max(EEG.etc.ic_classification.ICLabel.classifications(:,sourcetypes)');
>> %assign class based on maximum probability
>> EEG = pop_subcomp(EEG,find(idx==1),0,1); %filter out all non-brain
>> components
>>
>> The frequency of each class type returned by ICLabel is:
>> Value         Count    Percent  eeg_pvaf (range)
>> Brain            30     50.85%  -0.56 to  2.10%
>> Muscle           11     18.64%  -0.06 to 22.21%
>> Eye               2      3.39%   1.24 to 26.29%
>> Heart             0      0.00%   -
>> Line noise        0      0.00%   -
>> Chan noise        3      5.08%   0.13 to  1.42%
>> Other non-brain  13     22.03%   -0.22 to 0.67%
>>
>> In this relatively clean looking resting-state dataset, ~50% of components
>> are classified as "brain," ~19% as "muscle," and ~3% as "eye," which upon
>> my visual inspection appear to be accurate. Additionally, a substantial
>> percentage of components are classified as "channel noise" (~5%) and
>> "other
>> non-brain" (~22%), which I am finding difficult to explain / justify
>> exclusion of in a manuscript I am writing, especially when the channel
>> data
>> appear to be clean. The percent variance accounted for by the "channel
>> noise" and "other non-brain" components is small (<2%), but does not seem
>> to be substantially different from the percent variance accounted for by
>> components classified as "brain." Additionally, the time-series /
>> activations and frequency spectra for the "channel noise" and "other
>> non-brain" components do not appear to be terribly noisy or different next
>> to that of some "brain" components.
>>
>> I have thought about the possibility of only considering a *subset* of
>> ICLabel columns in deciding their class. E.g., in the above code,
>> specifying sourcetypes = [1 2 3 4 5], effectively forcing "channel noise"
>> and "other non-brain" components to be assigned to one of the easier to
>> interpret classes (i.e., brain, muscle, eye, heart, line noise), but not
>> sure how this would be received by others.
>>
>> Your thoughts would be appreciated.
>>
>> Warmest regards and a happy new year!
>> Scott
>>
>>
>>
>> On Tue, Dec 31, 2019 at 10:40 PM Scott Makeig <smakeig at ucsd.edu> wrote:
>>
>> > Scott -  I'd need to know how much of the seeming-good channel data are
>> > accounted for by the suggested 'channel-noise' IC?  Only a small % ... ?
>> >
>> > Happy New Year
>> >
>> > Scott
>> >
>> > On Mon, Dec 30, 2019 at 10:14 PM Scott Burwell <burwell at umn.edu> wrote:
>> >
>> >> Hello,
>> >>
>> >> I have been testing the ICLabel plug-in on some data (very cool!) and
>> I am
>> >> curious as to the  "source" explanation of independent components
>> >> classified as "channel noise." For the most other classifications, the
>> >> source explanation is clear to me (e.g., brain~synchronous postsynaptic
>> >> potentials, muscle~EMG, eye~VEO/HEO/blink movements, etc.), but I am a
>> bit
>> >> confused as to how one might explain an independent component that
>> >> reflects
>> >> a single channel when the channel data itself appears pretty clean?
>> What
>> >> is
>> >> the source of the "noise" that's left over in that channel after the
>> >> projections from other brain and non-brain sources have been
>> subtracted?
>> >>
>> >> For peace of mind, the ICA decompositions appear very good and were
>> >> calculated using "recommended" conditions (i.e., bad channels and bad
>> time
>> >> segments deleted, average-referenced, 1.0 Hz high-pass filter,
>> full-rank
>> >> data).
>> >>
>> >> Best,
>> >> Scott
>> >>
>> >> --
>> >> Scott J. Burwell, PhD
>> >> NIDA T32 Postdoctoral Research Fellow
>> >> Department of Psychiatry & Behavioral Sciences
>> >> University of Minnesota, Minneapolis, MN
>> >> burwell at umn.edu
>> >> github.com/sjburwell
>> >> _______________________________________________
>> >> 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
>> >>
>> >
>> >
>> > --
>> > Scott Makeig, Research Scientist and Director, Swartz Center for
>> > Computational Neuroscience, Institute for Neural Computation,
>> University of
>> > California San Diego, La Jolla CA 92093-0961,
>> http://sccn.ucsd.edu/~scott
>> >
>>
>>
>> --
>> Scott J. Burwell, PhD
>> NIDA T32 Postdoctoral Research Fellow
>> Department of Psychiatry & Behavioral Sciences
>> University of Minnesota, Minneapolis, MN
>> burwell at umn.edu
>> github.com/sjburwell
>> _______________________________________________
>> 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
>>
>
>
> --
> Scott J. Burwell, PhD
> NIDA T32 Postdoctoral Research Fellow
> Department of Psychiatry & Behavioral Sciences
> University of Minnesota, Minneapolis, MN
> burwell at umn.edu
> github.com/sjburwell
>


-- 
Scott J. Burwell, PhD
NIDA T32 Postdoctoral Research Fellow
Department of Psychiatry & Behavioral Sciences
University of Minnesota, Minneapolis, MN
burwell at umn.edu
github.com/sjburwell



More information about the eeglablist mailing list