Entering edit mode
7.0 years ago
Tori
▴
90
I have following two IRanges objects query and ref. I would like to get overlap in number of basepairs.
> ref
chr start end
1 1 120 190
2 1 910 1050
3 1 1100 1140
4 1 2550 2650
5 2 50 100
> query
chr start end
1 1 101 173
2 1 918 1000
3 1 1060 1115
4 1 2468 2508
I got only this far.
library(GenomicRanges)
query = structure(list(chr = c("1", "1", "1", "1"),
start = c(101L, 918L, 1060L, 2468L),
end = c(173L, 1000L, 1115L, 2508L)
), .Names = c("chr", "start", "end"),
row.names = c(1L, 2L, 3L, 4L), class = "data.frame")
ref = structure(list(chr = c("1", "1", "1", "1","2"),
start = c(120L, 910L, 1100L, 2550L, 50L),
end = c(190L, 1050L, 1140L, 2650L, 100L)
), .Names = c("chr", "start", "end"),
row.names = c(1L, 2L, 3L, 4L, 5L), class = "data.frame")
refIR <- IRanges(start= ref$start, end =ref$end, name=ref$chr)
testIR <- IRanges(start = query$start, end =query$end, name=query$chr)
result <- findOverlaps(refIR, testIR, type="any")
data.frame(refIR[queryHits(result),], testIR[subjectHits(result),])