PyPI Bioconda Downloads CI CI-Notebooks Documentation Coverage

CellRank - Probabilistic Fate Mapping using RNA Velocity

CellRank is a toolkit to uncover cellular dynamics based on scRNA-seq data with RNA velocity annotation, see [Manno18] and [Bergen20]. In short, CellRank models cellular dynamics as a Markov chain, where transition probabilities are computed based on RNA velocity and transcriptomic similarity, taking into account uncertainty in the velocities and the stochastic nature of cell fate decisions. The Markov chain is coarse-grained into a set of macrostates which represent initial and terminal states, as well as transient intermediate states using Generalized Perron Cluster Cluster Analysis (G-PCCA) [GPCCA18], implemented in the novel pyGPCCA package. For each transient cell, i.e. for each cell that’s not assigned to a terminal state, we then compute its fate probability of it reaching any of the terminal states. We show an example of such a fate map in the figure above, which has been computed using the data of [Panc19].

CellRank scales to large cell numbers, is fully compatible with scanpy and `scvelo`_ and is easy to use. To get started, see our tutorial.


Please see our preprint on bioRxiv to learn more.

Latest additions

1.2.0 2021-02-02

This release includes:



  • Completely refactored the underlying code base of GPCCA and set it up as it’s own package called pyGPCCA with documentation and an example. Going forwards, this will ensure that one of the “engines” of CellRank is also easy to maintain to extend. Further, this will make CellRank’s installation more convenient by not needing to vendorize additional dependencies PR 472.

  • Add visualizing computed fate probabilities as done in [Velten17], see Plot circular embedding. PR 459.

  • Allow legends not to be plotted by passing legend_loc="none", as done in scVelo PR 470.

CellRank’s key applications

  • compute initial & terminal as well as intermediate macrostates of your biological system

  • infer fate probabilities towards the terminal states for each individual cell

  • visualize gene expression trends along specific linegeages while accounting for the continuous nature of fate determination

  • identify potential driver genes for each identified cellular trajectory

Why is it called “CellRank”?

CellRank does not rank cells, we gave the package this name because just like Google’s original PageRank algorithm, it works with Markov chains to aggregate relationships between individual objects (cells vs. websites) to learn about more global properties of the underlying dynamics (initial & terminal states and fate probabilities vs. website relevance).


We welcome your feedback! Feel free to open an issue or send us an email if you encounter a bug, need our help or just want to make a comment/suggestion.

CellRank was developed in collaboration between the Theislab and the Peerlab.