Skip to main content

Analysis tools for SLEAP-based plant root phenotyping.

Project description

sleap-roots

CI codecov Release PyPI

Analysis tools for SLEAP-based plant root phenotyping.


📦 Installation

pip install sleap-roots

If you are using conda (recommended):

conda create -n sleap-roots python=3.11
conda activate sleap-roots
pip install sleap-roots

🌱 Usage

Trait pipelines supported:

  • DicotPipeline – Primary + lateral roots (e.g. soy, canola)
  • YoungerMonocotPipeline – Primary + crown roots (e.g. early rice)
  • OlderMonocotPipeline – Crown roots only (e.g. later rice)
  • PrimaryRootPipeline – Primary root only
  • LateralRootPipeline – Lateral roots only
  • MultipleDicotPipeline – Multi-plant dicot setup (batch from a single image)

🔁 Example: Dicot Pipeline

1. Compute traits for a single plant

import sleap_roots as sr

series = sr.Series.load(
    series_name="919QDUH",
    h5_path="tests/data/canola_7do/919QDUH.h5",
    primary_path="tests/data/canola_7do/919QDUH.primary.slp",
    lateral_path="tests/data/canola_7do/919QDUH.lateral.slp"
)

pipeline = sr.DicotPipeline()
traits = pipeline.compute_plant_traits(series, write_csv=True)

2. Compute traits for a batch

paths = sr.find_all_slp_paths("tests/data/soy_6do")
plants = sr.load_series_from_slps(paths, h5s=True)

pipeline = sr.DicotPipeline()
batch_df = pipeline.compute_batch_traits(plants, write_csv=True)

3. Use a single trait utility

from sleap_roots.lengths import get_root_lengths

pts = series.get_primary_points(frame_idx=0)
lengths = get_root_lengths(pts)

📓 Notebooks & Tutorials

Explore tutorials under notebooks/:

cd notebooks
jupyter lab

You can use the test data in tests/data or replace it with your own.


🧪 Development

  1. Clone the repository:
git clone https://github.com/talmolab/sleap-roots && cd sleap-roots
  1. Create the conda environment:
conda env create -f environment.yml
conda activate sleap-roots

This includes dev dependencies and installs the package in editable mode (--editable=.[dev]).

  1. Run tests:
pytest tests
  1. Remove the environment (optional):
conda env remove -n sleap-roots

📖 Trait Reference

See the latest trait documentation here:

👉 HackMD: sleap-roots Trait Docs


🤝 Acknowledgments

Created by the Talmo Lab and Busch Lab at the Salk Institute, as part of the Harnessing Plants Initiative.

Contributors

  • Elizabeth Berrigan
  • Lin Wang
  • Andrew O'Connor
  • Talmo Pereira

Citation

E.M. Berrigan et al., "Fast and Efficient Root Phenotyping via Pose Estimation", Plant Phenomics.
DOI: 10.34133/plantphenomics.0175

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

sleap_roots-0.1.4-py3-none-any.whl (45.4 kB view details)

Uploaded Python 3

File details

Details for the file sleap_roots-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: sleap_roots-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 45.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for sleap_roots-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e51dc83cb879d2563dd8adbda58890e154c5fd6290dc21e8cfa3c51301a76efa
MD5 4067663452be3f6d482acce68159297c
BLAKE2b-256 274c70e936e37d28fb9222bb61e88410fa76b08f91d71f246686caaf0feeb973

See more details on using hashes here.

Supported by

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