YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

scPTR

Single-Cell Post-Transcriptional Regulatory Decomposition

scPTR estimates per-cell, per-gene mRNA degradation rates from scRNA-seq spliced/unspliced counts and uses them as a primary analytical axis — complementary to RNA velocity.

What scPTR does

  • Degradation rate estimation: Per-cell, per-gene gamma from kinetic steady-state relationships with kNN Gaussian-kernel smoothing
  • Expression-invisible states: Discovers cell subpopulations with distinct post-transcriptional programs undetectable by standard expression analysis
  • Post-transcriptional velocity: Neighbor-averaged gamma gradient that captures degradation dynamics orthogonal to RNA velocity
  • RBP-target networks: Library-size-corrected inference of RNA-binding protein regulatory networks with elastic net
  • DeepPTR: Structured VAE with a kinetic decoder that disentangles transcriptional and post-transcriptional latent spaces

Installation

pip install .

Optional dependencies:

pip install ".[deep]"      # PyTorch for DeepPTR
pip install ".[datasets]"  # Pooch for dataset downloads
pip install ".[dev]"       # pytest for testing

Quick start

import scptr

# Load data with spliced/unspliced layers
adata = scptr.read_h5ad("your_data.h5ad")

# Preprocessing
scptr.pp.filter_genes(adata)
scptr.pp.normalize_layers(adata)
scptr.pp.neighbors(adata)
scptr.pp.smooth_layers(adata)

# Estimate rates
scptr.tl.estimate_beta(adata)
scptr.tl.estimate_gamma(adata)

# Downstream analysis
scptr.tl.variance_decomposition(adata)
scptr.tl.pt_states(adata)
scptr.tl.pt_velocity(adata)
scptr.tl.infer_network(adata)

Pipeline overview

Raw scRNA-seq (spliced + unspliced)
  -> Gene/cell filtering
  -> Library-size normalization (per layer)
  -> kNN graph + Gaussian smoothing
  -> Beta estimation (quantile regression on u/s phase portraits)
  -> Gamma estimation (gamma = beta * u / s, per cell per gene)
  -> Variance decomposition (transcriptional vs post-transcriptional)
  -> PT states (PCA + Leiden clustering in gamma-space)
  -> PT velocity (neighbor-averaged gamma gradient)
  -> RBP-target network inference (elastic net, library-size corrected)

Validation

scPTR gamma estimates have been validated against:

Validation Result
Published mRNA half-lives ρ = −0.81 (sci-fate), −0.33 to −0.40 (10x developmental)
Method comparison Outperforms scVelo steady-state (−0.37) and velVI (−0.28)
miRNA target enrichment 59% of 215 families enriched (p = 4.7×10⁻⁶⁵)
3′ UTR sequence features UTR length ρ = 0.34 (p < 10⁻²⁰⁰), AU content ρ = 0.30
DepMap CRISPR essentiality Hub RBPs more essential (p = 6.4×10⁻⁵)
Subsampling robustness r > 0.97 at 20% subsampling

Key findings

  • Expression-invisible states: 3/8 pancreatic and 6/11 hippocampal cell types harbor post-transcriptional subpopulations undetectable by expression analysis (confirmed by zero-permutation control, ARI ≈ 0), enriched for ER stress/autophagy and synaptic plasticity pathways
  • Temporal precedence: degradation-rate changes precede expression changes for 54% of transition genes in pancreas (p < 10⁻⁵⁷) and 78% in dentate gyrus (p = 9.9×10⁻¹³)
  • RBP networks: library-size-corrected inference identifies essential hub regulators (HNRNPA1, YBX1, ELAVL1/HuR); neuroblastoma shows 66% stabilizing edges vs. destabilizing bias in developmental tissues

Datasets

Built-in dataset loaders (downloaded via Pooch):

adata = scptr.datasets.pancreas()        # Mouse endocrinogenesis (3,696 cells)
adata = scptr.datasets.dentate_gyrus()   # Mouse hippocampal neurogenesis (2,930 cells)
adata = scptr.datasets.sci_fate()        # Human A549 dexamethasone response (7,404 cells)

Requirements

  • Python >= 3.9
  • anndata >= 0.8, scanpy >= 1.9, numpy >= 1.21, scipy >= 1.7, numba >= 0.55
  • Optional: torch >= 2.0 (DeepPTR), pooch >= 1.6 (datasets)

Citation

If you use scPTR, please cite:

scPTR: Decomposing Post-Transcriptional Regulation at Single-Cell Resolution (2026)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support