2013-12-13 6 views
1

일련의 환자에서 유래 된 게놈 영역의 범위 목록이 있습니다. 나는 이미지 참조GRanges와 염색체의 중복 영역 찾기

autoplot(dotoo, aes(fill=as.factor(Id), color=as.factor(Id)))

내가 많은 중복 영역을 참조하여 게놈 수차를 플롯하면

> head(dotoo) 
GRanges with 6 ranges and 3 metadata columns: 
    seqnames     ranges strand |  Id  CN Histology 
     <Rle>    <IRanges> <Rle> | <factor> <factor> <factor> 
[1]  3 [167946693, 168005541]  * |  9  3  MD 
[2]  3 [189907623, 189954633]  * |  9  3  MD 
[3]  6 [132274121, 132384438]  * |  9  3  MD 
[4]  11 [ 67685096, 70138399]  * |  9  4  MD 
[5]  12 [ 53859037, 53927595]  * |  9  3  MD 
[6]  15 [ 19830049, 20089383]  * |  9  1  MD 

enter image description here

사이에 겹치는 영역을 찾아 어떻게 적어도 3 명의 환자가 CN을 공유 했습니까?

기본적으로 그림을 보면 "겹쳐진"영역과 공유되는 부분 만 찾을 수 있습니까? 전혀 방법이 있습니까?

+0

'findOverlaps()'를 사용해 보셨습니까? – nacnudus

+0

나는 그것이 내가 필요한 것이 아니다. –

답변

3

'분리 된'지역의 목록을 가져옵니다

d = disjoint(dotoo) 

발견은 원래 사이에 중복 (아마도 이것이 당신이 원하는 무엇을하지? 다른 옵션은 모든 단계없이 reduce 그냥 원래 dotoo 객체이다)

splt = split(seq_along(olap), list(subjectHits(olap), dotoo$CN[queryHits(olap)])) 
피사체에 기초하여 CN에 이산 영역

olap = findOverlaps(query=dotoo, subject=d) 

각각 기초하여 상기 중첩에 대한 인덱스를 분할 당신의 상태

filt = Filter(function(x) length(x) >= 3, splt) 

filt을 만족하는 것들

필터이 지금 olap로 인덱스의 목록입니다. 당신은 Bioconductor mailing listBioconductor 패키지에 대한

idx = unlist(filt) 
grp = rep(seq_along(filt), sapply(filt, length)) 
splitAsList(dotoo[queryHits(olap)[idx]], grp) 

질문 질문으로 중복 요소가 GRangesList을 만들 수 있습니다 (더 가입 필요 없음).