snapatac2.pp.scanorama_integrate#
- snapatac2.pp.scanorama_integrate(adata, *, batch, n_neighbors=20, use_rep='X_spectral', use_dims=None, groupby=None, key_added=None, sigma=15, approx=True, alpha=0.1, batch_size=5000, inplace=True, **kwargs)[source]#
Use Scanorama [Hie19] to integrate different experiments.
Scanorama [Hie19] is an algorithm for integrating single-cell data from multiple experiments stored in an AnnData object. This function should be run after performing
tl.spectralbut before computing the neighbor graph, as illustrated in the example below.This uses the implementation of scanorama [Hie19].
- Parameters:
data – Matrice or AnnData object. Matrices should be shaped like n_obs x n_vars.
batch – Batch labels for cells. If a string, labels will be obtained from
obs.n_neighbors – Number of mutual nearest neighbors.
use_rep – Use the indicated representation in
.obsm.use_dims – Use these dimensions in
use_rep.groupby – If specified, split the data into groups and perform batch correction on each group separately.
key_added – If specified, add the result to
adata.obsmwith this key. Otherwise, it will be stored inadata.obsm[use_rep + "_scanorama"].inplace – Whether to store the result in the anndata object.
- Returns:
if
inplace=Trueit updates adata with the fieldadata.obsm[`use_rep`_scanorama], containing adjusted principal components. Otherwise, it returns the result as a numpy array.- Return type:
np.ndarray | None
See also
spectralcompute spectral embedding of the data matrix.
Example
First, load libraries and example dataset, and preprocess.
>>> import snapatac2 as snap >>> adata = snap.read(snap.datasets.pbmc5k(type='h5ad'), backed=None) >>> snap.pp.select_features(adata) >>> snap.tl.spectral(adata)
We now arbitrarily assign a batch metadata variable to each cell for the sake of example, but during real usage there would already be a column in
adata.obsgiving the experiment each cell came from.>>> adata.obs['batch'] = 2218*['a'] + 2218*['b']
Finally, run Scanorama. Afterwards, there will be a new table in
adata.obsmcontaining the Scanorama embeddings.>>> snap.pp.scanorama_integrate(adata, batch='batch') >>> 'X_spectral_scanorama' in adata.obsm True