Skip to content

ICA :: Enable Auto-Labelling using ICALabel #538

@JonNir1

Description

@JonNir1

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:
Image

This opens a modal that presents the ICALabel labels, and enables modifying the state of the underlying ICA model:
Image

Importantly, the user can still manually examine each component separately by double-clicking on the component:
Image
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions