-
Notifications
You must be signed in to change notification settings - Fork 187
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
kilosort3 on dandiset recording #2073
Comments
Hi Jeremy. What is strange in your case is that you were able to start the matlab! The bug I am mentioning should be triggered before. I have the intuition that your bug is from KS itself. |
@magland is there a reason why you're not using the built-in neb extractor? It also supports streaming! |
@alejoe91 : I think Jeremy make a @magland : do you think you could pacth our implementation https://github.com/SpikeInterface/spikeinterface/blob/main/src/spikeinterface/extractors/nwbextractors.py#L109 Also a good way to test the sorting with remote streamed file is to run it with "spykingcircus2" which normally do not make any local copy. |
@magland can you check if the problem persists if you have more than 60 seconds? Can you try 10 minutes? |
Thanks @alejoe91 and @samuelgarcia ! Yeah the error seems to be ocurring internally with kilosort, that's difficult to troubleshoot! I am getting the same error with ks 2.5, so it must be something specific to the dataset. Do you know if it's okay to have negative numbers in the data?
I wanted something simpler where I could control exactly what was being loaded and how. And I didn't want to use NWBHDF5IO, but rather use h5py directly as I didn't want the overhead.
I tried 10 minutes and got the same error.
Thanks I'll try that.
Thanks! |
It seems you don't have unit tests for the matlab kilosorts. Is that correct? Is this working for anyone? I tried on EDIT: ks 2.5 ran successfully on toy example with 64 channels, but crashed with 32. This is difficult! |
Yes we have tests, but they're manually triggered. They are broken now because we need to update was credentials. Will fix soon! |
@magland : not that we have now |
I'm working through the source code for ks3, hoping to find the culprit, and maybe there will be a parameter we can adjust to make this more stable. Tagging: @luiztauffer |
I found one of the issues which I have submited to the ks repo This crash occurs when no isolated spikes are found within a ks batch. |
I don't think that will ever be fixed since ks4 is on the rise. You can try to increase the batch size! |
We could fork it though and recreate the docker image |
Here's another issue I found: This one is causing a crash for an IBL dataset, because as far as I can tell the electrode location is duplicated -- unless I am reading the data incorrectly. I need to double-check that. |
Seems that the problem was that I was reading the x, y, z fields in the NWB field rather than rel_x, rel_y. The SpikeInterface extractor reads the rel_x, rel_y. I'm curious about what the difference is between x/y/z and rel_x/rel_y (and ibl_x/ibl_y/ibl_z for that matter), and why the x/y/z includes duplicate locations. @bendichter ? |
Yeah, x y and z are supposed to be stereotaxic coordinates, while rel_x, rel_y, and rel_z are relative to the probe (that's why I would recommend using the built-in Nwb wrapper! It's heavily tested and developed by Nwb core devs ;) ) |
Fair point. But right now I need more control over the implementation / options. We'll need to merge later on. |
Then copy paste what you need from our implementation ;) |
@magland do you have somewhere benchmark of streaming speed remfile vs fsspec ? |
@samuelgarcia The only thing I have right now is this N=1 example example1.py - took ~6 seconds on my machine example1_compare_fsspec.py - took ~32 seconds on my machine Of course it's going to depend on a lot of factors. I'd be interested to see what timings you get if you run those. They are completely stand-alone scripts! Just EDIT: This last time I just ran it I got ~10 seconds and 104 seconds. |
very impressive. congrats. |
I'm having a hard time getting kilosort3 to run successfully on various datasets from DANDI. This may or may not be a spikeinterface problem, but I'd like to open this issue here to see if we can track down the problem.
First I'll just paste the runtime trace and maybe someone will recognize where this is coming from @alejoe91 @samuelgarcia
This is how I was running the sorter
and this is NwbRecording.py
For info on remfile, see https://github.com/magland/remfile
tagging @bendichter
The text was updated successfully, but these errors were encountered: