De-artifacting 2-4 channel EEG data

I am working to analyze EEG of 2-4 active electrodes (not counting the ground and references electrodes) from some neurofeedback training, and wondering if anyone has any particular suggestions on good automated de-artifacting algorithms or protocols for such a low number of electrodes. Most de-artifacting algorithms and ICA seem to use methods that are specifically geared to at least 11 and typically many more channels.

EDIT: Didn’t read carfully enough – my text only refers to rejection, not correction … sorry :slight_smile:

mne.preprocessing.annotate_flat and mne.preprocessing.annotate_muscle_zscore should work normally, and help you to mark time segments in your data that you may want to reject from analysis (that is, disregard/drop them when forming epochs).

Other than that, a simple “peak to peak” rejection criterion may serve you well. You need to define a threshold (in µV) that you deem “too high”, and then go over your data in time windows (or epochs), check for highest difference in peaks (abs(lowest_peak - highest_peak)) and reject that time window (epoch) when it surpasses your threshold.

I am not aware of a function in MNE that does that, but you could build your own using:

If you have EOG channels, you could regress out ocular artifacts. If you really have only 2-4 EEG channels I am not aware of any artifact correction method.