SpikeInterface / spikeinterface

A Python-based module for creating flexible and robust spike sorting pipelines.
https://spikeinterface.readthedocs.io
MIT License
531 stars 188 forks source link

Missing requirements in docker container for spike sorting with kilosort3 #3540

Open steevelaquitaine opened 1 week ago

steevelaquitaine commented 1 week ago

Two requirements are missing to run kilosort3 container "remfile" and "pynwb"-

e.g., The code below produces ModuleNotFoundError for these two dependencies:

# spike sort with kilosort 3 from container (uses apptainer)
sorting_KS3 = ss.run_sorter(sorter_name="kilosort3", singularity_image=True, recording=recording)

Currently the container runs successfully by adding the extra_requirements argument:

# spike sort with kilosort 3 from container (uses apptainer)
sorting_KS3 = ss.run_sorter(sorter_name="kilosort3", singularity_image=True, recording=recording, extra_requirements=["remfile","pynwb"])
samuelgarcia commented 1 day ago

Hi. Yes this is the correct behavior. We do not add all the possible extra package to read specific data form inside the docker. You need to install by yourself. And you did it with the second piece of code.

alejoe91 commented 1 day ago

@samuelgarcia this is not true. Each extractor comes with additional extra_requirements that are automatically installed in the containers. I think that the streaming NWB is just missing remfile

samuelgarcia commented 1 day ago

yes I forgot it. Sorry