generateNeighbours {beadarray} | R Documentation

## Generate Neighbours Matrix for BeadLevelList object

### Description

Generates a Neighbours matrix from the X and Y co-ordinates in a `BeadLevelList` object.

### Usage

    generateNeighbours(BLData, array, window = 30, margin = 10, thresh = 2.2)

### Arguments

`BLData` | `BeadLevelList`
`array` | integer specifying which strip/array to plot
`window` | numeric value, specifying window size (see below)
`margin` | numeric value, specifying size of window margin (see below)
`thresh` | numeric value, which determines how large links are removed. (see below)

### Details

generateNeighbours determines, for each bead on the array, which beads are next to it. It assumes that the beads are in a hexagonal lattice.

The algorithm used first links each bead to its 6 closest neighbours. It then removes the longest link if its squared length is more than `thresh` multiplied by the squared length of the next longest link. A similar process is applied to the 2nd and 3rd longest links.

Finally, any one way links are removed (i.e. a link between two beads is only preserved if each bead considers the other to be its neighbour).

To ease computation, the algorithm only computes neighbours of beads in a square window of side length `2*(window)` which travels across the array. Beads in a margin around the square, of width `(margin)`, are also considered as possible neighbours.

The Neighbours matrix is designed for use with the BASH functions.

### Value

A matrix with 6 columns, and a number of rows equal to the number of beads on the array. The neighbours of bead i are found in row i. 0 denotes a deleted link. (For example, if row 15 consists of 20, 35, 0, 0, 60, 4, then bead 15 is considered a neighbour of beads 4, 20, 35 and 60.)

### Author(s)

Jonathan Cairns

### Examples

    data(BLData)
    neighbours <- generateNeighbours(BLData, 1)

[Package beadarray version 1.12.1 Index]