scanpy.external.tl.phate

scanpy.external.tl.phate(adata, n_components=2, k=5, a=15, n_landmark=2000, t='auto', gamma=1.0, n_pca=100, knn_dist='euclidean', mds_dist='euclidean', mds='metric', n_jobs=None, random_state=None, verbose=None, copy=False, **kwargs)

PHATE [Moon17].

Potential of Heat-diffusion for Affinity-based Trajectory Embedding (PHATE) embeds high dimensional single-cell data into two or three dimensions for visualization of biological progressions.

For more information and access to the object-oriented interface, read the PHATE documentation. For tutorials, bug reports, and R/MATLAB implementations, visit the PHATE GitHub page. For help using PHATE, go here.

Parameters
adata : AnnDataAnnData

Annotated data matrix.

n_components : intint (default: 2)

number of dimensions in which the data will be embedded

k : intint (default: 5)

number of nearest neighbors on which to build kernel

a : intint (default: 15)

sets decay rate of kernel tails. If None, alpha decaying kernel is not used

n_landmark : intint (default: 2000)

number of landmarks to use in fast PHATE

t : int | strUnion[int, str] (default: 'auto')

power to which the diffusion operator is powered sets the level of diffusion. If ‘auto’, t is selected according to the knee point in the Von Neumann Entropy of the diffusion operator

gamma : floatfloat (default: 1.0)

Informational distance constant between -1 and 1. gamma=1 gives the PHATE log potential, gamma=0 gives a square root potential.

n_pca : intint (default: 100)

Number of principal components to use for calculating neighborhoods. For extremely large datasets, using n_pca < 20 allows neighborhoods to be calculated in log(n_samples) time.

knn_dist : strstr (default: 'euclidean')

recommended values: ‘euclidean’ and ‘cosine’ Any metric from scipy.spatial.distance can be used distance metric for building kNN graph

mds_dist : strstr (default: 'euclidean')

recommended values: ‘euclidean’ and ‘cosine’ Any metric from scipy.spatial.distance can be used distance metric for MDS

mds : {‘classic’, ‘metric’, ‘nonmetric’}Literal[‘classic’, ‘metric’, ‘nonmetric’] (default: 'metric')

Selects which MDS algorithm is used for dimensionality reduction.

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

The number of jobs to use for the computation. If None, sc.settings.n_jobs is used. If -1 all CPUs are used. If 1 is given, no parallel computing code is used at all, which is useful for debugging. For n_jobs below -1, (n_cpus + 1 + n_jobs) are used. Thus for n_jobs = -2, all CPUs but one are used

random_state : None | int | RandomStateUnion[None, int, RandomState] (default: None)

Random seed. Defaults to the global numpy random number generator

verbose : bool | int | NoneUnion[bool, int, None] (default: None)

If True or an int/Verbosity ≥ 2/hint, print status messages. If None, sc.settings.verbosity is used.

copy : boolbool (default: False)

Return a copy instead of writing to adata.

kwargs

Additional arguments to phate.PHATE

Return type

AnnData | NoneOptional[AnnData]

Returns

Depending on copy, returns or updates adata with the following fields.

X_phatenp.ndarray, (adata.obs, shape=[n_samples, n_components], dtype float)

PHATE coordinates of data.

Examples

>>> from anndata import AnnData
>>> import scanpy.external as sce
>>> import phate
>>> tree_data, tree_clusters = phate.tree.gen_dla(
...     n_dim=100,
...     n_branch=20,
...     branch_length=100,
... )
>>> tree_data.shape
(2000, 100)
>>> adata = AnnData(tree_data)
>>> sce.tl.phate(adata, k=5, a=20, t=150)
>>> adata.obsm['X_phate'].shape
(2000, 2)
>>> sce.pl.phate(adata)