SpikeInterface / SpikeInterface/spikeinterface

spykingcircus2 Insufficient system resources exist to complete the requested service

Open
#3,903 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

sorters
Dominant language
Python
Stars
847
Forks
280
Avg merge
3d 9h
Merged PRs (30d)
29

Description

Dear Spikeinterface community,
I am using spykingcircus2 to do spike-sorting. After applying bandpass filter, motion correction, whitening to the raw data on spikeinterface, I checked the result on phy and felt that the default settings in spykingcircus2 seemed to work well with a single-shank (64 channels). However, when I switched to multple shank (96 channels) recording, I bumped into this error

OSError: [WinError 1450] Insufficient system resources exist to complete the requested service

It looks like the issue is with the computer. However, I can apply kilosort4 to this dataset on Spikeinterface without any problem. Does anyone know what issue I might have with spykingcircus2?
Below is my code and the log.json

            rec_of_interest=get_preprocessed_recording(oe_folder,analysis_methods)
            recording_saved=spre.astype(recording_saved,np.float32)
            recording_corrected_dict=motion_correction_shankbyshank(recording_saved,oe_folder,analysis_methods)

            if len(recording_corrected_dict)>1:
                recording_corrected=recording_corrected_dict
            else:
                recording_corrected=recording_corrected_dict[0]            
            rec_for_sorting = spre.whiten(
                recording=recording_corrected,
                mode="local",
                radius_um=150,
                #int_scale=200,#this can be added to replicate kilosort behaviour
            )
            print(f"run spike sorting with {this_sorter}")
            sorter_params = ss.get_default_sorter_params(this_sorter)

            sorter_params.update({"apply_motion_correction": False,"apply_preprocessing": False})
            sorter_params['general'].update({"radius_um":150})
            if len(recording_corrected_dict)>1:
                rec_for_sorting=si.aggregate_channels(rec_for_sorting)
                sorting_spikes = ss.run_sorter_by_property(
                sorter_name=this_sorter,
                recording=rec_for_sorting,
                remove_existing_folder=True,
                grouping_property='group',
                folder=oe_folder / result_folder_name,
                verbose=True,
                **sorter_params
                )

spikeinterface_log.json

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the supplied code around ss.run_sorter_by_property and the attached spikeinterface_log.json, reproducing the spykingcircus2 run with the single-shank and multishank recordings. Compare the sorter configuration and resource use at the failure point; done means identifying the cause of WinError 1450 and documenting a confirmed fix or limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.