[Eeglablist] Script for artifact rejection by ICLabel

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Wed Mar 24 14:52:03 PDT 2021


Dear Shingo,

Try to plot location of a dipole that is clearly localized in the frontal
region, such as eye IC. Particularly, show the 2-D scalp topos with the
dipole location. Where do you see it? If you see the location near the
right temporal area, then your head model is 90 degrees rotated.

> EEG = pop_subcomp(EEG, goodIcIdx, 0, 1);

This performs to 'keep' good ICs, not to 'reject'. So you should enter
indices of good ICs here.

Makoto

On Mon, Mar 22, 2021 at 4:26 PM Makoto Miyakoshi <mmiyakoshi at ucsd.edu>
wrote:

> Dear Shingo,
>
> Your code contains another more criterion for rejecting ICs, namely
> dipolarity of the IC scalp topos.
> Can you please check the residual variance (r.v.) from the dipole fitting
> to the IC scalp topos? If many of them show > 15% despite you see a nicely
> dipolar scalp topos, something must be wrong--most likely, your head model
> setting is incorrect. For example, 90-degrees rotated to the right? This
> typically happens when you use BESA 4-shell spherical model.
>
> Makoto
>
> On Tue, Mar 16, 2021 at 9:49 AM 時本真吾 via eeglablist <
> eeglablist at sccn.ucsd.edu> wrote:
>
>> Dear EEGLAB experts,
>>
>> I usually reject artifacts by independent components with ICLabel. I
>> reject an IC when its probability of the brain activity is lower than 70%
>> and its residual variance is greater than 15% following Makoto's
>> preprocessing pipeline. This criterion works very well, and I tried to
>> apply the same criterion to multiple participants with the batch script
>> below. However, the number of remaining ICs is much smaller than the number
>> of ICs selected by the eye inspection with the same criterion.
>>
>> % Perform IC rejection using ICLabel scores and r.v. from dipole fitting.
>> EEG       = IClabel(EEG, 'default');
>> brainIdx  = find(EEG.etc.ic_classification.ICLabel.classifications(:,1)
>> >= 0.7);
>> rvList    = [EEG.dipfit.model.rv];
>> goodRvIdx = find(rvList < 0.15);
>> goodIcIdx = intersect(brainIdx, goodRvIdx);
>> EEG = pop_subcomp(EEG, goodIcIdx, 0, 1);
>> EEG.etc.ic_classification.ICLabel.classifications =
>> EEG.etc.ic_classification.ICLabel.classifications(goodIcIdx,:);
>>
>> I would like to automate the artifact rejection by ICLabel to avoid human
>> errors. Could anyone give me suggestions for the difference in the humber
>> of remaining ICs? Thank you in advance.
>>
>> Sincerely,
>>
>> ******************************************
>> Shingo Tokimoto, Ph.D.
>> in Linguistics and Psychology
>> Department of Foreign Languages
>> Mejiro University
>> 4-31-1, Naka-Ochiai, Shinjuku, Tokyo,
>> 161-8539, Japan
>> tokimoto at mejiro.ac.jp
>> ******************************************
>>
>> _______________________________________________
>> 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
>>
>



More information about the eeglablist mailing list