nearest-methods {IRanges}R Documentation

Finding the nearest range/position neighbor

Description

The nearest(), precede(), follow(), distance() and distanceToNearest() methods for IntegerRanges derivatives (e.g. IRanges objects).

Usage

## S4 method for signature 'IntegerRanges,IntegerRanges_OR_missing'
nearest(x, subject, select=c("arbitrary", "all"))

## S4 method for signature 'IntegerRanges,IntegerRanges_OR_missing'
precede(x, subject, select=c("first", "all"))

## S4 method for signature 'IntegerRanges,IntegerRanges_OR_missing'
follow(x, subject, select=c("last", "all"))

## S4 method for signature 'IntegerRanges,IntegerRanges'
distance(x, y)
## S4 method for signature 'Pairs,missing'
distance(x, y)

## S4 method for signature 'IntegerRanges,IntegerRanges_OR_missing'
distanceToNearest(x, subject, select=c("arbitrary", "all"))

Arguments

x

The query IntegerRanges derivative, or (for distance()) a Pairs object containing both the query (first) and subject (second).

subject

The subject IntegerRanges object, within which the nearest neighbors are found. Can be missing, in which case x is also the subject.

select

Logic for handling ties. By default, all the methods select a single interval (arbitrary for nearest,the first by order in subject for precede, and the last for follow). To get all matchings, as a Hits object, use "all".

y

For the distance method, a IntegerRanges derivative. Cannot be missing. If x and y are not the same length, the shortest will be recycled to match the length of the longest.

hits

The hits between x and subject

...

Additional arguments for methods

Details

Value

For nearest(), precede() and follow(), an integer vector of indices in subject, or a Hits object if select="all".

For distance(), an integer vector of distances between the ranges in x and y.

For distanceToNearest(), a Hits object with a metadata column reporting the distance between the pair. Access the distance metadata column with the mcols() accessor.

For selectNearest(), a Hits object, sorted by query.

Author(s)

M. Lawrence

See Also

Examples

## ------------------------------------------
## precede() and follow()
## ------------------------------------------
query <- IRanges(c(1, 3, 9), c(3, 7, 10))
subject <- IRanges(c(3, 2, 10), c(3, 13, 12))

precede(query, subject)     # c(3L, 3L, NA)
precede(IRanges(), subject) # integer()
precede(query, IRanges())   # rep(NA_integer_, 3)
precede(query)              # c(3L, 3L, NA)

follow(query, subject)      # c(NA, NA, 1L)
follow(IRanges(), subject)  # integer()
follow(query, IRanges())    # rep(NA_integer_, 3)
follow(query)               # c(NA, NA, 2L)

## ------------------------------------------
## nearest()
## ------------------------------------------
query <- IRanges(c(1, 3, 9), c(2, 7, 10))
subject <- IRanges(c(3, 5, 12), c(3, 6, 12))

nearest(query, subject) # c(1L, 1L, 3L)
nearest(query)          # c(2L, 1L, 2L)

## ------------------------------------------
## distance()
## ------------------------------------------
## adjacent
distance(IRanges(1,5), IRanges(6,10)) # 0L
## overlap
distance(IRanges(1,5), IRanges(3,7))  # 0L
## zero-width
sapply(-3:3, function(i) distance(shift(IRanges(4,3), i), IRanges(4,3)))

[Package IRanges version 2.40.0 Index]