GenomicRanges包中重叠片段的宽度

4

我正在使用GenomicRanges来查找一个实验中的转录本与另一个实验中的转录本重叠的情况。

head(to_ranges1)
   knowngene  chr strand Start    Gene
1 uc001aaa.3  chr1    +  9873 16409   DDX11L1
2 uc001aac.4  chr1    - 12361 31370  WASH7P
3 uc001aae.4  chr1    - 12361 21759  WASH7P
library(GenomicRanges)
object_one<-with(to_ranges, GRanges(chr, IRanges(Start,End), 
                                     strand,names=knowngene,Gene=Gene)
object_two<-with(to_ranges, GRanges(chr, IRanges(Start,End), 
                                     strand,names=knowngene, Gene=Gene))
mm<-findOverlaps(object_one,object_two)
solution <- data.frame(as.data.frame(object_one[as.matrix(mm)[,1],]),
                       as.data.frame(object_two[as.matrix(mm)[,2],]))

我需要找到解决方案数据框中两个碰撞结果之间重叠部分的宽度,但我只能获得与重叠程序之前的原始转录本相关的宽度。请问你能帮我吗?
1个回答

6

您可以在hits类(即findOverlaps的结果)上应用ranges函数。ranges返回一个Ranges对象,该对象包含查询和主题范围交集中的范围。

由于没有提供可重现的示例,因此这里提供一个示例:

query <- IRanges(c(1, 4, 9), c(5, 7, 10))
subject <- IRanges(c(2, 2, 10), c(2, 3, 12))
mm <- findOverlaps(query,subject)
ranges(mm,query,subject)
Ranges of length 3
    start end width
[1]     2   2     1
[2]     2   3     2
[3]    10  10     1

4
请注意,(a) ranges 已被弃用,(b) 它仅接受 IRanges,不接受 GRanges(因此忽略染色体)。现在有一个更好的方法:https://support.bioconductor.org/p/72656/。 - Michael Schubert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接