-
Notifications
You must be signed in to change notification settings - Fork 77
Description
The MNE-ICALabel package enables auto-labelling of ICA components based using a pretrained NN. Their output is a (label, probability) pair for each component, making it easier to include/exclude components - researchers don't need to make manual judgements per component. Instead I can decide to ignore anything that was labelled as some uninteresting label (see for example this article where they exclude any component that didn't get a brain label with p >= 80%).
I think it could be nice to add an "auto-label ICA" workflow: after fitting an ICA, the user can opt to use ICALabel to label their data, and include/exclude components based on the ICALabel's NN output.
I started working on something like this with @yuvishap, who added a "Label ICA" option under the "Tools" menu:
This opens a modal that presents the ICALabel labels, and enables modifying the state of the underlying ICA model:
Importantly, the user can still manually examine each component separately by double-clicking on the component:
Note: The exclusion of component in the table will be synchronized with the ica.exclude state, so when user excludes a component on the table, it will be greyed out in the manual plot view and vice versa.
This is still a work in progress but shows there could be a working POC soon.
Caveat: this still requires some manual actions by the user. A "completely automated workflow" (like the article above uses) can be implemented by having the user specify in advance what thresholds they want to apply to each type of label. However, we're not sure if people would really consider never looking at the ICA components and give complete control to a NN. We're open to discussion on the relevance of this user journey.