This function will construct a weighted nearest neighbor (WNN) graph. For each cell, we identify the nearest neighbors based on a weighted combination of two modalities. Takes as input two dimensional reductions, one computed for each modality.Other parameters are listed for debugging, but can be left as default values.

FindMultiModalNeighbors(
  object,
  reduction.list,
  dims.list,
  k.nn = 20,
  l2.norm = TRUE,
  knn.graph.name = "wknn",
  snn.graph.name = "wsnn",
  weighted.nn.name = "weighted.nn",
  modality.weight.name = NULL,
  knn.range = 200,
  prune.SNN = 1/15,
  sd.scale = 1,
  cross.contant.list = NULL,
  smooth = FALSE,
  return.intermediate = FALSE,
  modality.weight = NULL,
  verbose = TRUE
)

Arguments

object

A Seurat object

reduction.list

A list of two dimensional reductions, one for each of the modalities to be integrated

dims.list

A list containing the dimensions for each reduction to use

k.nn

the number of multimodal neighbors to compute. 20 by default

l2.norm

Perform L2 normalization on the cell embeddings after dimensional reduction. TRUE by default.

knn.graph.name

Multimodal knn graph name

snn.graph.name

Multimodal snn graph name

weighted.nn.name

Multimodal neighbor object name

modality.weight.name

Variable name to store modality weight in object meta data

knn.range

The number of approximate neighbors to compute

prune.SNN

Cutoff not to discard edge in SNN graph

sd.scale

The scaling factor for kernel width. 1 by default

cross.contant.list

Constant used to avoid divide-by-zero errors. 1e-4 by default

smooth

Smoothing modality score across each individual modality neighbors. FALSE by default

return.intermediate

Store intermediate results in misc

modality.weight

A ModalityWeights object generated by FindModalityWeights

verbose

Print progress bars and output

Value

Seurat object containing a nearest-neighbor object, KNN graph, and SNN graph - each based on a weighted combination of modalities.