IRanges-setops {IRanges}R Documentation

Set operations on IRanges objects

Description

Performs set operations on IRanges objects.

Usage

  ## Vector-wise operations:
  ## S4 method for signature 'IRanges, IRanges':
  union(x, y)
  ## S4 method for signature 'IRanges, IRanges':
  intersect(x, y)
  ## S4 method for signature 'IRanges, IRanges':
  setdiff(x, y)

  ## Element-wise (aka "parallel") operations:
  punion(x, y, ...)
  pintersect(x, y, ...)
  psetdiff(x, y, ...)

Arguments

x, y IRanges objects.
... Further arguments to be passed to or from other methods. For example, the fill.gap argument can be passed to the punion method for IRanges objects (see below).

Details

The union, intersect and setdiff methods for IRanges objects return a "normal" IRanges instance representing the union, intersection and (asymmetric!) difference of the sets of integers represented by x and y.

punion, pintersect and psetdiff are generic functions that perform the element-wise (aka "parallel") union, intersection and (asymmetric!) difference of x and y. Methods for IRanges objects are defined. For these methods, x and y must have the same length (i.e. same number of ranges) and they return an IRanges instance of the same length as x and y where each range represents the union/intersection/difference of the corresponding ranges in x and y.

Note that the union or difference of 2 ranges cannot always be represented by a single range so punion and psetdiff cannot always return their result in an IRanges instance of the same length as the input. This happens to punion when there is a gap between the 2 ranges to combine. In that case, the user can use the fill.gap argument to enforce the union by filling the gap. This happens to psetdiff when a range in y has its end points strictly inside the corresponding range in x. In that case, psetdiff will simply fail.

Author(s)

H. Pages and M. Lawrence

See Also

Ranges-class, IRanges-class, IRanges-utils

Examples

  x <- IRanges(c(1, 5, -2, 0, 14), c(10, 9, 3, 11, 17))
  y <- IRanges(c(14, 0, -5, 6, 18), c(20, 2, 2, 8, 20)) 

  ## Vector-wise operations:
  union(x, y)
  intersect(x, y)
  setdiff(x, y)
  setdiff(y, x)

  ## Element-wise (aka "parallel") operations:
  try(punion(x, y))
  punion(x[3:5], y[3:5])
  punion(x, y, fill.gap=TRUE)
  pintersect(x, y)
  psetdiff(y, x)
  try(psetdiff(x, y))
  start(x)[4] <- -99
  end(y)[4] <- 99
  psetdiff(x, y)

[Package IRanges version 1.0.16 Index]