Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare release 0.101.1 #3370

Merged
merged 23 commits into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c5fc749
(wip) 0.101.1
alejoe91 Sep 5, 2024
f73acfe
Add date format in auto-release-notes
alejoe91 Sep 5, 2024
71a5b09
Apply suggestions from code review
alejoe91 Sep 5, 2024
7a4087b
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 12, 2024
992716f
Update release notes
alejoe91 Sep 12, 2024
8209344
Update version to 0.102.0
alejoe91 Sep 12, 2024
4932313
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 13, 2024
c769f54
Revert back to 0.101.1
alejoe91 Sep 13, 2024
cd02d5e
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 15, 2024
2cb4f7c
Update release notes
alejoe91 Sep 15, 2024
f2d1f07
Add #3414 PR
alejoe91 Sep 16, 2024
719f53f
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 16, 2024
9456e05
Add PR #3415
alejoe91 Sep 16, 2024
4da8298
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 16, 2024
9cc8c2d
Fix plot_sorting_summary after #3412 with to_numpy()
alejoe91 Sep 16, 2024
81e53ab
Fix plot_sorting_summary after #3412 with to_numpy() 2
alejoe91 Sep 16, 2024
2a1ecce
Fix plot_sorting_summary after #3412 with to_numpy() 3
alejoe91 Sep 16, 2024
6fb9fe6
Update doc/releases/0.101.1.rst
alejoe91 Sep 16, 2024
7917a55
Apply suggestions from code review
alejoe91 Sep 16, 2024
ca0d99c
Add #3417
alejoe91 Sep 16, 2024
134b6cb
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 16, 2024
12f089b
Add #3408
alejoe91 Sep 16, 2024
086e8c7
Merge branch 'main' of github.com:SpikeInterface/spikeinterface into …
alejoe91 Sep 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/releases/0.101.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
SpikeInterface 0.101.0 release notes
------------------------------------

Estimated: 19th July 2024
19th July 2024

Main changes:

Expand Down
143 changes: 143 additions & 0 deletions doc/releases/0.101.1.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
.. _release0.101.1:

SpikeInterface 0.101.1 release notes
------------------------------------

13th September 2024
alejoe91 marked this conversation as resolved.
Show resolved Hide resolved

Main changes:

