How do I find the set of a genomicrange? (same as union(gr, gr))
library(GenomicRanges)
gr0 <- GRanges(Rle(c("chr2", "chr2", "chr1", "chr3"), c(1, 3, 2, 4)), IRanges(1:10, width=10:1))
union(gr0, gr0)
# GRanges object with 3 ranges and 0 metadata columns:
# seqnames ranges strand
# <Rle> <IRanges> <Rle>
# [1] chr2 [1, 10] *
# [2] chr1 [5, 10] *
# [3] chr3 [7, 10] *
# -------
# seqinfo: 3 sequences from an unspecified genome; no seqlengths
The union operation is binary. Is there a unary union method?
• 2,299 views
•
link
1 answer
Possibly, you are referring to normalized ranges, see Section 2.1 in https://bioconductor.org/packages/release/bioc/vignettes/IRanges/inst/doc/IRangesOverview.pdf
Then, the function to use is reduce(gr0).
> reduce(gr0)
GRanges object with 3 ranges and 0 metadata columns:
seqnames ranges strand
<Rle> <IRanges> <Rle>
[1] chr2 1-10 *
[2] chr1 5-10 *
[3] chr3 7-10 *
-------
seqinfo: 3 sequences from an unspecified genome; no seqlengths
> identical(reduce(gr0), union(gr0,gr0))
[1] TRUE
• 1 views
•
link
Log in to answer this question.