scvi.model.utils.mde#
- scvi.model.utils.mde(data, device=None, **kwargs)[source]#
Util to run
pymde.preserve_neighbors()
for visualization of scvi-tools embeddings.- Parameters:
data (Union[ndarray, DataFrame, spmatrix, Tensor]) – The data of shape (n_obs, k), where k is typically defined by one of the models in scvi-tools that produces an embedding (e.g.,
SCVI
.)device (Optional[Literal['cpu', 'cuda']]) – Whether to run on cpu or gpu (“cuda”). If None, tries to run on gpu if available.
kwargs – Keyword args to
pymde.preserve_neighbors()
- Returns:
The pymde embedding, defaults to two dimensions.
- Return type:
Notes
This function is included in scvi-tools to provide an alternative to UMAP/TSNE that is GPU- accelerated. The appropriateness of use of visualization of high-dimensional spaces in single- cell omics remains an open research questions. See:
Chari, Tara, Joeyta Banerjee, and Lior Pachter. “The specious art of single-cell genomics.” bioRxiv (2021).
If you use this function in your research please cite:
Agrawal, Akshay, Alnur Ali, and Stephen Boyd. “Minimum-distortion embedding.” arXiv preprint arXiv:2103.02559 (2021).
Examples
>>> adata = anndata.read_h5ad(path_to_anndata) >>> scvi.model.SCVI.setup_anndata(adata, batch_key="batch") >>> vae = scvi.model.SCVI(adata) >>> vae.train() >>> adata.obsm["X_scVI"] = vae.get_latent_representation() >>> adata.obsm["X_mde"] = scvi.model.utils.mde(adata.obsm["X_scVI"])