2013-03-26 22 views
1

我正在尝试使用IRanges将一组范围分组为独特的集合。我希望至少有100个重叠。这是行不通的。谁能帮我吗?我怀疑这与reduce()如何工作有关,但似乎无法找出解决方案。IRanges - minoverlap

例子:

start.vec<-c(2021,2378,2718,2275) 
end.vec<-c(2374,2737,3408,3408) 
ir<-IRanges(start.vec,end.vec) 
grouped<-subjectHits(findOverlaps(ir,reduce(ir),minoverlap=100)) 
+0

哪里是IRanges从一个很好的资源?编辑:哦,我知道,这是一个Bioconductor软件包。 – 2013-03-26 05:26:05

回答

0

不是100%肯定,你在找什么,但如果我

> hits = findOverlaps(ir, minoverlap=100L) 

我得到一个对象,告诉我哪些查询重叠,受试者,其中,查询和主题实际上是相同的范围

> hits 
Hits of length 10 
queryLength: 4 
subjectLength: 4 
    queryHits subjectHits 
    <integer> <integer> 
1   1   1 
2   1   4 
3   2   2 
4   2   4 
5   3   3 
6   3   4 
7   4   1 
8   4   2 
9   4   3 
10   4   4 

我可以得到一组列表

> split(subjectHits(hits), queryHits(hits)) 
$`1` 
[1] 1 4 

$`2` 
[1] 2 4 

$`3` 
[1] 3 4 

$`4` 
[1] 1 2 3 4 

您可以排除自我与

> hits1 = hits[queryHits(hits) != subjectHits(hits)] 

Bioconductor mailing list命中是问这些问题

+0

谢谢! @MartinMorgan – 2013-03-26 19:01:05