alterlab-scvelo
scVelo — RNA Velocity Analysis
Overview
scVelo is the leading Python package for RNA velocity analysis in single-cell RNA-seq data. It infers cell state transitions by modeling the kinetics of mRNA splicing — using the ratio of unspliced (pre-mRNA) to spliced (mature mRNA) abundances to determine whether a gene is being upregulated or downregulated in each cell. This allows reconstruction of developmental trajectories and identification of cell fate decisions without requiring time-course data.
Installation: uv pip install "scvelo==0.3.4" — 0.3.4 (uploaded 2026-02-24) is the
current release and the package is now only minimally maintained: its published release
notes stop at 0.2.5, upstream CI still targets Python 3.9/3.10, and its dependency
declarations (numpy>=1.17, scanpy>=1.5, anndata>=0.7.5) have no upper bounds, so pip
will happily build an environment scVelo was never tested against.
Practical consequence: install it in its own environment with a pinned NumPy rather than
into a current scverse stack. If you hit dtype or scalar-assignment errors under NumPy 2 —
most often in mode="stochastic", whose second-moment regression assigns a one-element
least-squares result to a scalar — pin numpy<2 (e.g. numpy==1.26.4) and re-run. Check
velocity results for silent breakage rather than assuming they are fine: compare the
stochastic and dynamical modes, and confirm the streamlines agree with known biology.