spikeinterface: Potential bug in detect_peaks
I tried to sort a MaxWell chip recording (10min, ~9gb) that I had previously sorted with an older spykingcircus version, using the spikeinterface-based sorters (spykingcircus 2 and tridesclous 2, v0.96.1) with default parameters - other than sorter_params['job_kwargs']['n_jobs'] = 8. However, while there are clear spikes in the recording, both sorters did not find any peaks and gave an error afterwards. I went line by line through the spykingcircus2 code, and right before the detect_peaks call, there are still clear spikes in the data (example of one channel):

Interestingly, when I used method=by_channel, a few peaks were found, but they all belonged to the same channel. When I lowered the detection threshold to sorter_params['detection']['detect_threshold'] = 4, the number of peaks increased quite a bit, but still all peaks belonged to the same channel and the amplitudes also were very odd:

When running tridesclous2, I additionally get the following warnings and also detect 0 peaks:
E:\envs\si\lib\site-packages\spikeinterface\preprocessing\normalize_scale.py:230: RuntimeWarning: divide by zero encountered in true_divide
gain = 1 / mads
E:\envs\si\lib\site-packages\spikeinterface\preprocessing\normalize_scale.py:231: RuntimeWarning: invalid value encountered in true_divide
offset = -medians / mads
Since the sorting worked with the old spykingcircus, and the preprocessing does not seem to distort the data (clear spikes visible), I am not sure where to go from here on. Might there be a bug in the detect_peaks function?
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 17 (3 by maintainers)
I have resorted to work with KS again, so unfortunately no news from my side.