Failures for some containerized sorters, but not others
还没有人认领这个 Issue。
评估
调研方向
Start with the run_sorter_container path in spikeinterface/sorters/runsorter.py and the Combinato setup in spikeinterface/sorters/external/combinato.py, including the single-channel assertion shown in the traceback. Re-run the HerdingSpikes and Combinato examples with their listed container images and the 378-channel recording. Done means the cause and supported recording or argument requirements for both failures are established, with a regression test or documented limitation.
由索引模型根据 Issue 内容生成。
描述
I was testing some sorters that I typically don't use, and got some issues:
- HerdingSpikes
hs_output = sorting_dir / 'sorting_herdingspikes'
container_image = 'spikeinterface/herdingspikes-base'
params_hs = {} # use SI defaults
sorting_hs = si.run_sorter(
sorter_name='herdingspikes',
recording=rec_saved,
folder=hs_output,
remove_existing_folder=True,
docker_image=container_image, #True,
verbose=True,
**params_hs
)
installation_mode='auto' switching to installation_mode: 'github'
Starting container
Installing spikeinterface with github in container
Installing neo with pypi in container
Running herdingspikes sorter inside spikeinterface/herdingspikes-base
Stopping container
---------------------------------------------------------------------------
SpikeSortingError Traceback (most recent call last)
Cell In[27], line 6
2 container_image = 'spikeinterface/herdingspikes-base'
4 params_hs = {} # use SI defaults
----> 6 sorting_hs = si.run_sorter(
7 sorter_name='herdingspikes',
8 recording=rec,
9 folder=hs_output,
10 remove_existing_folder=True,
11 docker_image=container_image, #True,
12 verbose=True,
13 **params_hs
14 )
15 print('HerdingSpikes units:', len(sorting_hs.get_unit_ids()))
File ~/mambaforge/envs/si_env/lib/python3.10/site-packages/spikeinterface/sorters/runsorter.py:204, in run_sorter(sorter_name, recording, folder, remove_existing_folder, delete_output_folder, verbose, raise_error, docker_image, singularity_image, delete_container_files, with_output, **sorter_params)
198 if not has_spython():
199 raise RuntimeError(
200 "The python `spython` package must be installed to "
201 "run singularity. Install with `pip install spython`"
202 )
--> 204 return run_sorter_container(
205 container_image=container_image,
206 mode=mode,
207 **common_kwargs,
208 )
210 return run_sorter_local(**common_kwargs)
File ~/mambaforge/envs/si_env/lib/python3.10/site-packages/spikeinterface/sorters/runsorter.py:681, in run_sorter_container(sorter_name, recording, mode, container_image, folder, remove_existing_folder, delete_output_folder, verbose, raise_error, with_output, delete_container_files, extra_requirements, installation_mode, spikeinterface_version, spikeinterface_folder_source, **sorter_params)
679 if run_error:
680 if raise_error:
--> 681 raise SpikeSortingError(f"Spike sorting in {mode} failed with the following error:\n{run_sorter_output}")
682 else:
683 if with_output:
SpikeSortingError: Spike sorting in docker failed with the following error:
- Combinato
combinato_output = sorting_dir / 'sorting_combinato'
container_image = 'spikeinterface/combinato-base'
params_combinato = {} # use SI defaults
sorting_combinato = si.run_sorter(
sorter_name='combinato',
recording=rec,
folder=combinato_output,
remove_existing_folder=True,
docker_image=container_image, #True,
verbose=True,
**params_combinato
)
installation_mode='auto' switching to installation_mode: 'github'
Starting container
Installing spikeinterface with github in container
Installing neo with pypi in container
Running combinato sorter inside spikeinterface/combinato-base
Stopping container
---------------------------------------------------------------------------
SpikeSortingError Traceback (most recent call last)
Cell In[26], line 6
2 container_image = 'spikeinterface/combinato-base'
4 params_combinato = {} # use SI defaults
----> 6 sorting_combinato = si.run_sorter(
7 sorter_name='combinato',
8 recording=rec,
9 folder=combinato_output,
10 remove_existing_folder=True,
11 docker_image=container_image, #True,
12 verbose=True,
13 **params_combinato
14 )
15 print('Combinato units:', len(sorting_combinato.get_unit_ids()))
File ~/mambaforge/envs/si_env/lib/python3.10/site-packages/spikeinterface/sorters/runsorter.py:204, in run_sorter(sorter_name, recording, folder, remove_existing_folder, delete_output_folder, verbose, raise_error, docker_image, singularity_image, delete_container_files, with_output, **sorter_params)
198 if not has_spython():
199 raise RuntimeError(
200 "The python `spython` package must be installed to "
201 "run singularity. Install with `pip install spython`"
202 )
--> 204 return run_sorter_container(
205 container_image=container_image,
206 mode=mode,
207 **common_kwargs,
208 )
210 return run_sorter_local(**common_kwargs)
File ~/mambaforge/envs/si_env/lib/python3.10/site-packages/spikeinterface/sorters/runsorter.py:681, in run_sorter_container(sorter_name, recording, mode, container_image, folder, remove_existing_folder, delete_output_folder, verbose, raise_error, with_output, delete_container_files, extra_requirements, installation_mode, spikeinterface_version, spikeinterface_folder_source, **sorter_params)
679 if run_error:
680 if raise_error:
--> 681 raise SpikeSortingError(f"Spike sorting in {mode} failed with the following error:\n{run_sorter_output}")
682 else:
683 if with_output:
SpikeSortingError: Spike sorting in docker failed with the following error:
Warning! The recording is already filtered, but combinato filter is enabled
Traceback (most recent call last):
File "/home/wanglab/data/TJ_Oscillator/LO_04/2025_08_26/LO_04_004/processed_data/spike_sorting_output_nb/in_container_sorter_script.py", line 23, in <module>
sorting = run_sorter_local(
^^^^^^^^^^^^^^^^^
File "/root/.local/lib/python3.12/site-packages/spikeinterface/sorters/runsorter.py", line 300, in run_sorter_local
SorterClass.setup_recording(recording, folder, verbose=verbose)
File "/root/.local/lib/python3.12/site-packages/spikeinterface/sorters/basesorter.py", line 242, in setup_recording
cls._setup_recording(recording, sorter_output_folder, sorter_params, verbose)
File "/root/.local/lib/python3.12/site-packages/spikeinterface/sorters/external/combinato.py", line 133, in _setup_recording
assert len(chan_ids) == 1, "combinato is a single-channel recording"
^^^^^^^^^^^^^^^^^^
AssertionError: combinato is a single-channel recording
Sorting the same recording object worked with Kilosort4 and MountainSort5 (containers), and internal sorters Spyking Circus2 and Tridesclous2 (not containers).
Is it an issue with passing appropriate arguments to those two sorters? Or that the recording is not appropriate for those sorters? Or something else?
The recording object has these properties:
CommonReferenceRecording: 378 channels - 30.0kHz - 1 segments - 54,261,812 samples - 1,808.73s (30.15 minutes) - int16 dtype - 38.20 GiB
- 主要语言
- Dockerfile
- 星标
- 10
- 派生
- 8
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
SpikeInterface/spikeinterface-dockerfiles 的其他 Issue
-
docker, kilosort4, blackwell可能已有人在做 @alejoe91 于 162 天前认领。 未关闭
SpikeInterface/spikeinterface-dockerfiles#91 · 已指派 1 人 ·
-
难度 3/5 1-2 天 新手友好度 45/100
SpikeInterface/spikeinterface-dockerfiles#85 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 25/100
-
难度 5/5 一周以上 新手友好度 25/100
SpikeInterface/spikeinterface-dockerfiles#75 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 25/100
查看 SpikeInterface/spikeinterface-dockerfiles 的全部 Issue
相似的 Issue
-
area: repo priority: P2 type: bug
难度 2/5 1-3 小时 新手友好度 76/100
appandflow/stim#4107 · 1 条评论 ·
维护者通常 1 天内回复
-
bug documentation
难度 1/5 1 小时以内 新手友好度 92/100
qatrackplus/qatrackplus#913 ·
维护者通常 3 天内回复
-
area: build-and-ci S3: minor
难度 2/5 1-3 小时 新手友好度 75/100
manaflow-ai/cmux#22595 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 83/100
module-federation/core#5205 ·
维护者通常 1 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 63/100
维护者通常 1 天内回复