Adapted from scanpy's strategy in sc.pp.neighbors() to compute
connectivities. Two methods are available, using a Gaussian kernel or a fuzzy
union of simplical sets as implemented in umap-learn
Usage
GetConnectivities(
object,
neighbors.use,
method = c("umap", "gauss"),
graph.name = NULL,
assay = NULL,
umap.set.op.mix.ratio = 1,
umap.local.connectivity = 1,
umap.niter.smoothing = 64L,
umap.apply.set.operations = TRUE,
umap.bipartite = FALSE,
gauss.sigmas = NULL,
gauss.median.sigma = FALSE,
verbose = TRUE
)Arguments
- object
a
Seuratobject- neighbors.use
name of a
Neighborinstance stored in theSeurat objectto derive connectivities from.- method
one of "umap" or "gauss". Decides whether connectivities are computed using a fuzzy union of simplical sets ("umap") or a Gaussian kernel ("gauss")
- graph.name
name of the return
Graphof connectivities to store in theSeurat object.- assay
name of the assay to reference in the output
Graphobject. Use the default assay ofobjectif not provided.- umap.set.op.mix.ratio
float between 0 and 1. Controls how the fuzzy sets are mixed to obtain a global fuzzy simplicial set. 0 and 1 correspond to a pure fuzzy intersection and union, respectively. Both fuzzy set operations use the product t-norm. Only applies to the umap method.
- umap.local.connectivity
The local connectivity required, i.e. the expected number of nearest neighbours locally connected. The higher, the more local connections are output. In practice, this should be not more than the local intrinsic dimension of the manifold. Only applies to the umap method when
umap.apply.set.operations = TRUE.- umap.niter.smoothing
maximum number of iterations during the smoothing process of distances. Only applies to the umap method.
- umap.apply.set.operations
set to
FALSEto disable the fuzzy union or intersection of the local fuzzy simplicial sets into a global fuzzy simplicial set. Only applies to the umap method.- umap.bipartite
whether the knn network is bipartite (
FALSEby default). Only applies to the umap method.- gauss.sigmas
by default, a sigma value (i.e. width of the kernel) per cell is computed internally. Those sigmas are controlling for each cell's connectivities range and magnitude. Alternatively, you can provide your own width(s). If the length of
sigmasis shorter than the number of cells, it will be recycled. Only applies to the Gaussian method.- gauss.median.sigma
which estimation method to use when
sigmas = NULL. By default, use the cell’s distance to its kth nearest neighbour. Whenmedian.sigma = TRUE, use the median of distances to the nearest neighbours (excluding self). Only applies to the Gaussian method.- verbose
whether to print progress messages
Note
The UMAP method is a re-implementation of the function
fuzzy_simplicial_set() from umap-learn and should estimate
identical connectivities. You can check the
original documentation.
The Gaussian kernel method is a re-implementation of the analogous function
from scanpy called by sc.pp.neighbors(). You can have a look at
the
original functionmedian.sigmas = FALSE is the method used in Haghverdi L. et al.,2016.
References
McInnes, L., Healy, J. & Melville, J. UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv preprint (2018). DOI
Wolf, F. A., Angerer, P. & Theis, F. J. SCANPY: large-scale single-cell gene expression data analysis. Genome Biology 19, (2018).
Coifman, R. R., Lafon, S., Lee, A. B., Maggioni, M., Nadler, B., Warner, F. & Zucker, S. W. Geometric diffusions as a tool for harmonic analysis and structure definition of data: Diffusion maps. PNAS 102, 7426–7431 (2005). DOI
Haghverdi, L., Büttner, M., Wolf, F. A., Buettner, F. & Theis, F. J. Diffusion pseudotime robustly reconstructs lineage branching. Nature Methods 13, 845–848 (2016). DOI
