mne-tools / mne-icalabel

Automatic labeling of ICA components in Python.
https://mne.tools/mne-icalabel/dev/index.html
BSD 3-Clause "New" or "Revised" License
88 stars 14 forks source link

Guidelines to contribute a new model #135

Open chmendoza opened 11 months ago

chmendoza commented 11 months ago

Describe the problem

We published here a workshop paper about a model for IC classification that uses a different set of features to those used by ICLabel. We are now planning to add a second dataset to increase the size and diversity of our model's training set, and would like to know what would be the requirements to integrate our model into mne-icalabel. I imagine it should have an API similar to what ICLabel has here? i.e., it should expect the raw EEG data and ICA components, with the assumption that the ICs are

fitted with an extended infomax ICA decomposition algorithm on EEG datasets referenced to a common average and filtered between [1., 100.] Hz.

, and using the proper data types (Raw or Epochs, and ICA).

Thank you!

adam2392 commented 11 months ago

HI @chmendoza exciting!

would like to know what would be the requirements to integrate our model into mne-icalabel. I imagine it should have an API similar to what ICLabel has here

Yeah a similar API would be nice, taking in the inst, and ICA.

We're pretty open to contributions from the community on their proposed models. The PR process will just be about trying to keep the code clean and in a maintainable state, so we're not fixing bugs afterwards for awhile.

What other requirements

It would also be great if the data is somehow accessible through an API and you can show us in a PR/GH issue here what are some of the pros/cons.

Moreover having a simple example that can be run after the model is PRed like this would be great for both having the model be used and educating users (and us the dev team).

Feel free to just start opening a PR to sketch your thoughts and we can iterate / discuss. I'll try to read the workshop paper sometime.

cc: @mscheltienne @jacobf18 if they have thoughts

mscheltienne commented 11 months ago

I don't have access to my computers this week, so it's a bit difficult to read everything. The added model would be very welcome, it needs a similar API where a fitted ICA decomposition is provided, but the ICA decomposition algorithm can be different from ICLabel.

We can help with the implementation, as Adam said, feel free to open a PR to sketch your thoughts and to start a discussion.

adam2392 commented 10 months ago

@chmendoza let us know if there is anything blocking you that is on our end.

chmendoza commented 10 months ago

@adam2392 nothing on your end. We are working on more experiments to test the robustness of our method and expand our work into a second paper. Once that is done, I will post an update here. I expect we can this work done in the next 3-6 months. Thank you for checking in!