class cellrank.tl.kernels.VelocityKernel(adata, backward=False, vkey='velocity', xkey='Ms', gene_subset=None, compute_cond_num=False, check_connectivity=False, **kwargs)[source]

Kernel which computes a transition matrix based on RNA velocity.

This borrows ideas from both [La Manno et al., 2018] and [Bergen et al., 2020]. In short, for each cell i, we compute transition probabilities \(p_{i, j}\) to each cell j in the neighborhood of i. The transition probabilities are computed as a multinomial logistic regression where the weights \(w_j\) (for all j) are given by the vector that connects cell i with cell j in gene expression space, and the features \(x_i\) are given by the velocity vector \(v_i\) of cell i.

  • adata (anndata.AnnData) – Annotated data object.

  • backward (bool) – Direction of the process.

  • vkey (str) – Key in anndata.AnnData.layers where velocities are stored.

  • xkey (str) – Key in anndata.AnnData.layers where expected gene expression counts are stored.

  • gene_subset (Optional[Iterable]) – List of genes to be used to compute transition probabilities. By default, genes from anndata.AnnData.var ['velocity_genes'] are used.

  • compute_cond_num (bool) – Whether to compute condition number of the transition matrix. Note that this might be costly, since it does not use sparse implementation.

  • check_connectivity (bool) – Check whether the underlying KNN graph is connected.

  • kwargs (Any) – Keyword arguments for cellrank.tl.kernels.Kernel.



Annotated data object.


Direction of the process.


Condition number of the transition matrix.


Get the kernels of the kernel expression, except for constants.


Array of shape (n_cells, n_cells) containing the logits.


Parameters which are used to compute the transition matrix.


(n_cells, n_cells).


Return row-normalized transition matrix.


compute_projection([basis, key_added, copy])

Compute a projection of the transition matrix in the embedding.

compute_transition_matrix([mode, ...])

Compute transition matrix based on velocity directions on the local manifold.


Return a copy of self.

plot_random_walks(n_sims[, max_iter, seed, ...])

Plot random walks in an embedding.

plot_single_flow(cluster, cluster_key, time_key)

Visualize outgoing flow from a cluster of cells [Mittnenzweig et al., 2021].

read(fname[, adata, copy])

Deserialize self from a file.

write(fname[, write_adata, ext])

Serialize self to a file.


Write the transition matrix and parameters used for computation to the underlying adata object.