Skip to content

Spike amplitudes crashes on sorting with no units #2264

Open
@DradeAW

Description

@DradeAW

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpostprocessingRelated to postprocessing module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions