How to detect movement artifact & learn about ICA

Dear Friends in MNE,

I have a couple of questions related to EEG :

  1. Could anyone recommend which analysis (feature of MNE-Python) to detect movement artifact ?
  2. If the nature of experiment involves a conversation, could anyone suggest which algorithm (features of MNE-Python) that fits to remove such artifact from EEG data ? and why ?
  3. After we run ICA, it provides us with several components to reject, is there any guideline how to reject or select the components ? I would really appreciate if you could share some information that can teach me the basic about rejecting ICA components that are not related to brain activity. I would like to learn about this.
  4. Is there a way to reject ICA component automatically ? It is very tedious to look at it manually.

I would like to thank you in advanced for your help :slight_smile:

Cheers,
Ihshan

  • operating system: e.g. Ubuntu 20.00

I can take a shot at answering some of these questions:

Movement doesn’t just have one artifact presentation in EEG, which makes this a bit more complicated. For MEG, you compensate for the subject moving within the helmet but, for EEG, the cap stays snug to the subject’s head as they move so there isn’t actually much if any artifact directly related to the movement. There is, however, artifact related to muscle activation in facial and head muscles and artifact related to the cables swinging or bumping things (difficult to remove in my experience). The detection of muscle motor unit activation by EEG can sometimes be removed fairly well by ICA by excluding components with power distributed towards high frequencies and with a time course that looks like an EMG recording (spiky). See an example here: Annotate muscle artifacts — MNE 1.7.0.dev15+gb107d92ec documentation.

I would suggest ICA because it separates the data into components with maximally independent (pointing in different directions) variance which is what a key quality of such artifacts; they have a particular time course and topological distribution.

Yes, there is a tutorial here: Repairing artifacts with ICA — MNE 1.7.0.dev15+gb107d92ec documentation.

Yes, that’s covered in the tutorial.

1 Like

@alexrockhill Thank you so much. I really appreciate your reply and advice.
I will dive into it. You guys are so helpful.

Thanks
Ihshan

1 Like

I would check out these papers too Motion and Muscle Artifact Removal Validation Using an Electrical Head Phantom, Robotic Motion Platform, and Dual Layer Mobile EEG | IEEE Journals & Magazine | IEEE Xplore A comparison of independent component analysis algorithms and measures to discriminate between EEG and artifact components | IEEE Conference Publication | IEEE Xplore (they actually paralyzed people’s face muscles in this one)

Thanks @alexrockhill . They are very useful papers.
I am still struggling a bit about choosing ICA component automatically since I have no EOG sensor (can become a reference as suggested in MNE documentation) that I used during recording using OpenBCI, does MNE have another alternative to reject this automatically ?

Regarding the second paper that you gave (related to paralyzed people’s face muscle), does MNE have function to calculate spatial smoothness or spectral slope (as suggested by the paper) to classify ICs ? Since I have a lot of data, it would be very time consuming to do this manually.

Thanks

Hmmm, you could try using on of the frontal channels most contaminated by blinks. Depending on the data, it could be really highly correlated with blinks or only marginally. I think there is a good probability that it will work. Something like F1 or F2 or FCz would be a good idea to try.

See here for the discussion on adding it: [ENH] Reject ICA components based on muscle artifact · Issue #10514 · mne-tools/mne-python · GitHub. I might have time this week, possibly.

Hope that helps!

Thanks alex. I will look at that github soon :slight_smile:
Cheers