Skip to content

Releases: talmolab/sleap

SLEAP v1.2.9

11 Nov 15:02
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.9. This release has lots of bug fixes, a few GUI enhancements, and one CLI fix.

See the release notes for v1.2.0, v1.2.1, v1.2.2, v1.2.7 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.9

pip (any OS):

pip install sleap==1.2.9

See the Installation page in the docs for more info.

Highlights

  • Prefer user instances when calling Labels.numpy() (#996)
  • Add upper limit of the instance count in prediction score labeling suggestion method (#981)
  • Add more options to render video: wedges, palette, and distinctly color (#998)
  • Always draw user instances even if all nodes marked as not visible (#1002)
  • Add frame chunk method in labeling suggestions (#1007)

Full changelog

Documentation

  • Add sample movies to docs (#992)
  • Fix docs in Model_evaluation.ipynb (#1034)

Enhancements

  • Prefer user instances when calling Labels.numpy() (#996)
  • Add more options to render video: wedges, palette, and distinctly color (#998)
  • Add upper limit of the instance count in prediction score labeling suggestion method (#981)
  • Speed-up cache for multi-video projects (#1017)
  • Increase max number for target instances in simple tracker form (#1037)
  • Share usage data #1038
  • Add frame chunk method in labeling suggestions (#1007)

Fixes

  • Fix printing of auto-selected GPU free memory (#955)
  • Fix add suggestions when target is current video (#956)
  • Fix sleap-export cli arg parsing (#962)
  • Fix cattr in Python 3.9 (#967)
  • Fix editing track name clears the old entry on double-click (#980)
  • Prune saved shifted instances (#1001)
  • Update suggestions upon video removal (#1009)
  • Correctly add .h5 extension to analysis files on Linux (#1010)
  • GUI Table: Do not set item value if same as current value (#1022)
  • Always draw user instances even if all nodes marked as not visible (#1002)
  • Shifted instances: make sure ref_instances is not empty (#1029)
  • Trails prefer user instances over predicted (#1036)

SLEAP v1.2.8

13 Sep 20:44
29e364c
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.8. This release is a hotfix for a couple of issues in v1.2.7.

See the release notes for v1.2.0, v1.2.1, v1.2.2, v1.2.7 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.8

pip (any OS):

pip install sleap==1.2.8

See the Installation page in the docs for more info.

Full changelog

Fixes

  • Add test and fix for GPU memory query (#946, #949, #950)
  • Fix sleap-export CLI and add docs (#951)

SLEAP v1.2.7

11 Sep 22:54
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.7. This release merges the m1 branch with the main branch along with the usual bug fixes, new feature enhancements, and documentation updates.

See the release notes for v1.2.0, v1.2.1, and v1.2.2 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.7

pip (any OS):

pip install sleap==1.2.7

See the Installation page in the docs for more info.

Highlights

  • M1 Mac support (#886)
  • Fix shifted predictions on multi-resolution projects (#902)
  • Add GPU Memory Polling Function (#911)
  • Run sleap-track on video using index (#920)

Full changelog

Documentation

  • Add more documentation for nwb extension (#861)
  • Add conda downloads badge to README (#869)
  • Update link to contributing guideline
  • Update CLA

Enhancements

  • Integrate retracking into sleap-track (#898)
  • M1 Mac support (#886)
  • Run sleap-track on video using index (#920)
  • Use saved optical flow to use only on adjacent frames (#870)
  • Modify inference and centroid model to allow Bonsai ingestion (#850)
  • Append Unique Suggestions (#874)
  • Add GPU Memory Polling Function (#911)

Fixes

  • Add new track to linked predicted instance (#879)
  • Edit CI workflow to run on forked PRs
  • Fix naming convention for sleap-convert (#881)
  • Fix cropping when rendering video (#842)
  • Fix shifted predictions on multi-resolution projects (#902)
  • Redraw plot to update trails after moving node (#910)
  • Force node to be placed w/in video (#912)

SLEAP v1.2.6

26 Jul 16:38
6109e09
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.6. This release is a hotfix for a conda packaging issue introduced in v1.2.5.

See the release notes for v1.2.0, v1.2.1, v1.2.2, v1.2.3, v1.2.4, v1.2.5 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.6

pip (any OS):

pip install sleap==1.2.6

See the Installation page in the docs for more info.

Highlights

N/A

Full changelog

Documentation

N/A

Enhancements

N/A

Fixes

  • Fix conda packaging for pynwb and ndx-pose (#860)

SLEAP v1.2.5

24 Jul 01:10
18b25b2
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.5. This release contains an adaptor for reading/writing NWB Files using ndx-pose, some bug fixes, and minor documentation update.

See the release notes for v1.2.0, v1.2.1, and v1.2.2 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.5

pip (any OS):

pip install sleap==1.2.5

See the Installation page in the docs for more info.

Highlights

Add read/write adaptor for ndx-pose (#835, #845)

Full changelog

Documentation

Update assisted-labeling docs, installation docs, and environment_no_cuda.yml (#847)

Enhancements

Add read/write adaptor for ndx-pose (#835, #845)
Expose attributes of NWBFile and create Labels API for exporting to NWB (#855)

Fixes

Change existing skeleton to match loaded skeleton (#840)
Recalculate crop size if user-specified crop size indivisible by max stride (#841)

SLEAP v1.2.4

29 Jun 17:48
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.4. This release contains some bug fixes, new feature enhancements, and documentation updates.

See the release notes for v1.2.0, v1.2.1, and v1.2.2 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.4

pip (any OS):

pip install sleap==1.2.4

See the Installation page in the docs for more info.

Highlights

  • Add option to predict on all videos (#749)
  • Add dropdown to choose video to generate suggestions on (#786)
  • Add button to toggle grayscale of current video (#788)

Full changelog

Documentation

  • Add links to discussion (#748)
  • Contributing Guide, Code of Conduct, and Issues Template (#746)
  • Update tracking docs (#761)

Enhancements

  • Add option to predict on all videos (#749)
  • Create multiple analysis files for multi-video projects (#768)
  • Add button to toggle grayscale of current video (#788)
  • Choose video to generate suggestions (#786)
  • Add CLI sleap-render command to render videos (#796)
  • Allow user to set grayscale when replacing videos (mp4/avi only) (#787)
  • Support grayscale for SingleImageVideo backend (#789)

Fixes

  • Generate suggestions for videos with less frames than samples per video (#781) (#783)
  • Fix h5py dependency (#815)
  • Remove low-scoring predictions before merging inference results (#817)

SLEAP v1.2.3

10 May 23:23
20903cb
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.3. This release contains some bug fixes and new feature enhancements.

See the release notes for v1.2.0, v1.2.1, and v1.2.2 for previous major changes.

Note: In this release, we transition from the murthylab GitHub organization to the talmolab organization. Let us know if run into any issues with outdated links through the GUI or website.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.3

pip (any OS):

pip install sleap==1.2.3

See the Installation page in the docs for more info.

Highlights

  • Add support for importing AlphaTracker annotations
  • Add support for new DeepLabCut labels formats

Full changelog

Enhancements

  • Add edges to analysis h5 (#707)
  • Speed-up labeling suggestions look-up (#709)

Fixes

  • Add support for new single animal DLC format (#704)
  • Update links from murthylab to talmolab (#724)
  • Pinned the pip conda package to conda-forge::pip<=22.0.3 to fix hanging issues (#724, #726)

SLEAP v1.2.2

03 Apr 23:12
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.2. This release contains some bug fixes and new feature enhancements.

See the release notes for v1.2.0 and release notes for v1.2.1 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.2

pip (any OS):

pip install sleap==1.2.2

See the Installation page in the docs for more info.

Highlights

  • Major inference speed improvements of 2-4x when using the high-level API:
    Old:
    inference old
    New:
    inference new freeze

  • New training monitor statistics and more detailed graphics in the loss plot:
    image

Full changelog

Enhancements

  • Add support for new maDLC labels format (#678)
  • Training monitor enhancements (implements #624) (#691)
  • Add hide instance menu item and hotkey (H) (implements #665) (#692, #694)

Fixes

  • Fix numpy conversion in inference (#687)
  • Fix topological sorting to always start with root node (#688)
  • Create unique default shortcuts (fixes #686) (#690)
  • Fix formatting to read and save tracking scores (#693)

SLEAP v1.2.1

21 Mar 04:14
6035702
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.1. This release contains a small number of hotfixes. See the release notes for v1.2.0 for previous major changes.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.1

pip (any OS):

pip install sleap==1.2.1

See the Installation page in the docs for more info.

Full changelog

  • Add support for new maDLC labels format (#678)

  • Enable TensorFlow 2.8 support (#683)

    • Fixes Colab support (#680)
  • Add experimental support for supervised ID models (#679)

    • Note: This is being released for backward compatibility, but it should be considered strictly experimental. It is not yet available in the GUI. Full functionality will be documented in a future release.

SLEAP v1.2.0

15 Mar 21:53
Compare
Choose a tag to compare

Stable release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP to enable support for newer NVIDIA GPUs, including TensorFlow 2.6. In addition, this release contains a long list of bug fixes and minor enhancements in both the GUI and the backend.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.0

pip (any OS):

pip install sleap==1.2.0

Highlights

  • SLEAP now uses Python 3.7, but is compatible with 3.8 and 3.9 (where dependencies are available for your OS).
  • SLEAP now uses TensorFlow 2.6.3, but is compatible with 2.7.x.
  • SLEAP now supports newer NVIDIA GPUs such as the 3000 series and A100s.

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620) (Fixes #604)

  • Drag and drop support for videos and projects (#632)

  • Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)

  • Training job generation tweaks (#642)

    • Training job package exports a jobs.yaml that describes the training/inference tasks.
    • Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
  • Fix path resolution in training & inference (#643) (Fixes #634)

  • Fix regression in #639 breaking multi-size inference (#645)

  • Fix data loading regression in #634 (#646)

  • Bump minor versions and relax some constraints (#647)

  • Use rich to print inference CLI inputs and provenance (#651)

  • Make PAF distance penalty more usable (#650)

    • Adds CLI args:
  --max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
                        The maximum expected length of a connected pair of
                        points as a fraction of the image size. Candidate
                        connections longer than this length will be penalized
                        during matching. Only applies to bottom-up (PAF)
                        models.
  --dist_penalty_weight DIST_PENALTY_WEIGHT
                        A coefficient to scale weight of the distance penalty.
                        Set to values greater than 1.0 to enforce the distance
                        penalty more strictly. Only applies to bottom-up (PAF)
                        models.
  • Fix multi-video inference through the GUI (#655)

  • Fix some dependencies during build (#656)

  • Lazy evaluation of frame list when provided to inference CLI (#659) (fixes #657)

  • Build conda package using tensorflow 2.6.3 (#660)

    • Pinned these conda packages for the build:
      • conda-forge::numpy=1.19.5
      • sleap::tensorflow=2.6.3
      • conda-forge::pyside2=5.13.2
      • conda-forge::h5py=3.1.0
      • conda-forge::scipy=1.7.3
    • And these pip packages:
      • imageio==2.15.0
      • certifi==2021.10.8

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c nvidia -c conda-forge sleap=1.2.0

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0