| IRanges-setops {IRanges} | R Documentation |
Performs set operations on IRanges objects.
## Vector-wise operations: gaps(x, start=NA, end=NA) ## 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, ...) pgap(x, y, ...)
x, y |
IRanges objects. |
start, end |
A single integer or NA. Use these arguments to specify the
interval of reference i.e. which interval the returned gaps
should be relative to.
|
... |
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).
|
gaps returns the "normal" IRanges object (of the same
class as x) representing the set of integers that remain
after the set of integers represented by x has been removed
from the interval specified by the start and end arguments.
The union, intersect and setdiff methods
for IRanges objects return a "normal" IRanges
object (of the same class as x) representing the union,
intersection and (asymmetric!) difference of the sets of integers
represented by x and y.
punion, pintersect, psetdiff and pgap
are generic functions that compute the element-wise (aka "parallel")
union, intersection, (asymmetric!) difference and gap between
each element in x and its corresponding element in 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/gap of/between 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.
If two ranges overlap, then the gap between them is empty.
H. Pages and M. Lawrence
pintersect is similar to narrow, except the
end points are absolute, not relative. pintersect is also
similar to restrict, except ranges outside of the
restriction become empty and are not discarded.
union, intersect, setdiff, Ranges-class, IRanges-class, IRanges-utils
x0 <- IRanges(start=c(-2, 6, 9, -4, 1, 0, -6, 10),
width=c( 5, 0, 6, 1, 4, 3, 2, 3))
gaps(x0)
gaps(x0, start=-6, end=20) # Regions of the -6:20 range that are not masked by 'x0'.
x <- IRanges(c(1, 5, -2, 0, 14), c(10, 9, 3, 11, 17))
y <- Views(as(4:-17, "XInteger"), start=c(14, 0, -5, 6, 18), end=c(20, 2, 2, 8, 20))
## Vector-wise operations:
union(x, y)
union(y, x)
intersect(x, y)
intersect(y, x)
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)
pgap(x, y)