scvi.model.base.VAEMixin#

class scvi.model.base.VAEMixin[source]#

Univseral VAE methods.

Methods table#

get_elbo([adata, indices, batch_size])

Return the ELBO for the data.

get_latent_representation([adata, indices, ...])

Return the latent representation for each cell.

get_marginal_ll([adata, indices, ...])

Return the marginal LL for the data.

get_reconstruction_error([adata, indices, ...])

Return the reconstruction error for the data.

Methods#

get_elbo#

VAEMixin.get_elbo(adata=None, indices=None, batch_size=None)[source]#

Return the ELBO for the data.

The ELBO is a lower bound on the log likelihood of the data used for optimization of VAEs. Note, this is not the negative ELBO, higher is better.

Parameters
adata : AnnData | NoneOptional[AnnData] (default: None)

AnnData object with equivalent structure to initial AnnData. If None, defaults to the AnnData object used to initialize the model.

indices : Sequence[int] | NoneOptional[Sequence[int]] (default: None)

Indices of cells in adata to use. If None, all cells are used.

batch_size : int | NoneOptional[int] (default: None)

Minibatch size for data loading into model. Defaults to scvi.settings.batch_size.

Return type

float

get_latent_representation#

VAEMixin.get_latent_representation(adata=None, indices=None, give_mean=True, mc_samples=5000, batch_size=None)[source]#

Return the latent representation for each cell.

This is denoted as \(z_n\) in our manuscripts.

Parameters
adata : AnnData | NoneOptional[AnnData] (default: None)

AnnData object with equivalent structure to initial AnnData. If None, defaults to the AnnData object used to initialize the model.

indices : Sequence[int] | NoneOptional[Sequence[int]] (default: None)

Indices of cells in adata to use. If None, all cells are used.

give_mean : bool (default: True)

Give mean of distribution or sample from it.

mc_samples : int (default: 5000)

For distributions with no closed-form mean (e.g., logistic normal), how many Monte Carlo samples to take for computing mean.

batch_size : int | NoneOptional[int] (default: None)

Minibatch size for data loading into model. Defaults to scvi.settings.batch_size.

Return type

ndarray

Returns

-latent_representation (ndarray) Low-dimensional representation for each cell

get_marginal_ll#

VAEMixin.get_marginal_ll(adata=None, indices=None, n_mc_samples=1000, batch_size=None)[source]#

Return the marginal LL for the data.

The computation here is a biased estimator of the marginal log likelihood of the data. Note, this is not the negative log likelihood, higher is better.

Parameters
adata : AnnData | NoneOptional[AnnData] (default: None)

AnnData object with equivalent structure to initial AnnData. If None, defaults to the AnnData object used to initialize the model.

indices : Sequence[int] | NoneOptional[Sequence[int]] (default: None)

Indices of cells in adata to use. If None, all cells are used.

n_mc_samples : int (default: 1000)

Number of Monte Carlo samples to use for marginal LL estimation.

batch_size : int | NoneOptional[int] (default: None)

Minibatch size for data loading into model. Defaults to scvi.settings.batch_size.

Return type

float

get_reconstruction_error#

VAEMixin.get_reconstruction_error(adata=None, indices=None, batch_size=None)[source]#

Return the reconstruction error for the data.

This is typically written as \(p(x \mid z)\), the likelihood term given one posterior sample. Note, this is not the negative likelihood, higher is better.

Parameters
adata : AnnData | NoneOptional[AnnData] (default: None)

AnnData object with equivalent structure to initial AnnData. If None, defaults to the AnnData object used to initialize the model.

indices : Sequence[int] | NoneOptional[Sequence[int]] (default: None)

Indices of cells in adata to use. If None, all cells are used.

batch_size : int | NoneOptional[int] (default: None)

Minibatch size for data loading into model. Defaults to scvi.settings.batch_size.

Return type

float | {str: float}Union[float, Dict[str, float]]