【问题标题】:R, GenomicRanges: find the width of overlapping genomic rangesR,GenomicRanges:找到重叠基因组范围的宽度
【发布时间】:2016-04-20 11:15:00
【问题描述】:

给定两个 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(对于 gr1[3] 和 gr21)和 5(对于 gr[4] 和 gr2[2])。在命中类上使用ranges() 给出here 的解决方案不适合GenomicRanges 类(似乎):

mm <- findOverlaps(gr1,gr2)
ranges(mm,gr1,gr2)

.local(x, ...) 中的错误: “查询”必须是长度等于查询数的范围

有人希望GenomicRanges::subsetByOverlaps() 有一个参数,可以从字面上切分并返回重叠部分。

更新(见下文):解决方案在包本身中,GenomicRanges::intersect(),所以:

width(intersect(gr1, gr2))

【问题讨论】:

标签: r overlap bioconductor


【解决方案1】:

GenomicRanges 包似乎有一个特定的功能,intersect()。所以解决方案相当简单:

width(intersect(gr1, gr2))

[1] 6 6

(这是正确的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    相关资源
    最近更新 更多