У меня есть таблица, подобная 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