| """Neighbor graph computation (thin scanpy wrapper).""" |
|
|
| from __future__ import annotations |
|
|
| from anndata import AnnData |
|
|
| from .._constants import DEFAULT_N_NEIGHBORS |
| from .._utils import log_params |
|
|
|
|
| def neighbors( |
| adata: AnnData, |
| n_neighbors: int = DEFAULT_N_NEIGHBORS, |
| use_rep: str | None = None, |
| **kwargs, |
| ) -> None: |
| """Compute a kNN graph using scanpy. |
| |
| Wrapper around :func:`scanpy.pp.neighbors` that logs parameters |
| to ``adata.uns['scptr']``. |
| |
| Parameters |
| ---------- |
| adata |
| Annotated data matrix. If ``X_pca`` is not present, PCA is |
| computed automatically by scanpy. |
| n_neighbors |
| Number of nearest neighbors. |
| use_rep |
| Representation to use. Passed to scanpy. |
| **kwargs |
| Additional keyword arguments passed to ``scanpy.pp.neighbors``. |
| """ |
| import scanpy as sc |
|
|
| if use_rep is None and "X_pca" not in adata.obsm: |
| sc.tl.pca(adata) |
|
|
| sc.pp.neighbors(adata, n_neighbors=n_neighbors, use_rep=use_rep, **kwargs) |
|
|
| log_params(adata, "neighbors", { |
| "n_neighbors": n_neighbors, |
| "use_rep": use_rep, |
| }) |
|
|