Skip to main content

py-URD

A Python port of URD (Farrell et al., Science 2018) — branching trajectory inference for single-cell RNA-seq via flood-based pseudotime + biased random walks.

  • Pure NumPy / SciPy implementation
  • v0.1 ships the core algorithmic pipeline:
    • floodPseudotime — probabilistic BFS over the diffusion-map transition graph
    • floodPseudotimeProcess — aggregate runs into a per-cell pseudotime
    • simulateRandomWalksFromTips — biased random walks for lineage attribution
    • processRandomWalks — collapse walks into per-cell visit frequencies
  • Pseudotime parity vs R URD on Guo qPCR data (428 cells): Spearman 0.985, Pearson 0.992 (threshold 0.80).

Install

pip install pyurd-bio

(module name is pyurd; the PyPI distribution name pyurd was taken, so this package ships as pyurd-bio.)

Quick-start

import pydestiny, pyurd
# 1. Diffusion map for the transition matrix
dm = pydestiny.DiffusionMap.fit(expression, sigma="local", n_eigs=10)
# 2. URD object wrapping cells + transition matrix
urd = pyurd.URD(cell_names=cell_ids, transitions=dm.transitions,
                dm_eigenvectors=dm.eigenvectors, dm_eigenvalues=dm.eigenvalues)
# 3. Flood pseudotime from a cluster of root cells
floods = pyurd.floodPseudotime(urd, root_cells=root_ids, n=50,
                                minimum_cells_flooded=1, seed=42)
pt    = pyurd.floodPseudotimeProcess(floods, max_frac_NA=0.9)["pseudotime"]
# 4. Biased random walks from tips
walks = pyurd.simulateRandomWalksFromTips(
    urd, pseudotime=pt,
    tip_cells={"lineage_A": [cell_a1, cell_a2], "lineage_B": [cell_b1]},
    n_per_tip=1000, seed=42)
visit_freq = pyurd.processRandomWalks(walks)

Function map

Python R Status
floodBuildTM floodBuildTM ✅
floodPseudotimeCalc floodPseudotimeCalc ✅
floodPseudotime floodPseudotime ✅
floodPseudotimeProcess floodPseudotimeProcess ✅
simulateRandomWalksFromTips simulateRandomWalksFromTips ✅ (simplified)
processRandomWalks processRandomWalks ✅
URD / createURD URD class (S4) / createURD ✅ (minimal)
buildTree buildTree ⏳ v0.2
loadTipCells loadTipCells ⏳ v0.2
tipPotential tipPotential ⏳ v0.2
treeForceDirectedLayout treeForceDirectedLayout ⏳ v0.2
~110 plotting / S4-method / dropseq-import / NMF-doublets functions (various) ⛔ v0.3+

Known limitations (v0.1)

  1. Tree-building deferred (buildTree, assignCellsToSegments, divergence statistics) → v0.2.
  2. Tip selection algorithms (tipPotential, clusterTipPotential) deferred → v0.2.
  3. Force-directed tree layout deferred → v0.2.
  4. Random walks in v0.1 use only the forward/back biasing by pseudotime; R's URD also supports a step-size weighting and a more nuanced cell-distance threshold that we will add in v0.2.
  5. dropseq DGE preprocessing, NMF doublets, batch correction, gene cascades, impulse models — all deferred to v0.3+ (these are large standalone modules in URD that we won't reproduce in Python).

Citation

Farrell, J. A. et al. Single-cell reconstruction of developmental trajectories during zebrafish embryogenesis. Science 360, eaar3131 (2018).

License

MIT.

Metadata

Release files for pyurd-bio 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyurd-bio 0.2.0
File Size Uploaded
pyurd_bio-0.2.0.tar.gz 13.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyurd-bio 0.2.0
File Interpreter ABI Platform
pyurd_bio-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.2 kB

Release files / pyurd_bio-0.2.0.tar.gz

Download URL pyurd_bio-0.2.0.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
409aafb43225a45c5b0900fb37a5176f4af9c90a26a1122bfea50f12f48ca793
BLAKE2b-256 checksum
How to use checksums
5c7d6be775347abd123cfb3d00a9f88073224b17508cee00ab2fdf11b9842344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2026.

Transparency log

Release files / pyurd_bio-0.2.0-py3-none-any.whl

Download URL pyurd_bio-0.2.0-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1dc667dcd1dcc7c3baa298348b3032b011662a227f662569c6388fe89cbedf5c
BLAKE2b-256 checksum
How to use checksums
9c46db3095f514bc008d4953722f67c6eec33c40c0b4e5067b6f3f7b722598b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page