pygot.tools.traj.velocity

Contents

pygot.tools.traj.velocity#

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

Velocity inference using trained model.

This function will infer velocity in latent space and gene space both. It can be sperate into latent_velocity and latent2gene_velocity

Example:#

For linear dimension reduction space:

#using pca space as example
#if pca is done in scanpy framework, the inverse matrix A will be store in adata.varm['PCs'], that do not need to specifed matrix A
pygot.tl.traj.velocity(adate, model, embedding_key='X_pca', velocity_key='velocity_pca')
#Otherwise, need to specify dimension reduction matrix A
pygot.tl.traj.velocity(adate, model, embedding_key='X_pca', velocity_key='velocity_pca', A=pca.components_.T)

For non-linear dimension reduction space:

#using vae latent space as example
#first, train the vae model to transform space
gs_vae = pygot.pp.GS_VAE()
gs_vae.register_model(adata, latent_dim=10)
adata.obsm['X_latent'] = gs_vae.fit_transform(adata)

#After train velocity model using `fit_velocity_model` or `fit_velocity_model_without_time`
pygot.tl.traj.velocity(adate, model,
    embedding_key='X_latent', velocity_key='velocity_latent', dr_mode='nonlinear',
    inverse_transform=gs_vae.inverse_transform
)

Arguments:#

adata: AnnData

Annotated data matrix.

odefunc: class:ODEwrapper or class:ODEwrapperNoTime

trained NeuralODE model by function fit_velocity_model

embedding_key: str

Name of latent space, in adata.obsm

velocity_key: str (default: None)

Name of latent velocity to save, in adata.obsm

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

Inverse matrix of linear dimension reduction

time_key: str (default: None)

Name of time label, in adata.obs, use if the model input contains time label

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

Dimension reduction mode

inverse_transform: function (default: None)

Inverse function for non-linear dimension reduction

dt: float (default: 0.001)

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

returns:
  • velocity (.layers) (:class`np.ndarray`) – gene velocity array, (n_cells, n_genes)

  • latent_velocity (.obsm) (:class`np.ndarray`) – latent velocity array, (n_cells, latent_dim), store in adata.obsm[velocity_key]