.. _release0.95.0: SpikeInterface 0.95.0 release notes ----------------------------------- 2nd September 2022 Main changes: * Add `BaseSnippets` object to handle waveform cutouts (https://github.com/SpikeInterface/spikeinterface/pull/764) * Sacrificed `toolkit` in favor of: `preprocessing`, `postprocessing`, `qualitymetrics`, and `curation` modules (https://github.com/SpikeInterface/spikeinterface/pull/745) * Major refactoring widget module to allow for multiple backends (https://github.com/SpikeInterface/spikeinterface/pull/686 / https://github.com/SpikeInterface/spikeinterface/pull/786 / ) * `matplotlib` * `ipywidgets` * `sortingview` * First implementations of (experimental) `sortingcomponents`-based sorters: * `spykingcircus2` (https://github.com/SpikeInterface/spikeinterface/pull/787) * `tridesclous2` (https://github.com/SpikeInterface/spikeinterface/pull/800) core: * Add ZARR `storage_options` argument to enable cloud read/write (https://github.com/SpikeInterface/spikeinterface/pull/622) * Add `seed` for sampling waveforms (https://github.com/SpikeInterface/spikeinterface/pull/629) * Allow for unconnected contacts when setting probe (https://github.com/SpikeInterface/spikeinterface/pull/646) * Refactor nested recursive functions (https://github.com/SpikeInterface/spikeinterface/pull/651 / https://github.com/SpikeInterface/spikeinterface/pull/774) * Switch to `packaging` (https://github.com/SpikeInterface/spikeinterface/pull/697) * Add `BinaryFolderRecording` and `is_binary_compatible()` (https://github.com/SpikeInterface/spikeinterface/pull/726) * Fixed SharedMemory buffer (https://github.com/SpikeInterface/spikeinterface/pull/741) * Improve handling of unitless NEO extractors (https://github.com/SpikeInterface/spikeinterface/pull/758) * Add `mp_context` arg to control multiprocessing (https://github.com/SpikeInterface/spikeinterface/pull/781) * Option to automatically cast unsigned dtypes in `get_traces` (https://github.com/SpikeInterface/spikeinterface/pull/798) * Add mode="memory" for WaveformExtractor (https://github.com/SpikeInterface/spikeinterface/pull/832) * Patch memory leak when saving to Zarr (https://github.com/SpikeInterface/spikeinterface/pull/915) * Add return_scaled in write_to_h5 format (https://github.com/SpikeInterface/spikeinterface/pull/908) * Improved NEO wrapper to handle multi-blocks and return number of blocks and stream info (https://github.com/SpikeInterface/spikeinterface/pull/909) * Update OpenEphys and SpikeGLX for NEO and ProbeInterface releases (https://github.com/SpikeInterface/spikeinterface/pull/916) extractors: * Fix 1D kilosort/phy spiketrains (https://github.com/SpikeInterface/spikeinterface/pull/617) * Propagate NEO annotations to SI objects (https://github.com/SpikeInterface/spikeinterface/pull/627) * Add AlphaOmega support (https://github.com/SpikeInterface/spikeinterface/pull/637) * Improve BIDS reader (https://github.com/SpikeInterface/spikeinterface/pull/647) * Add `ros3`` support for NWB (https://github.com/SpikeInterface/spikeinterface/pull/658) * Fix neo kwargs propagation (https://github.com/SpikeInterface/spikeinterface/pull/723) * Load ADC sample shifts for Open Ephys and SpikeGLX (Neuropixels) (https://github.com/SpikeInterface/spikeinterface/pull/734 / https://github.com/SpikeInterface/spikeinterface/pull/759) * Load gain for MEArec (https://github.com/SpikeInterface/spikeinterface/pull/791) * Added functions to get extractors from name (https://github.com/SpikeInterface/spikeinterface/pull/835) * Update nwb recording extractor to use offsets (https://github.com/SpikeInterface/spikeinterface/pull/846) * Add `EDFRecordingExtractor`, `NeuralynxSortingExtractor`, `BlackrockSortngExtractor` (https://github.com/SpikeInterface/spikeinterface/pull/853 / https://github.com/SpikeInterface/spikeinterface/pull/854 / https://github.com/SpikeInterface/spikeinterface/pull/856) * Fix IBL cbin kwargs (https://github.com/SpikeInterface/spikeinterface/pull/873) * Add snippets extractors: MClust (https://github.com/SpikeInterface/spikeinterface/pull/879) - WaveClus (https://github.com/SpikeInterface/spikeinterface/pull/764) * Fix Phy reading when unit groups are excluded (https://github.com/SpikeInterface/spikeinterface/pull/876) sorters: * Allow to propagate local SI installation to docker/singularity container (https://github.com/SpikeInterface/spikeinterface/pull/630) * Refactor MATLAB-based sorters to allow compiled versions (https://github.com/SpikeInterface/spikeinterface/pull/631 / https://github.com/SpikeInterface/spikeinterface/pull/660 / https://github.com/SpikeInterface/spikeinterface/pull/649 / https://github.com/SpikeInterface/spikeinterface/pull/684) * Fix docker mechanisms for Windows (https://github.com/SpikeInterface/spikeinterface/pull/635) * Remove unused `mdaio` from IronClust (https://github.com/SpikeInterface/spikeinterface/pull/638) * Add `wave_length` param to kilosort (https://github.com/SpikeInterface/spikeinterface/pull/655) * Better handling of GPU requirements (https://github.com/SpikeInterface/spikeinterface/pull/674) * Add default container map (https://github.com/SpikeInterface/spikeinterface/pull/685) * Add `extra_requirements` mechanism to install required packages in container (https://github.com/SpikeInterface/spikeinterface/pull/689) * Unify handling of `job_kwargs` across sorters (https://github.com/SpikeInterface/spikeinterface/pull/706) * Optional motion correction for KS2.5 and KS3 (https://github.com/SpikeInterface/spikeinterface/pull/709) * Dump npz sorting in container (https://github.com/SpikeInterface/spikeinterface/pull/779) * Add `tmpdir` parameter to MS4 (https://github.com/SpikeInterface/spikeinterface/pull/827) * Add SLURM launcher (https://github.com/SpikeInterface/spikeinterface/pull/828) * Add WaveClus from snippets implementation (https://github.com/SpikeInterface/spikeinterface/pull/764) * Extend docker map to HerdingSpikes and Combinato (https://github.com/SpikeInterface/spikeinterface/pull/891 / https://github.com/SpikeInterface/spikeinterface/pull/889) * Fixes to pykilosort (https://github.com/SpikeInterface/spikeinterface/pull/890) preprocessing: * Allow artifact removal of single sample when `ms_before=ms_after=None` (https://github.com/SpikeInterface/spikeinterface/pull/618) * Add `operator` to CMR kwargs (https://github.com/SpikeInterface/spikeinterface/pull/634/files) * Add `DeepInterpolationRecording` (https://github.com/SpikeInterface/spikeinterface/pull/661) * Add `zscore` preprocessing (https://github.com/SpikeInterface/spikeinterface/pull/679) * Enable specification of dtype for whitening (https://github.com/SpikeInterface/spikeinterface/pull/881) postprocessing: * Fix template metrics return values (https://github.com/SpikeInterface/spikeinterface/pull/620) * Add sparsity option for template metrics (https://github.com/SpikeInterface/spikeinterface/pull/629) * Added `SpikeLocationsCalculator` as `WaveformExtension` (https://github.com/SpikeInterface/spikeinterface/pull/735) * Improve efficiency and verbosity of PCA (https://github.com/SpikeInterface/spikeinterface/pull/739) * Add ISI histograms (https://github.com/SpikeInterface/spikeinterface/pull/760) * Refactor ISI histograms, CrossCorrelograms, TemplateSimilarity, and UnitLocations extensions (https://github.com/SpikeInterface/spikeinterface/pull/778) * Fix fancy indexing for arrays (https://github.com/SpikeInterface/spikeinterface/pull/816) qualitymetrics: * Improved tests (https://github.com/SpikeInterface/spikeinterface/pull/692) * Add sparsity to quality metrics computation (https://github.com/SpikeInterface/spikeinterface/pull/739) curation: * Add `CurationSortingExtractor` class (https://github.com/SpikeInterface/spikeinterface/pull/612) * Add `deduplication` of spike trains (https://github.com/SpikeInterface/spikeinterface/pull/776 / https://github.com/SpikeInterface/spikeinterface/pull/817) comparison: * Fix multicomparison duplicate removal (https://github.com/SpikeInterface/spikeinterface/pull/620) * Add option to remove sorters folder in `GTStudy` (https://github.com/SpikeInterface/spikeinterface/pull/629) * Better internal handling of comparison objects in multicomparison (https://github.com/SpikeInterface/spikeinterface/pull/732) widgets: * Improved similarity widget (https://github.com/SpikeInterface/spikeinterface/pull/665) * Allow selection of waveforms to plot (https://github.com/SpikeInterface/spikeinterface/pull/672/files) * Add Tiled plot (https://github.com/SpikeInterface/spikeinterface/pull/693 / https://github.com/SpikeInterface/spikeinterface/pull/821) * Refactor multiple widgets (https://github.com/SpikeInterface/spikeinterface/pull/762 / https://github.com/SpikeInterface/spikeinterface/pull/820) * Multi-layer timeseries (https://github.com/SpikeInterface/spikeinterface/pull/783) * Add `sorting_summary` widget for sortingview (https://github.com/SpikeInterface/spikeinterface/pull/795) * Fix generation of docstrings for `plot_` functions (https://github.com/SpikeInterface/spikeinterface/pull/920) * Unify generation of 2d axes in MPL (https://github.com/SpikeInterface/spikeinterface/pull/921) sortingcomponents: * Component-specific benchmarks (https://github.com/SpikeInterface/spikeinterface/pull/667 / https://github.com/SpikeInterface/spikeinterface/pull/678 / https://github.com/SpikeInterface/spikeinterface/pull/839) * Restructure matching module (https://github.com/SpikeInterface/spikeinterface/pull/668) * Refactor motion correction (https://github.com/SpikeInterface/spikeinterface/pull/669) * Add numba isocut implementation (https://github.com/SpikeInterface/spikeinterface/pull/688) * Add nearest neighbor NN triaging (https://github.com/SpikeInterface/spikeinterface/pull/694/files) * Add compute features from peaks (https://github.com/SpikeInterface/spikeinterface/pull/754) * Implement "peak pipeline" (https://github.com/SpikeInterface/spikeinterface/pull/845) docs: * Documentation updates for quality_metrics (https://github.com/SpikeInterface/spikeinterface/pull/666) * Automatic generation of function from classes (https://github.com/SpikeInterface/spikeinterface/pull/673) * Add intersphinx for neo readers (https://github.com/SpikeInterface/spikeinterface/pull/677) * Improve API documentation (https://github.com/SpikeInterface/spikeinterface/pull/691) * Improve documentation of containerized sorters (https://github.com/SpikeInterface/spikeinterface/pull/765 / https://github.com/SpikeInterface/spikeinterface/pull/777) * Expose classes in the API docs (https://github.com/SpikeInterface/spikeinterface/pull/863) CI: * Add NWB ros3 test * Add code coverage (https://github.com/SpikeInterface/spikeinterface/pull/675) * Create automatic issue when a MATLAB file is changes -- might require docker image update (https://github.com/SpikeInterface/spikeinterface/pull/756)