Analysis tools for SLEAP-based plant root phenotyping.
pip install sleap-rootsuv is a fast Python package manager (10-100x faster than conda):
# Install uv (one-time setup)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone https://github.com/talmolab/sleap-roots && cd sleap-roots
uv sync
# Run commands
uv run pytest tests/
uv run black sleap_roots testsWhy uv? Environment setup in ~30 seconds (vs 10-15 minutes with conda) with reproducible builds via lockfile.
conda env create -f environment.yml
conda activate sleap-rootsTrait 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 onlyLateralRootPipeline– Lateral roots onlyMultipleDicotPipeline– Multi-plant dicot setup (batch from a single image)
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)Explore tutorials under notebooks/:
cd notebooks
jupyter labYou can use the test data in tests/data or replace it with your own.
# 1. Clone the repository
git clone https://github.com/talmolab/sleap-roots && cd sleap-roots
# 2. Install dependencies (creates .venv automatically)
uv sync
# 3. Run tests
uv run pytest tests/
# 4. Format code
uv run black sleap_roots tests
# 5. Check docstrings
uv run pydocstyle sleap_roots/Adding dependencies:
uv add numpy # Add runtime dependency
uv add --group dev pytest # Add dev dependency# 1. Clone the repository
git clone https://github.com/talmolab/sleap-roots && cd sleap-roots
# 2. Create environment
conda env create -f environment.yml
conda activate sleap-roots
# 3. Run tests
pytest tests/See the latest trait documentation here:
👉 HackMD: sleap-roots Trait Docs
Created by the Talmo Lab and Busch Lab at the Salk Institute, as part of the Harnessing Plants Initiative.
- Elizabeth Berrigan
- Lin Wang
- Andrew O'Connor
- Talmo Pereira
E.M. Berrigan et al., "Fast and Efficient Root Phenotyping via Pose Estimation", Plant Phenomics.
DOI: 10.34133/plantphenomics.0175