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.
Latest additions¶
1.2.0 2021-02-02¶
This release includes:
Bugfixes
Fix a bug when computing the Schur decomposition for reducible Markov chains (Schur vectors appear to not be D-orthogonal). GPCCA requires the leading Schur vectors to be orthogonal w.r.t. a symmetric, positive definite matrix \(D\) PR 453.
Fix not falling back to
mode='monte_carlo'
if nojax
is found when usingmode='stochastic'
incellrank.tl.kernels.VelocityKernel.compute_transition_matrix()
PR 472.Fix
pandas
v1.0.1
indexing error incellrank.tl.lineage_drivers()
PR 475.Fix not correctly propagating colors during aggregation in
cellrank.tl.Lineage
PR 482.
Additions
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
cellrank.pl.circular_projection()
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).