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)