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].
This release includes:
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
jaxis found when using
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.
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).