[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 06:39:51 PST 2020


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



More information about the eeglablist mailing list