Skip to content

zorrodong/scvelo

 
 

Repository files navigation

PyPI Docs travis

scvelo – stochastic single cell RNA velocity

scvelo is a scalable toolkit for estimating and analyzing stochastic RNA velocities in single cells.

RNA velocity is the time derivative of mRNA abundance obtained by distinguishing unspliced (precursor) from spliced (mature) mRNA, and serves as a predictive indicator for the future state of an individual cell. The main principles of RNA velocity estimation have been presented in velocyto (La Manno et al., 2018) and are based on a deterministic model of transcriptional dynamics. scvelo uses a stochastic formulation and incorporates intrinsic expression variability.

It is compatible with scanpy (Wolf et al., 2018). Making use of sparse implementation, iterative neighbors search and other techniques, it is remarkably efficient in terms of memory and runtime without loss in accuracy (<1GB and <1min for 30,000 cells on a MacBook Pro 2017 with 2.3 GHz i5).

Usage Principles

Install scvelo from PyPI using pip install scvelo.

Import scvelo as:

import scvelo as scv

Read your data file (loom, h5ad, xlsx, csv, etc.) with adata = scv.read(filename, **params), if not done yet preprocess you data (gene selection, normalization, etc.), e.g. using scv.pp.filter_and_normalize(adata, **params), compute moments with scv.pp.moments(adata, **params), and perform velocity estimation:

scv.tl.velocity(adata, mode='stochastic', **params)

The velocity vectors are translated into likely cell transitions with:

scv.tl.velocity_graph(adata, **params)

Finally the velocities can be projected and visualized in any embedding (e.g. UMAP) using:

scv.tl.velocity_embedding(adata, basis='umap', **params)
scv.pl.velocity_embedding(adata, basis='umap', **params)

I highly recommend going through the documentation and some exemplary notebooks.

About

Stochastic Single Cell RNA Velocity

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%