Skip to main content

Standalone utilities for working with pose data from SLEAP and other tools.

Project description

sleap-io

CI codecov Release PyPI PyPI - Python Version

Standalone utilities for working with animal pose tracking data.

This is intended to be a complement to the core SLEAP package that aims to provide functionality for interacting with pose tracking-related data structures and file formats with minimal dependencies. This package does not have any functionality related to labeling, training, or inference.

Installation

pip install sleap-io

For development, use one of the following syntaxes:

conda env create -f environment.yml
pip install -e .[dev]

See CONTRIBUTING.md for more information on development.

Usage

Load and save in different formats

import sleap_io as sio

# Load from SLEAP file.
labels = sio.load_file("predictions.slp")

# Save to NWB file.
sio.save_file(labels, "predictions.nwb")
# Or:
# labels.save("predictions.nwb")

Convert labels to raw arrays

import sleap_io as sio

labels = sio.load_slp("tests/data/slp/centered_pair_predictions.slp")

# Convert predictions to point coordinates in a single array.
trx = labels.numpy()
n_frames, n_tracks, n_nodes, xy = trx.shape
assert xy == 2

# Convert to array with confidence scores appended.
trx_with_scores = labels.numpy(return_confidence=True)
n_frames, n_tracks, n_nodes, xy_score = trx.shape 
assert xy_score == 3

Read video data

import sleap_io as sio

video = sio.load_video("test.mp4")
n_frames, height, width, channels = video.shape

frame = video[0]
height, width, channels = frame.shape

Create labels from raw data

import sleap_io as sio
import numpy as np

# Create skeleton.
skeleton = sio.Skeleton(
    nodes=["head", "thorax", "abdomen"],
    edges=[("head", "thorax"), ("thorax", "abdomen")]
)

# Create video.
video = sio.load_video("test.mp4")

# Create instance.
instance = sio.Instance.from_numpy(
    points=np.array([
        [10.2, 20.4],
        [5.8, 15.1],
        [0.3, 10.6],
    ]),
    skeleton=skeleton
)

# Create labeled frame.
lf = sio.LabeledFrame(video=video, frame_idx=0, instances=[instance])

# Create labels.
labels = sio.Labels(videos=[video], skeletons=[skeleton], labeled_frames=[lf])

# Save.
labels.save("labels.slp")

Support

For technical inquiries specific to this package, please open an Issue with a description of your problem or request.

For general SLEAP usage, see the main website.

Other questions? Reach out to talmo@salk.edu.

License

This package is distributed under a BSD 3-Clause License and can be used without restrictions. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sleap_io-0.2.0.tar.gz (80.0 kB view details)

Uploaded Source

Built Distribution

sleap_io-0.2.0-py3-none-any.whl (92.8 kB view details)

Uploaded Python 3

File details

Details for the file sleap_io-0.2.0.tar.gz.

File metadata

  • Download URL: sleap_io-0.2.0.tar.gz
  • Upload date:
  • Size: 80.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sleap_io-0.2.0.tar.gz
Algorithm Hash digest
SHA256 102ab096a3ec70d1e8a7f9da1f60807510084fac65dfee6f1e295638781084da
MD5 1e574e08010261b577a63332934b15c3
BLAKE2b-256 9796658d0beb74704e73cb91a6a76515d5ca2bd7f5402e047a31543d9c3c9e4e

See more details on using hashes here.

File details

Details for the file sleap_io-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sleap_io-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 92.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sleap_io-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b3028a30d52891d4260daf89e30901eb28c8c23afea4e62df0bda2ab4c9766
MD5 6776f86f15d6f409435dde9591ab256a
BLAKE2b-256 27947660a1681936c884032c6930bc6a0c9ffee77433b90d3e17f4b3b064418e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page