Open
Description
Computing the spike amplitudes crashes when giving a sorting with no unit, rather than simply doing nothing.
import spikeinterface.core as si
import spikeinterface.postprocessing as spost
recording = si.load_extractor("recording.bin")
sorting = si.NumpySorting.from_unit_dict({}, 30000) # Also works with si.load_extractor("sorting").select_units([])
wvf_extractor = si.extract_waveforms(recording, sorting, mode="memory", allow_unfiltered=True) # Also same error message when using `mode="folder"`
extract waveforms shared_memory multi buffer:
spost.compute_spike_amplitudes(wvf_extractor)
extract amplitudes: 0%| | 0/1765 [00:00<?, ?it/s]Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/export/home1/users/nsr/wyngaard/dev/spikeinterface/spikeinterface/src/spikeinterface/postprocessing/spike_amplitudes.py", line 171, in compute_spike_amplitudes
sac.run(**job_kwargs)
File "/export/home1/users/nsr/wyngaard/dev/spikeinterface/spikeinterface/src/spikeinterface/core/waveform_extractor.py", line 1964, in run
self._run(**kwargs)
File "/export/home1/users/nsr/wyngaard/dev/spikeinterface/spikeinterface/src/spikeinterface/postprocessing/spike_amplitudes.py", line 80, in _run
out = processor.run()
^^^^^^^^^^^^^^^
File "/export/home1/users/nsr/wyngaard/dev/spikeinterface/spikeinterface/src/spikeinterface/core/job_tools.py", line 377, in run
worker_ctx = self.init_func(*self.init_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/export/home1/users/nsr/wyngaard/dev/spikeinterface/spikeinterface/src/spikeinterface/postprocessing/spike_amplitudes.py", line 186, in _init_worker_spike_amplitudes
worker_ctx["min_shift"] = np.min(peak_shifts)
^^^^^^^^^^^^^^^^^^^
File "/users/nsr/wyngaard/dev/miniconda3/envs/lussac/lib/python3.11/site-packages/numpy/core/fromnumeric.py", line 2953, in min
return _wrapreduction(a, np.minimum, 'min', axis, None, out,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/users/nsr/wyngaard/dev/miniconda3/envs/lussac/lib/python3.11/site-packages/numpy/core/fromnumeric.py", line 88, in _wrapreduction
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: zero-size array to reduction operation minimum which has no identity