Как выбрать только перекрывающиеся регионы? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть таблица, подобная g1, я предпочитаю иметь области перекрытия, только если есть перекрытие между всеми регионами, которые участвуют в границе (например, между всеми регионами (всеми 3 областями), которые расположены на границе chr10).

gr1 <- 
 makeGRangesFromDataFrame(
data.frame(
  chr = c("1","1","1","1","1","10","10","10","2","2","2"),
  start = c(10,30,35,38,40,15,18,25,20,58,59),
  end = c(20,50,43,49,50,20,25,30,60,70,75)
)

)

Я пробовал:

 hits <- findOverlaps(gr1, ignore.strand=TRUE,drop.self=TRUE,drop.redundant=TRUE)
ovpairs <- Pairs(gr1, gr1, hits=hits)
pint <- pintersect(ovpairs, ignore.strand=TRUE)

это работает немного, но если я могу указать количество областей перекрытия в виде столбца, то все готово!

GRanges object with 11 ranges and 1 metadata column:
   seqnames    ranges strand |       hit
      <Rle> <IRanges>  <count> | <logical>
   [1]        1     35-43      2 |      TRUE
   [2]        1     38-49      2 |      TRUE
   [3]        1     40-50      2 |      TRUE
   [4]        1     38-43      3 |      TRUE
   [5]        1     40-43      4 |      TRUE
   [6]        1     40-49      3 |      TRUE
   [7]       10     18-20      2 |      TRUE
   [8]       10        25      2 |      TRUE
   [9]        2     58-60      2 |      TRUE
  [10]        2     59-60      3 |      TRUE
  [11]        2     59-70      2 |      TRUE
  -------
  seqinfo: 3 sequences from an unspecified genome; no seqlengths
...