| setops-methods {GenomicRanges} | R Documentation |
Performs set operations on GRanges/GRangesList/GappedAlignments objects.
## Set operations
## S4 method for signature 'GRanges,GRanges'
union(x, y, ignore.strand = FALSE,...)
## S4 method for signature 'GRanges,GRanges'
intersect(x, y, ignore.strand = FALSE,...)
## S4 method for signature 'GRanges,GRanges'
setdiff(x, y, ignore.strand = FALSE,...)
## Parallel set operations
## S4 method for signature 'GRanges,GRanges'
punion(x, y, fill.gap = FALSE, ignore.strand = FALSE, ...)
## S4 method for signature 'GRanges,GRanges'
pintersect(x, y, resolve.empty = c("none", "max.start", "start.x"), ignore.strand = FALSE, ...)
## S4 method for signature 'GappedAlignments,GRanges'
pintersect(x, y, ...)
## S4 method for signature 'GRanges,GRanges'
psetdiff(x, y, ignore.strand = FALSE, ...)
x, y |
For For For For In addition, for the "parallel" operations, |
fill.gap |
Logical indicating whether or not to force a union by using the rule
|
resolve.empty |
One of |
ignore.strand |
If set to TRUE, the strand information is ignored in the computation and the result has the strand information of x. |
... |
Further arguments to be passed to or from other methods. |
The pintersect methods involving GRanges, GRangesList
and/or GappedAlignments objects use the triplet (sequence name, range,
strand) to determine the element by element intersection of features,
where a strand value of "*" is treated as occurring on both the
"+" and "-" strand.
The psetdiff methods involving GRanges and/or
GRangesList objects use the triplet (sequence name, range,
strand) to determine the element by element set difference of features,
where a strand value of "*" is treated as occurring on both the
"+" and "-" strand.
For union, intersect, setdiff, and pgap: a
GRanges.
For punion and pintersect: when x or y is
not a GRanges object, an object of the same class as this
non-GRanges object. Otherwise, a GRanges object.
For psetdiff: either a GRanges object when both x
and y are GRanges objects, or a GRangesList object
when y is a GRangesList object.
P. Aboyoun
IRanges-setops, GRanges-class, GRangesList-class, GappedAlignments-class, findOverlaps-methods
## GRanges object:
gr <- GRanges(seqnames=c("chr2", "chr1", "chr1"),
ranges=IRanges(1:3, width = 12),
strand=Rle(strand(c("-", "*", "-"))))
## GRangesList object
gr1 <- GRanges(seqnames="chr2",
ranges=IRanges(3, 6))
gr2 <- GRanges(seqnames=c("chr1", "chr1"),
ranges=IRanges(c(7,13), width = 3),
strand=c("+", "-"))
gr3 <- GRanges(seqnames=c("chr1", "chr2"),
ranges=IRanges(c(1, 4), c(3, 9)),
strand=c("-", "-"))
grlist <- GRangesList(gr1=gr1, gr2=gr2, gr3=gr3)
## Union, intersection, and set difference of two GRanges objects
union(gr2, gr3)
intersect(gr2, gr3)
setdiff(gr2, gr3)
## Parallel intersection of two GRanges objects
pintersect(gr2, shift(gr2, 3))
## Parallel intersection of a GRanges and a GRangesList object
pintersect(gr, grlist)
pintersect(grlist, gr)
## Parallel intersection of a GappedAlignments and a GRanges object
library(Rsamtools) # because file ex1.bam is in this package
galn_file <- system.file("extdata", "ex1.bam", package="Rsamtools")
galn <- readGappedAlignments(galn_file)
pintersect(galn, shift(as(galn, "GRanges"), 6L))
## Parallel set difference of two GRanges objects
psetdiff(gr2, shift(gr2, 3))
## Parallel set difference of a GRanges and a GRangesList object
psetdiff(gr, grlist)
## Parallel set difference of two GRangesList objects
psetdiff(grlist, shift(grlist, 3))