I am a long time user of EEGLAB in MATLAB but now evaluating other options. I use cudaica() a compiled cuda implementation of the popular extended infomax ICA algorithm.
Is there a straight forward way in MNE to define the ICA method to use any binary (non python) ICA executable where the output is simply the weights and spheres?
I’m surprised in searching I am not getting any hits for ica_linux or cudaica_win in the forum.
No I don’t believe so. You’d probably have to export your data from MNE (e.g. epochs.get_data() ) and figure out how to pass that to cudaica directly.
May I ask why you want to do that? The Picard package implements several different ICA algorithms and is extremely fast. It is also a method supported by MNE out of the box if you have installed this package.
Depends on what you call “fast”. EEGLAB’s ICA implementation is very slow, and by that I mean both its runica and binica commands. Last time I tried, Picard was orders of magnitudes faster than even binica. So yes, just try and see if it’s fast enough for your use case. If not, you can always feed the EEG array to some CUDA implementation.