给定两个类似于GenomicRanges的GenomicRanges:
library(GenomicRanges)
gr1 <-
makeGRangesFromDataFrame(
data.frame(
chr = c("1","1","2","2"),
start = c(10,50,10,50),
end = c(20,60,20,60)
)
)
gr2 <-
makeGRangesFromDataFrame(
data.frame(
chr = c("2","2","3","3"),
start = c(15,40,10,50),
end = c(25,55,20,60)
)
)我需要找到重叠段的重叠大小(宽度)。在我的例子中,这将是5(对于gr13和gr21)和5(对于gr4和gr22)。给定的在命中类上使用here的ranges()解决方案不适合GenomicRanges类(似乎):
mm <- findOverlaps(gr1,gr2)
ranges(mm,gr1,gr2).local(x,.)中的错误:“查询”必须是长度等于查询次数的范围
一个人会希望GenomicRanges::subsetByOverlaps()有一个参数,它可以从字面上分割并返回重叠。
更新(参见下面):解决方案在包本身,GenomicRanges::intersect()中,因此:
width(intersect(gr1, gr2))发布于 2016-01-14 23:21:46
GenomicRanges包似乎有一个特定的功能,intersect()。因此,解决方案相当简单:
width(intersect(gr1, gr2))1 6 6
(这是正确的)
https://stackoverflow.com/questions/34801273
复制相似问题