Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about Independent Component Analysis sorting options #3578

Closed
Djoels opened this issue Dec 12, 2024 · 3 comments
Closed

Question about Independent Component Analysis sorting options #3578

Djoels opened this issue Dec 12, 2024 · 3 comments
Labels
question General question regarding SI

Comments

@Djoels
Copy link

Djoels commented Dec 12, 2024

I recently stumbled upon a 2018 ICA spike sorting paper by @alejoe91 and others, and was wondering: is there any reason why ICA options are not part of SpikeInterface?

Could one deduce that spike sorting is a domain adapted form of ICA which uses the notion of templates and domain-specific constraints and quality metrics to its advantage, where ICA is more generically concerned with untangling signals from multiple sources (such as audio signals, which don't have such constraints like inter spike intervals)?

@zm711 zm711 added the question General question regarding SI label Dec 12, 2024
@samuelgarcia
Copy link
Member

Alessio : ready to defend your thesis paper again ?

@alejoe91
Copy link
Member

alejoe91 commented Jan 7, 2025

Hi @Djoels

Thanks for digging this up!

While ICA is good to extract relevant neuronal sources and denoise the input data, there are a couple of issues with it:

  1. estimating the ICA model can be very slow! One possible solution that we expored in the past is to first do a round of spike detection and then only estimate the model on concatenated snippets of raw data where spikes were detected

  2. the ICA model assumes that the recorded signal is a linear mix of sources. In this context, linear means "instantaneous", so all propagating signals (e.g, axonal propagation, backpropagation) will not be fitted correctly. This will result in multiple IC be fitted to the same neuron. One possible solution is to use a convolutive ICA model (see this paper), but that will make the estimation even slower unfortunatly. Alternatively, one can use a standard ICA model and then try to deduplicate sources.

We could implement an ICA preprocessor if needed, but I don't think that ICA will outperform existing algos :)

@Djoels
Copy link
Author

Djoels commented Jan 7, 2025

Thank you very much @alejoe91 for this explanation and the reference to the convolutive ICA approach!
The question had been nagging me a little because I would get asked "why not just use ICA?" when trying to explain (the need for) spike sorting, and I couldn't provide a clear answer.
Your answer helped in confirming my suspicions and in providing some relevant background.

@Djoels Djoels closed this as completed Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question General question regarding SI
Projects
None yet
Development

No branches or pull requests

4 participants