Kilosort 2 fails on extremely large "spike" trains
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
Research direction
Start by inspecting the v2.0.2 mainLoop/runTemplates.m entry point and the repository's existing Docker files. Verify how the container runs Kilosort 2 for large spike trains, then ensure the requested fallback to economy-size decomposition is included and the container can complete this case without the gpuArray/eig convergence error.
Written by the indexing model from the issue text.
Description
KS2 throws an error when it finds a huge number of spikes:
"Number of spikes before applying cutoff: 36449620",
"----------------------------------------Error using gpuArray/eig",
"EIG did not converge at index = 881672."
There is a very easy fix that doesn't appear in the docker and the docker is the only way to run KS2 on later versions of Ubuntu.
Would it be possible to add a container with a try and catch added to runTemplates.m in order to use the economy decomposition when huge spiketrains are found?
try
[A, B, C] = svdecon(UA);
catch
[A, B, C] = svd(UA,"econ");
end
The economy-size decomposition removes extra rows or columns of zeros from the diagonal matrix of singular values, S, along with the columns in either U or V that multiply those zeros in the expression A = USV'. Removing these zeros and columns can improve execution time and reduce storage requirements without compromising the accuracy of the decomposition.
https://www.mathworks.com/help/matlab/ref/double.svd.html#d126e1780458
I added this issue to the KS2 repo but I don't have much hope of it being incorporated there now that they are focused on KS4+.
- Dominant language
- Dockerfile
- Stars
- 9
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SpikeInterface/spikeinterface-dockerfiles
-
docker, kilosort4, blackwellMay be free again @alejoe91 claimed this 145 days ago, and no pull request is open. Open
SpikeInterface/spikeinterface-dockerfiles#91 · 1 assignee ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
SpikeInterface/spikeinterface-dockerfiles#89 · 2 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 25/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
SpikeInterface/spikeinterface-dockerfiles#75 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
All issues in SpikeInterface/spikeinterface-dockerfiles
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
community-scripts/ProxmoxVE#17674 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
EPFL-ENAC/co2-calculator#3007 ·
Maintainers usually reply within 1 day
-
area/config comp/gateway duplicate P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
NousResearch/hermes-agent#132565 ·
Maintainers usually reply within 1 day
-
priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ll7/robot_sf_ll7#10128 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
DrozmotiX/ioBroker.tado#1213 ·
Maintainers usually reply within 1 day