pyrovelocity._velocity#

class pyrovelocity._velocity.PyroVelocity(adata, input_type='raw', shared_time=True, model_type='auto', guide_type='auto', likelihood='Poisson', t_scale_on=False, plate_size=2, latent_factor='none', latent_factor_operation='selection', inducing_point_size=0, latent_factor_size=0, include_prior=False, use_gpu=0, init=False, num_aux_cells=0, only_cell_times=True, decoder_on=False, add_offset=False, correct_library_size=True, cell_specific_kinetics=None, kinetics_num=None)[source]#

Bases: VelocityTrainingMixin, BaseModelClass

__init__(adata, input_type='raw', shared_time=True, model_type='auto', guide_type='auto', likelihood='Poisson', t_scale_on=False, plate_size=2, latent_factor='none', latent_factor_operation='selection', inducing_point_size=0, latent_factor_size=0, include_prior=False, use_gpu=0, init=False, num_aux_cells=0, only_cell_times=True, decoder_on=False, add_offset=False, correct_library_size=True, cell_specific_kinetics=None, kinetics_num=None)[source]#

PyroVelocity class for estimating RNA velocity and related tasks.

Parameters:
  • adata (AnnData) – An AnnData object containing the gene expression data.

  • input_type (str, optional) – Type of input data. Can be “raw”, “knn”, or “raw_cpm”. Defaults to “raw”.

  • shared_time (bool, optional) – Whether to use shared time. Defaults to True.

  • model_type (str, optional) – Type of model to use. Defaults to “auto”.

  • guide_type (str, optional) – Type of guide to use. Defaults to “auto”.

  • likelihood (str, optional) – Type of likelihood to use. Defaults to “Poisson”.

  • t_scale_on (bool, optional) – Whether to use t_scale. Defaults to False.

  • plate_size (int, optional) – Size of the plate. Defaults to 2.

  • latent_factor (str, optional) – Type of latent factor. Defaults to “none”.

  • latent_factor_operation (str, optional) – Operation to perform on the latent factor. Defaults to “selection”.

  • inducing_point_size (int, optional) – Size of inducing points. Defaults to 0.

  • latent_factor_size (int, optional) – Size of latent factors. Defaults to 0.

  • include_prior (bool, optional) – Whether to include prior information. Defaults to False.

  • use_gpu (Union[bool, int], optional) – Whether and which GPU to use. Defaults to 0. Can be False.

  • init (bool, optional) – Whether to initialize the model. Defaults to False.

  • num_aux_cells (int, optional) – Number of auxiliary cells. Defaults to 0.

  • only_cell_times (bool, optional) – Whether to use only cell times. Defaults to True.

  • decoder_on (bool, optional) – Whether to use decoder. Defaults to False.

  • add_offset (bool, optional) – Whether to add offset. Defaults to False.

  • correct_library_size (Union[bool, str], optional) – Whether to correct library size or method to correct. Defaults to True.

  • cell_specific_kinetics (Optional[str], optional) – Type of cell-specific kinetics. Defaults to None.

  • kinetics_num (Optional[int], optional) – Number of kinetics. Defaults to None.

Examples

>>> import numpy as np
>>> import anndata
>>> from pyrovelocity._velocity import PyroVelocity
>>> from pyrovelocity.utils import pretty_print_dict, print_anndata, generate_sample_data
>>> from pyrovelocity.data import copy_raw_counts
>>> # setup sample data
>>> n_obs = 10
>>> n_vars = 5
>>> adata = generate_sample_data(n_obs=n_obs, n_vars=n_vars)
>>> copy_raw_counts(adata)
>>> print_anndata(adata)
>>> print(adata.X)
>>> print(adata.layers['spliced'])
>>> print(adata.layers['unspliced'])
>>> print(adata.obs['u_lib_size_raw'])
>>> print(adata.obs['s_lib_size_raw'])
>>> PyroVelocity.setup_anndata(adata)
>>> # train model
>>> model = PyroVelocity(adata)
>>> model.train(max_epochs=5, use_gpu=0)
>>> posterior_samples = model.generate_posterior_samples(model.adata, num_samples=30)
>>> print(posterior_samples.keys())
>>> assert isinstance(posterior_samples, dict), f"Expected a dictionary, got {type(posterior_samples)}"
>>> pretty_print_dict(posterior_samples)
>>> model.save_model('save_pyrovelocity_doctest_model', overwrite=True)
>>> model = PyroVelocity.load_model('save_pyrovelocity_doctest_model', adata, use_gpu=0)
>>> # train model with
>>> model = PyroVelocity(adata)
>>> model.train_faster(max_epochs=5, use_gpu=0)
>>> model.save_model('save_pyrovelocity_doctest_model', overwrite=True)
>>> model = PyroVelocity.load_model('save_pyrovelocity_doctest_model', adata, use_gpu=0)
>>> posterior_samples = model.generate_posterior_samples(model.adata, num_samples=30)
>>> pretty_print_dict(posterior_samples)
>>> print(posterior_samples.keys())
>>> # train model with
>>> model = PyroVelocity(adata)
>>> model.train_faster_with_batch(batch_size=24, max_epochs=5, use_gpu=0)
>>> model.save_model('save_pyrovelocity_doctest_model', overwrite=True)
>>> model = PyroVelocity.load_model('save_pyrovelocity_doctest_model', adata, use_gpu=0)
>>> posterior_samples = model.generate_posterior_samples(model.adata, num_samples=30)
>>> pretty_print_dict(posterior_samples)
>>> print(posterior_samples.keys())
compute_statistics_from_posterior_samples(adata, posterior_samples, vector_field_basis, ncpus_use)[source]#

reduce posterior samples by precomputing metrics.

enum_parallel_predict()[source]#

work for parallel enumeration

generate_posterior_samples(adata=None, indices=None, batch_size=None, num_samples=100)[source]#

If the guide uses sequential enumeration, computes the posterior samples for the given data using the trained PyroVelocity model.

The method generates posterior samples by running the trained model on the provided data and returns a dictionary containing samples for each parameter.

Parameters:
  • adata (AnnData, optional) – Anndata object containing the data for which posterior samples are to be computed. If not provided, the anndata used to initialize the model will be used.

  • indices (Sequence[int], optional) – Indices of cells in adata for which the posterior samples are to be computed.

  • batch_size (int, optional) – The size of the mini-batches used during computation. If not provided, the entire dataset will be used.

  • (int (num_samples) – 100): The number of posterior samples to compute for each parameter.

  • default – 100): The number of posterior samples to compute for each parameter.

Returns:

A dictionary containing the posterior samples for each parameter.

Return type:

Dict[str, ndarray]

get_mlflow_logs()[source]#
classmethod load_model(dir_path, adata=None, use_gpu=None, prefix=None, backup_url=None)[source]#
save_model(dir_path, prefix=None, overwrite=True, save_anndata=False, **anndata_write_kwargs)[source]#
Return type:

None

save_pyrovelocity_data(posterior_samples, pyrovelocity_data_path)[source]#
classmethod setup_anndata(adata, *args, **kwargs)[source]#

Latest scvi-tools interface

train(**kwargs)[source]#

Trains the PyroVelocity model using the provided data and configuration.

The method leverages the Pyro library to train the model using the underlying data. It relies on the VelocityTrainingMixin to define the training logic.

Parameters:

**kwargs – dict, optional Additional keyword arguments to be passed to the underlying train method provided by the VelocityTrainingMixin.