# 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]. 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 & terminal states as well as transient intermediate states. 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.1.0 2020-11-17¶

This release includes:

Bugfixes

Fix not vendorizing correct

`msmtools`

which sometimes cause densification of a sparse matrix..Bump scanpy version requirement to 1.6 to fix plotting PR 444.

Additions

`cellrank.tl.lineage_drivers()`

computes p-values for the identified driver genes now, using either a Fisher-transformation to approximate the distribution of the test statistic under the null hypothesis or an exact, permutation based test. Corrects for multiple-testing.`cellrank.tl.kernels.VelocityKernel.compute_transition_matrix()`

now allows different metrics to be used to compare velocity vectors with expression-differences across neighboring cells. We add cosine-correlation and dot-product schemes and we allow the user to input their own scheme. It has been shown recently by [Li2020] that the choice of metric can lead to slightly different results. Users can now also supply their own scheme as long as it follows the signature of`cellrank.tl.kernels.SimilaritySchemeABC`

.`cellrank.datasets.reprogramming()`

has been added to allow for easy reproducibility of the time & memory benchmarking results in our CellRank preprint. This is a reprogramming dataset from [Morris18].

## 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 continous 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).