Standalone utilities for working with pose data from SLEAP and other tools.
Project description
sleap-io
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 102ab096a3ec70d1e8a7f9da1f60807510084fac65dfee6f1e295638781084da |
|
MD5 | 1e574e08010261b577a63332934b15c3 |
|
BLAKE2b-256 | 9796658d0beb74704e73cb91a6a76515d5ca2bd7f5402e047a31543d9c3c9e4e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4b3028a30d52891d4260daf89e30901eb28c8c23afea4e62df0bda2ab4c9766 |
|
MD5 | 6776f86f15d6f409435dde9591ab256a |
|
BLAKE2b-256 | 27947660a1681936c884032c6930bc6a0c9ffee77433b90d3e17f4b3b064418e |