用GRanges寻找染色体重叠区

用GRanges寻找染色体重叠区,r,bioinformatics,overlap,bioconductor,genetics,R,Bioinformatics,Overlap,Bioconductor,Genetics,我有一份来自一系列患者的基因组区域范围列表 > head(dotoo) GRanges with 6 ranges and 3 metadata columns: seqnames ranges strand | Id CN Histology <Rle> <IRanges> <Rle> | <factor> <factor>

我有一份来自一系列患者的基因组区域范围列表

> 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
>头部(dotoo)
具有6个范围和3个元数据列的Grange:
seqnames ranges strand | Id CN组织学
|    
[1] 3[167946693,168005541]*| 9 3马里兰州
[2] 3[189907623189954633]*| 9 3马里兰州
[3] 6[132274121132384438]*| 9 3马里兰州
[4] 11[6768509670138399]*| 9 4马里兰州
[5] 12[53859037,53927595]*| 9 3马里兰州
[6] 15[1983004920089383]*| 9 1马里兰州
当我用

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

我看到许多重叠区域,看到图像了吗

如何找出至少3名患者之间哪些区域重叠,并且共享了
CN


基本上,如果你看这张图片,我如何找到“叠加”的区域,以及仅共享的部分?有什么办法吗?

获取“不相交”区域的列表(可能这不是您想要的?其他选项有
reduce
,只有原始的
dotoo
对象,完全没有此步骤)

查找原始区域和每个不相交区域之间的重叠

olap = findOverlaps(query=dotoo, subject=d)
根据主题和CN将索引拆分为重叠部分

splt = split(seq_along(olap), list(subjectHits(olap), dotoo$CN[queryHits(olap)]))
将这些筛选为满足您条件的

filt = Filter(function(x) length(x) >= 3, splt)
filt
现在是指向
olap
的索引列表。您可以创建一个包含重叠元素的GrangeList,如下所示:

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

询问有关Bioconductor软件包的问题(无需订阅)。

您是否尝试过
findOverlaps()
?我尝试过,但这不是我需要的。
idx = unlist(filt)
grp = rep(seq_along(filt), sapply(filt, length))
splitAsList(dotoo[queryHits(olap)[idx]], grp)