findMutualNN {batchelor}R Documentation

Find mutual nearest neighbors

Description

Find mutual nearest neighbors (MNN) across two data sets.

Usage

findMutualNN(
  data1,
  data2,
  k1,
  k2 = k1,
  BNPARAM = KmknnParam(),
  BPPARAM = SerialParam()
)

Arguments

data1

A numeric matrix containing samples (e.g., cells) in the rows and variables/dimensions in the columns.

data2

A numeric matrix like data1 for another data set with the same variables/dimensions.

k1

Integer scalar specifying the number of neighbors to search for in data1.

k2

Integer scalar specifying the number of neighbors to search for in data2.

BNPARAM

A BiocNeighborParam object specifying the neighbour search algorithm to use.

BPPARAM

A BiocParallelParam object specifying how parallelization should be performed.

Details

The concept of a MNN pair can be explained by considering cells in each of two data sets. For each cell in data set 1, the set of k2 nearest cells in data set 2 is identified, based on the Euclidean distance in expression space. For each cell in data set 2, the set of k1 nearest cells in data set 1 is similarly identified. Two cells in different batches are considered to be MNNs if each cell is in the other's set.

Value

A list containing the integer vectors first and second. Corresponding entries in first and second specify a MNN pair of cells from data1 and data2, respectively.

Author(s)

Aaron Lun

See Also

queryKNN for the underlying neighbor search code.

fastMNN and mnnCorrect, which call this function to identify MNNs.

Examples

B1 <- matrix(rnorm(10000), ncol=50) # Batch 1 
B2 <- matrix(rnorm(10000), ncol=50) # Batch 2
out <- findMutualNN(B1, B2, k1=20)
head(out$first)
head(out$second)


[Package batchelor version 1.6.3 Index]