* Enabled support for consolidated Zarr-backend for `SortingAnalyzer`, including cloud support (#3314, #3318, #3349, #3351)
* Improved support for Kilosort4 **ONLY VERSIONS >= 4.0.16** (#3339, #3276)
* Skip recomputation of quality and template metrics if already computed (#3292)
* Improved `estimate_sparsity` with new `amplitude` method and and deprecated `from_ptp` option (#3369)
alejoe91 marked this conversation as resolved.
Show resolved Hide resolved
* Dropped support for Python<3.9 (#3267)

core:

* Refactor pandas save load and convert dtypes (#3412)
* Check run info completed only if it exists (back-compatibility) (#3407)
* Fix argument spelling in check for binary compatibility (#3409)
* Fix proposal for channel location when probegroup (#3392)
* Fix time handling test memory (#3379)
* Add `BaseRecording.reset_times()` function (#3363, #3380, #3391)
* Extend `estimate_sparsity` methods and update `from_ptp`` (#3369)
* Add `load_sorting_analyzer_or_waveforms` function (#3352)
* Fix zarr folder suffix handling (#3349)
* Analyzer extension exit status (#3347)
* Lazy loading of zarr timestamps (#3318)
* Enable cloud-loading for analyzer Zarr (#3314, #3351, #3378)
* Refactor `set_property` in base (#3287)
* Job kwargs fix (#3259)
* Add `is_filtered` to annotations in `binary.json` (#3245)
* Add check for None in `NoiseGeneratorRecordingSegment`` get_traces() (#3230)

extractors:

* Load phy channel_group as group (#3368)
* "quality" property to be read as string instead of object in `BasePhyKilosortSortingExtractor` (#3365)

preprocessing:

* Auto-cast recording to float prior to interpolation (#3415)
* Update doc handle drift + better preset (#3232)
* Add causal filtering to filter.py (#3172)

sorters:

* Updates to kilosort 4: version >= 4.0.16, `bad_channels`, `clear_cache`, `use_binary_file` (#3339)
* Download apptainer images without docker client (#3335)
* Expose save preprocessing in ks4 (#3276)
* Fix KS2/2.5/3 skip_kilosort_preprocessing (#3265)
* HS: Added lowpass parameter, fixed verbose option (#3262)
* Now exclusive support for HS v0.4 (Lightning) (#3210)

postprocessing:

* Add extra protection for template metrics (#3364)
* Protect median against nans in get_prototype_spike (#3270)
* Fix docstring and error for spike_amplitudes (#3269)

qualitymetrics:

* Do not delete quality and template metrics on recompute (#3292)
* Refactor quality metrics tests to use fixture (#3249)


curation:

* Clean-up identity merges in `get_potential_auto_merges` (#3346)
* Fix sortingview curation no merge case (#3309)
* Start apply_curation() (#3208)

widgets:

* Fix plot motion for multi-segment (#3414)
* Sortingview: only round float properties (#3406)
* Fix widgets tests and add test on unit_table_properties (#3354)
* Allow quality and template metrics in sortingview's unit table (#3299)
* Add subwidget parameters for UnitSummaryWidget (#3242)
* Fix `ipympl`/`widget` backend check (#3238)

generators:

* Handle case where channel count changes from probeA to probeB (#3237)

sortingcomponents:

* Update doc handle drift + better preset (#3232)
* Make `InterpolateMotionRecording`` not JSON-serializable (#3341)

documentation:

* Clarify meaning of `delta_time` in `compare_sorter_to_ground_truth` (#3360)
* Added sphinxcontrib-jquery (#3307)
* Adding return type annotations (#3304)
* More docstring updates for multiple modules (#3298)
* Fix sampling frequency repr (#3294)
* Proposal for adding Examples to docstrings (#3279)
* More numpydoc fixes (#3275)
* Fix docstring and error for spike_amplitudes (#3269)
* Fix postprocessing docs (#3268)
* Fix name of principal_components ext in qm docs (take 2) (#3261)
* Update doc handle drift + better preset (#3232)
* Add `int` type to `num_samples` on `InjectTemplatesRecording`. (#3229)

continuous integration:

* Fix streaming extractor condition in the CI (#3362)

packaging:

* Minor typing fixes (#3374)
* Drop python 3.8 in pyproject.toml (#3267)

testing:

* Fix time handling test memory (#3379)
* Fix streaming extractor condition in the CI (#3362)
* Test IBL skip when the setting up the one client fails (#3289)
* Refactor `set_property` in base (#3287)
* Refactor quality metrics tests to use fixture (#3249)
* Add kilosort4 wrapper tests (#3085)
* Test IBL skip when the setting up the one client fails (#3289)
* Add kilosort4 wrapper tests (#3085)

Contributors:

* @Djoels
* @JoeZiminski
* @JuanPimientoCaicedo
* @alejoe91
* @app/pre-commit-ci
alejoe91 marked this conversation as resolved.
Show resolved Hide resolved
* @chrishalcrow
* @cwindolf
* @florian6973
* @h-mayorquin
* @jiumao2
* @jonahpearl
* @mhhennig
* @rkim48
* @samuelgarcia
* @tabedzki
* @zm711
2 changes: 1 addition & 1 deletion doc/scripts/auto-release-notes.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 START_DATE END_DATE [LABEL] [BRANCH1,BRANCH2] [LIMIT]"
echo "Usage: $0 START_DATE (format: YEAR-MM-DD) END_DATE [LABEL] [BRANCH1,BRANCH2] [LIMIT]"
exit 1
fi

Expand Down
11 changes: 11 additions & 0 deletions doc/whatisnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Release notes
.. toctree::
:maxdepth: 1

releases/0.101.1.rst
releases/0.101.0.rst
releases/0.100.8.rst
releases/0.100.7.rst
Expand Down Expand Up @@ -43,6 +44,16 @@ Release notes
releases/0.9.1.rst


Version 0.101.1
===============

* Enabled support for consolidated Zarr-backend for `SortingAnalyzer`, including cloud support (#3314, #3318, #3349, #3351)
* Improved support for Kilosort4 **ONLY VERSIONS >= 4.0.16** (#3339, #3276)
* Skip recomputation of quality and template metrics if already computed (#3292)
* Improved `estimate_sparsity` with new `amplitude` method and and deprecated `from_ptp` option (#3369)
alejoe91 marked this conversation as resolved.
Show resolved Hide resolved
* Dropped support for Python<3.9 (#3267)


Version 0.101.0
===============

Expand Down
16 changes: 8 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,16 @@ test_core = [

# for github test : probeinterface and neo from master
# for release we need pypi, so this need to be commented
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
]

test_extractors = [
# Functions to download data in neo test suite
"pooch>=1.8.2",
"datalad>=1.0.2",
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
]

test_preprocessing = [
Expand Down Expand Up @@ -173,8 +173,8 @@ test = [

# for github test : probeinterface and neo from master
# for release we need pypi, so this need to be commented
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
]

docs = [
Expand All @@ -197,8 +197,8 @@ docs = [
"datalad>=1.0.2",

# for release we need pypi, so this needs to be commented
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git", # We always build from the latest version
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git", # We always build from the latest version
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git", # We always build from the latest version
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git", # We always build from the latest version

]

Expand Down
4 changes: 2 additions & 2 deletions src/spikeinterface/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@
# This flag must be set to False for release
# This avoids using versioning that contains ".dev0" (and this is a better choice)
# This is mainly useful when using run_sorter in a container and spikeinterface install
DEV_MODE = True
# DEV_MODE = False
# DEV_MODE = True
DEV_MODE = False
3 changes: 3 additions & 0 deletions src/spikeinterface/widgets/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,9 @@ def plot_sortingview(self, data_plot, **backend_kwargs):
values = check_json(metrics.loc[unit_id].to_dict())
values_skip_nans = {}
for k, v in values.items():
# convert_dypes returns NaN as None or np.nan (for float)
if v is None:
continue
if np.isnan(v):
continue
values_skip_nans[k] = v
Expand Down
2 changes: 1 addition & 1 deletion src/spikeinterface/widgets/tests/test_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def setUpClass(cls):
spike_amplitudes=dict(),
unit_locations=dict(),
spike_locations=dict(),
quality_metrics=dict(metric_names=["snr", "isi_violation", "num_spikes"]),
quality_metrics=dict(metric_names=["snr", "isi_violation", "num_spikes", "amplitude_cutoff"]),
template_metrics=dict(),
correlograms=dict(),
template_similarity=dict(),
Expand Down
8 changes: 4 additions & 4 deletions src/spikeinterface/widgets/utils_sortingview.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,9 @@ def generate_unit_table_view(
if prop_name in sorting_props:
property_values = sorting.get_property(prop_name)
elif prop_name in qm_props:
property_values = qm_data[prop_name].values
property_values = qm_data[prop_name].to_numpy()
elif prop_name in tm_props:
property_values = tm_data[prop_name].values
property_values = tm_data[prop_name].to_numpy()
else:
warn(f"Property '{prop_name}' not found in sorting, quality_metrics, or template_metrics")
continue
Expand Down Expand Up @@ -137,9 +137,9 @@ def generate_unit_table_view(
if prop_name in sorting_props:
property_values = sorting.get_property(prop_name)
elif prop_name in qm_props:
property_values = qm_data[prop_name].values
property_values = qm_data[prop_name].to_numpy()
elif prop_name in tm_props:
property_values = tm_data[prop_name].values
property_values = tm_data[prop_name].to_numpy()

# Check for NaN values and round floats
val0 = np.array(property_values[0])
Expand Down
Loading