SpikeInterface 0.98.0 release notes¶
7th July 2023
Main changes:
Implemented motion correction in SpikeInterface
Get rid of to_dict in _kwargs and use JSON serializer
_ind to _index in complex dtype representation
Moved to src/spikeinterface structure
Reformat to black and use pre-commit CI
- core:
Fix bug in generate_erroneous_sorting and add docstring (#1433)
Add GeneratorRecording for testing and diagnosing memory issues (#1391)
Add specialized JsonEncoder for writing to json (#1397)
Change default value for end_frame in FrameSliceSorting (#1425)
Add memory to recording __repr__ (#1452)
Implement sorting concatenation (#1419)
Remove to_dict mechanism from core module (#1462, #1508, #1509)
Add gather_func concept to ChunkRecordingExecutor. (#1357)
Version mismatch: print –> warning (#1504)
Allow option to compute noise with std (#1548)
Extend load_extractor to load zarr and fix zarr annotations (#1567)
Add pure white noise generation to generator recording (#1581)
Force_dense mode for waveforms and templates (#1599)
Allow to set the recording of WaveformExtractor (#1543)
Richer Recording representations (#1591)
Fix generator recording (#1606)
rec_attributes None in Wvf extractor set_recording (#1607)
Adding ptp sparsity (#1656)
Simplify define_function_from_class (#1612)
Fix pickle loading (#1674)
Cleaner WaveformExtractor.run_extract_waveforms (#1665)
Remove verbose from write_binary_recording (#1697)
Remove unecessary try-except for shared memory (#1700)
Expand recursive to dump_to_pickle (#1728)
Fixes to_dict(recursive) that isn’t recursive (#1732)
Fix bug with to_dict(recurvise, relative_to) (#1734)
Propagate get_times_kwargs to BaseRecording (#1746)
Fix SharedMem warning/errors (#1704)
Caching noise levels (#1583)
Make binary recording memmap efficient (#1742, #1602)
Remove zero pad samples from write_binary_recorder (#1750)
Refactor to_dict() to allow recursive dict expansion in BaseExtractor (#1762)
num_chan to num_channels in BinaryRecordingExtractor (#1754)
Fix sampling_frequency_max_diff kwarg for recording concat (#1770)
Optional check_spike_frames in sorting.frame_slice (#1771)
Add _is_json_serializable to extractor (#1775)
Fixed num_chan warning (#1776)
Check probe in waveform extractor and add has_probe method (#1777, #1788)
- extractors:
Various Blackrock fixes (#1404)
Fix in PhyKilosortSortingExtractor (#1453)
Propagate use_names_as_ids to Intan extractor (#1422)
NWBRecordingExtractor: retrieve max number of channels given by electrical series (#1492)
Add original_cluster_id to PhySortingExtractor (#1518)
Remove insecure eval for importlib in neo extractors (#1551)
Refactor nwb extractor (#1513)
Update mearec recording and sorting to read only required data (#1550)
Adapt CellExplorerSortingExtractor to new format (#1628)
Fix CBIN slicing (#1680)
Allow PhyExtractor to handle splits from Phy (#1718)
Add original folder to phy extractor (#1723)
Add xml_file_path option to Neuroscope (#1687)
Make NWB imports lazy (#1675)
Neo sorting refactor (#1626)
Exclude end_frame in PhyKilosort get_unit_spike_train (#1772)
Simplify CellExplorer sorting with pymat reader (#1780)
Kilosort does not return empty units by default (#1783)
Remove ‘is_writable’ and ‘has_default_locations’ (#1789)
- preprocessing:
Fix typo in class ClipRecording (#1430)
Remove to_dict mechanism in pre-processing (#1446)
Add some preprocessing tools (general and LFP-oriented) (#1415)
Improve whitening and zscore arguments (#1437)
Silence interval (#1310)
Gaussian filter implementation (#973)
Fixed wrong inter_sample_shift for NP1.0 AP channels (#1511)
Fixed IndexError when interpolating artifacts (#1549)
Match IBL highpass spatial filtering more closely (#1589)
More LFP-oriented preprocessing tools (#1673)
Deal with unsigned int to int conversion (#1707)
Add preprocessing for padding traces (#1706)
High level function for drift : correct_motion() (#1300)
- sorters:
Add channel_labels to Probe bunch for pykilosort (#1435)
Add mountainsort5 sorter (#1519)
Save motion and skip preprocessing option in Kilosort2.5 (#1418)
Added cleanup of temp files after Kilosort run (#1709)
Point to correct folder to get runtime_trace from sorter (#1743)
Add recursive=True when caching objects before container (#1698)
Fix KS padded recording (#1766)
Make recording JSON relative_to output_folder default for BaseSorter (#1753)
Deprecate run_*** functions (#1768)
- postprocessing:
Remove to_dict in postprocessing module (#1455)
Check wvf_extractor with recording for spike amplitudes (#1545)
Add amplitude_scaling implementation (#1503)
Fix cosine similarity matrix in TemplateComparison (#1701)
Pass tmp_folder as parameter for compute_principal_components (#1762)
- qualitymetrics:
Add min_spikes to slidingRP_violations (support unit with no spike) (#1439)
Add mean_fr_ratio_thresh kwarg to presence_ratio metric (#1420)
Add min_fr kwarg to nn_isolation and nn_noise_overlap (#1443)
Return nn_unit_id along with nn_isolation (#1500)
NN metrics performance: Compute we n_spikes/fr out of main_loop (#1499)
Add silhouette score quality metric (#1517)
Fix bug in contamination if unit is empty (#1544)
Change v_peak name and thresholder behavior (#1580)
Fix dtype bug in Windows for spost.compute_refrac_period_violations (#1613)
Handle empty units in quality metrics (#1783)
- comparison:
Remove to_dict() mechanism in comparisons module (#1461)
Fix MultiSortingComparison._populate_spiketrains to prevent overwriting agreement sorting spiketrains (#1560)
- curation:
Remove to_dict mechanism in curation module (#1456)
Add pairs with decreased score to auto_merge output (#1604)
Allow new_unit_id to be same id in CurationSorting.merge (#1658)
Use censored_period when merging units in scur.merge_units (#1657)
Fixed crash when loading MergeUnitsSorting (#1671)
Add censorship of correlograms in scur.auto_merge (#1659)
Fixed bug in remove_duplicated_spikes (#1711)
Optimization of curation.RemoveExcessSpikeSorting (#1714)
Fix bug in auto_merge with no units (#1733)
Fix crash in CurationSorting with empty sorting (#1738)
- exporters:
Fix crash in export_to_phy (#1539)
Take care of BinaryFolderRecording in export_to_phy (#1716)
- widgets:
Hide Y axis when plot_timeseries without channel labels (#1475)
Fix sortingview timeseries bug (#1460)
Update SV curation mechanism (#1416)
Fix Sortingview scalebar (#1507)
Fixes plot_unit_waveforms bug (#1578)
Fix SV plot_templates when unit ids are integers (#1676)
Patch for spikes_on_traces (#1726)
- sortingcomponents:
Add a savgol denoiser for the waveforms (#1414)
Localization from templates (#1474)
Refactor detect_peak() (#1486)
Add a WaveformThresholder (#1502)
Choices of Feature for the monopolar triangulation (#1510)
Change _ind for _index in peak_dtype for sortingcomponents (#1534, #1535, #1556, #1558, #1571)
Refactor detect peak tests without testing recall (#1564)
Fix torch detector for case when non peaks are found (#1572)
Sign consistency test in peak detection (#1574)
Add iterative peak detection (#1563)
Template matching bug (#1611)
Adding percentile as an option for grid localization (#1587)
Add New Benchmarks for Matching (#1625)
Template Matching Method from Paninski Lab (#1448)
Benchmark motion (#1438)
- docs:
Add Numba to requirements of spykingcircus2 in the documentation (#1445)
Improve Documentation (#1471)
Typo in aggregation section (#1477)
Updated OpenEphysBinaryRecordingExtractor doc (#1449, #1451)
Improve Documentation VI (Docstrings + Asserts) (#1501)
Improve installation instructions (#1540)
Fix wrong path in read the docs (#1555)
Add development section to docs (#1577)
Update Docstrings I (Widgets Module) (#1598)
Documentation-Fix RST formatting Typos (#1655)
Typo in NumpyExtractor.from_dict doc (#1664)
Extend waveform docs to cover ‘portability’ (#1634)
Install python-neo and probeinterface from main in docs (#1677)
Add wobble to the docs (#1686)
Update doc merge_units (#1749)
Add docs on SI version in cointainer #1786
- ci / packaging / tests:
Use full tests with code coverage for build status in README.md (#1442)
Update pyproject.toml to include numba in full installation (1573)
Set line-length to 120 and reformat black (#1488)
Refactor package installation in CI (#1516)
Refactor CI tests (#1532, #1533, #1531, #1529)
Warning that setup.py is legacy (#1524)
Use latest version of neo in tests (#1505)
Make gin-data-caches great again (#1552)
Fix path in singularity tests (#1569)
Check extractor properties (#1562)
Testing and profiling imports (#1597)
Add pre-commit-config file (#1632)
Black formatting (#1633, #1645)
Enable filtering warnings for distutils and imp (#1635)
Refactor clustering tests (#1620)
Refactor write_binary_recording tests (#1668)
Add docker container tests (#1764)
Add GPU container tests (#1767)