SpikeInterface 0.103.0 release notes
Jul 31st 2025
Main changes:
Simplified pipelines for group processing (#4005, #4037) (see Process a recording by channel group)
Added curation pydantic model and splitting in curation module (#3760, #3817)
Added
PreprocessingPipelineclass to handle, represent, and reproduce preprocessing steps (#3438, #4000, #3685)Added
3D-ACGpostprocessing extension (#3860) andnoise_cutoffquality metric (#4072)Added
RTSortas an external sorter (#3597)Upgraded
SpykingCircus2andTridesclous2tov2025.07(#3923)API and breaking changes:
return_scaled–>return_in_uVinBaseRecording.get_traces()(#3794, #4090, #4093)is_scaled–>is_in_uVinTemplatesclass (#4036)Unsigned integers not automatically cast to signed integers anymore in preprocessing (#3982) (see Handle unsigned data types)
core:
Fix set_properties_after_merging when property is boolean. (#4084)
Cast samples to int64 after round (#4061)
Check for remote paths in check_paths_relative (#4060)
Allow create_sorting_analyzer to accept dicts (#4037)
Fix soft vs hard merge issue in analyzer (#4025)
Fix sampling rate issue when aggregating (#4024)
Add get_unit_spike_train_in_seconds to sorting extractor (#4012)
Optional loading of compression ratio in zarr recording (#3995)
Remove auto_cast_uint, cast_unsigned, and modify fix_dtype (#3982)
keep probe_planar_contour when aggregating channels (#3958)
Add informative assertions to slice_time (#3942)
More informative errors in frame slicing (#3933)
Add documentation to handle (physical) units of recording channels (#3844)
extractors:
Updates for probeinterface v0.3.0 for inter-sample-shift computation (#4092)
Add append mode to IntanSplitFile building on #4070 (#4075)
Fix one box reading in spikeglx (#4069)
Add Axon recording (#4021)
Add get_unit_spike_train_in_seconds to sorting extractor (#4012)
Fix get_neo_* functions (#4010)
Allow white matter recording to pass gain_to_uV (#4008)
Fix double definition of openephys warnings (#3980)
Automatically install the maxwell plugin in the MaxwellRecordingExtractor (#3961)
Fix loading data from the sync stream in spikeglx (#3959)
Fix timestamps None in NWBRecordingExtractor (#3932)
Read spikeglx neuropixels data without ap meta (#3931)
Better Neuroscope support (#3862)
preprocessing:
PreprocessingPipeline: support remote zarr in load_from_analyzer (#4000)
Remove auto_cast_uint, cast_unsigned, and modify fix_dtype (#3982)
Add documentation to handle (physical) units of recording channels (#3844)
Add DetectAndRemoveBadChannelsRecording and DetectAndInterpolateBadChannelsRecording classes (#3685)
Add PreprocessingPipeline (#3438)
sorters:
Add archived sorters and change rt-sort to rtsort (#4077)
Fix Kilosort tests for 4.0.39 (#4063)
Allow run_sorter to accept dicts (#4005)
Fix last mock call to slurm launcher (#3988)
Avoid crash of SC2 if no templates are detected after clustering (#3976)
Expose hidden KiloSort1 parameters and descriptions (#3956)
Fix kcoords for non-int groups (#3944)
Update TDC2 and SC2 with various improvement in sorting components (clustering + matching) (#3923)
Add in missing get_nvidia_docker_dependencies (#3911)
Method to bypass matching, and assign a labels to all peaks given templates and SVD representation (#3856)
Sc2 deterministic mode (#3854)
Handle automatic chunks duration for SC2 (#3721)
Implemented RT-Sort as an external sorter (#3597)
update to run_sorter_jobs() and slurm (#3105)
postprocessing:
Add “3D Auto-correlograms” (3D ACGs) postprocessing extension (#3860)
qualitymetrics:
Add IBL’s “noise cutoff” quality metric (again) (#4072)
Add concatenated to _get_data for amps and locs; use in _get_amplitudes_by_units (#4029)
curation:
Add splitting functionality to curation and SortingAnalyzer (#3817)
Add pydantic curation model, improve merging rules, and add splitting model (#3760)
widgets:
Fix plot_amplitudes for sortingview widgets (#4097)
Add multi-segment capability to BaseRasterWidget and children (#4035)
Allow for SortingAnalyzer or BaseSorter in plot_* (#3941)
Plot drifting templates (#3842)
exporters:
Add to_pynapple_tsgroup function exporters (#4074)
generators:
Fix durations in generate_hybrid_recording (#3985)
Improve generators (#3973)
sortingcomponents:
Method to bypass matching, and assign a labels to all peaks given templates and SVD representation (#3856)
Sc2 deterministic mode (#3854)
Handle automatic chunks duration for SC2 (#3721)
motion correction:
Make get_spatial_windows() easier (and not fail) for short probes (#4086)
Bug fix: cast corrected motion recording to float (#3934)
Refactor correct_motion into compute motion, then make interpolation (#3905)
documentation:
Add huggingface_hub to docs requirements (#4085)
Add missing functions in API (#4079)
Add additional unsigned_to_signed doc (#4076)
typo: ephsy -> ephys (#4065)
Updates to the get_started folder of docs (#4059)
Update job_kwargs shared docs (#4058)
Add motion functions to api docs (#4057)
Add working with tetrodes doc (#4055)
Add Additional Citations to Ref page (#4054)
Switch RTD to UV (#4052)
Remove MEArec downloads from docs (#4051)
Fix typo on readme (#3981)
Fix for handle_drift bullet points (#3970)
Fix recording slicing docstrings and documentation typo (#3939)
spike_amplitudes description (#3925)
phykilosortextractors.py Phy/Kilosort (#3924)
Clarify docstrings in neuropixels_utils (#3895)
Add documentation to handle (physical) units of recording channels (#3844)
continuous integration:
Use Github token to help with Windows Testing (#4062)
packaging:
Requires probeinterface>=0.3.0 (#4092)
Add read_neuroscope to __all__ for extractors (#4064)
Release python version once testing with 3.13.5+ (#3991)
Cleanup unused import across codebase (#3972)
Remove classes from extractor and preprocessing __init__ (#3898)
Installation tips using uv (#3503)
testing:
Fix uniqueness of locations in test_average_across_directions (#4023)
Test fixing ibllib (#4020)
Limit pytest < 8.4.0 for now (#3966)
deprecations:
Deprecated spikeinterface.compraison.hybrid module (#4093)
More return_scaled > return_in_uV (#4090)
Remove setup.py (#4053)
Templates.is_scaled > Templates.is_in_uV (#4036)
More deprecation updates for version 0.103.0 (#4033)
First pass of deprecation removals for 0.103.0 (#3993)
return_scaled to return_in_uV (#3794)
Contributors:
@DradeAW
@MarinManuel
@RobertoDF
@alejoe91
@bendichter
@chrishalcrow
@emmanuel-ferdman
@fededagos
@h-mayorquin
@huizizhang949
@jakeswann1
@kushaangupta
@max-c-lim
@oliche
@pas-calc
@philipp-mxw
@rat-h
@samuelgarcia
@theodchrn
@ttngu207
@yger
@zm711