buildVptree {BiocNeighbors} | R Documentation

## Build a VP tree

### Description

Build a vantage point tree in preparation for a nearest-neighbors search.

### Usage

    buildVptree(
      X,
      transposed = FALSE,
      distance = c("Euclidean", "Manhattan", "Cosine")
    )

### Arguments

`X` | A numeric matrix where rows correspond to data points and columns correspond to variables (i.e., dimensions).
`transposed` | Logical scalar indicating whether `X` is transposed, i.e., rows are variables and columns are data points.
`distance` | String specifying the type of distance to use.

### Details

This function is automatically called by `findVptree` and related functions. However, it can be called directly by the user to save time if multiple queries are to be performed to the same `X`.

Points in `X` are reordered to improve data locality during the nearest-neighbor search. Specifically, points in the same cluster are contiguous and ordered by increasing distance from the cluster center.

The function also reports a list containing four vectors of equal length describing the structure of the VP tree. Each parallel element specifies a node:

- The first integer vector specifies the column index of `data` of the current node.

- The second integer vector specifies the column index of the left child of the current node,

- The third integer vector specifies the column index of the right child of the current node.

- The fourth numeric vector specifies the radius of the current node.

All indices here are zero-based, with child values set to -1 for leaf nodes.

### Value

A VptreeIndex object containing indexing structures for the VP-tree search.

### Author(s)

Aaron Lun

### See Also

VptreeIndex, for details on the output class.

`findVptree` and `queryVptree`, for dependent functions.

### Examples

    Y <- matrix(rnorm(100000), ncol=20)
    out <- buildVptree(Y)
    out

[Package BiocNeighbors version 1.12.0 Index]