Describe the new feature or enhancement
The current SSP and ICA methods of removing EOG and ECG artifacts are really effective, but they do completely zap out 2 or even 3 ranks of data. With many-channel MEG and EEG recordings, that's usually fine, but since MNE-Python is getting used more and more for EEG analysis, also low channel count EEG analysis, perhaps it would be nice to provide an alternative method that is more conservative.
In the past, I've played around with regression-based approaches (regress out the EOG channels from the data), which do work pretty well, but recently @rkobler developed the SGEYESUB algorithm that may be superior.
Do others agree this is worth adding to MNE-Python?
Describe your proposed implementation
Implement mne.preprocessing.sgeyesub following the reference implementation. It needs epochs of blinks and saccades, which are usually recorded in a dedicated segment of the experiment where the participant is following on-screen directions for blinking and moving their eyes. If you don't have such a segment in your experiment, mne.preprocessing.make_eog_epochs could be a decent substitute.
Describe possible alternatives
We could decide SSP/ICA is good enough and if people want other algorithms, they can make their own extension packages. Alternatively, we could merge in mne_sandbox.preprocessing.eog_regression instead.
Describe the new feature or enhancement
The current SSP and ICA methods of removing EOG and ECG artifacts are really effective, but they do completely zap out 2 or even 3 ranks of data. With many-channel MEG and EEG recordings, that's usually fine, but since MNE-Python is getting used more and more for EEG analysis, also low channel count EEG analysis, perhaps it would be nice to provide an alternative method that is more conservative.
In the past, I've played around with regression-based approaches (regress out the EOG channels from the data), which do work pretty well, but recently @rkobler developed the SGEYESUB algorithm that may be superior.
Do others agree this is worth adding to MNE-Python?
Describe your proposed implementation
Implement
mne.preprocessing.sgeyesubfollowing the reference implementation. It needs epochs of blinks and saccades, which are usually recorded in a dedicated segment of the experiment where the participant is following on-screen directions for blinking and moving their eyes. If you don't have such a segment in your experiment,mne.preprocessing.make_eog_epochscould be a decent substitute.Describe possible alternatives
We could decide SSP/ICA is good enough and if people want other algorithms, they can make their own extension packages. Alternatively, we could merge in
mne_sandbox.preprocessing.eog_regressioninstead.