How to get overlap count (in basepair) of two IRange objects?
0
0
Entering edit mode
6.3 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),])
R IRanges • 1.3k views
ADD COMMENT

Login before adding your answer.

Traffic: 2125 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6