1

IRanges を使用して、一連の範囲を一意のセットにグループ化しようとしています。少なくとも 100 のオーバーラップが必要です。これは機能していません。誰でも私を助けることができますか?私はそれがどのように機能しているかに関係しているのではないかと疑っていますがreduce()、解決策を理解できないようです.

例:

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))
4

1 に答える 1

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 メーリング リストは、これらの質問をするための優れたリソースです。

于 2013-03-26T17:18:34.547 に答える