pygot.tools.traj.latent2gene_velocity

pygot.tools.traj.latent2gene_velocity#

pygot.tools.traj.latent2gene_velocity(adata, velocity_key, embedding_key, A=None, dr_mode='linear', inverse_transform=None, dt=0.001)[source]#

Transform latent velocity into gene velocity

Due to linearity and orthogonality, the gene velocity can be recover by directly multiply inverse dimension reduction matrix,

\[v(x) ≈ Av(z), \quad z = A^Tx\]

For non-linear transformation,

\[v(x) ≈ \frac{g^{-1}(z + v(z) * dt) - g^{-1}(z)}{dt}, \quad z=g(x)\]

Arguments:#

adata: AnnData

Annotated data matrix.

embedding_key: str

Name of latent space, in adata.obsm

velocity_key: str (default: None)

Name of latent velocity, in adata.obsm

A: np.ndarray (default: None (using adata.varm[‘PCs’]))

Inverse matrix of linear dimension reduction

dr_mode: ‘linear’ or ‘nonlinear’ (default: ‘linear’)

Dimension reduction mode

inverse_transform: function (default: None)

Inverse function for non-linear dimension reduction (e.g. \(g^{-1}\))

dt: float (default: 0.001)

Parameter of non-linear velocity transformation from latent space to gene space

returns:

velocity (.layers) – gene velocity array, (n_cells, n_genes)

rtype:

:class`np.ndarray`