Dear all,
I am a beginner to MNE. I have to process a dataset with ONLY 12 EEG signals [‘AF7’, ‘FP1’, ‘FP2’, ‘AF8’, ‘F3’, ‘F4’, ‘P3’, ‘P4’, ‘PO7’, ‘01’, ‘O2’, ‘PO8’]. No EOG signals!
My goal is to remove the eye-artifacts with ICA. And in fact I have managed to remove them with the algorithm FastICA from the “sklearn library”. The problem now, is how to know when an eye-artifact is happening in time?
As a first approch I switched to MNE library in order to find out if there is a function or similar that can locate in time when an eye-artifact is happening. I have dived into the library for a while, and I have discovered some options
mne.find_events() I am not sure how this “events” are estimated, but they seem to be related with STIM signals. If you do not have STIM signals, you get an error message, and I do not have any STIM signal
mne.preprocessing.find_eog_events(), this only works if you have an eog signal that indicated where a eye movement has happened.
To my understanding none of them seem to work for my purpose. Can somebody put some light to my doubts?
Is there any tool to locate/identify eye-artifacts in MNE?
Do I need to to locate when a eye-artifact is happening if I want to use one of the three ICA algorithms witin MNE?
One point I can add, you don’t actually need to detect the EOG artifacts to remove them with an ICA decomposition. The ICA decomposition will decompose your signal in independent components (regardless of the algorithm used). One of those components (among the first ones usually) should be you eye-blinks. By zeroing out this components and reconstructing the signal from the other components, you effectively remove the eye-blinks.
The only ‘detection’ aspect here is that you need to label, manually or automatically, the components to tell MNE which component it should zero-out and which component it should keep.
Hello sir,
thank you very much for your quick answer. You have just stricked the hot topic, in fact you wrote:
“The only ‘detection’ aspect here is that you need to label, manually or automatically, the components to tell MNE which component it should zero-out and which component it should keep.”
This is exactly what I want. How can I label automatically the component I should zero-out?
Yes, you can use find_eog_events(). Pass it the name of the channel(s) closest to the eyes, i.e. those channels that are likely to contain clear ocular artifacts.