我有一份来自一系列患者的基因组区域范围的列表。
> 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当我绘制基因组像差图时
autoplot(dotoo, aes(fill=as.factor(Id), color=as.factor(Id)))
我看到许多重叠的区域,见图

如何找出至少3名患者之间的哪些区域重叠,并共享CN
基本上,如果你看这张图,我如何找到“堆叠”的区域,而只找到共享的部分?有没有办法呢?
发布于 2013-12-14 10:05:21
获取一个“不相交”区域的列表(也许这不是你想要的?其他选项是reduce,并且只是原始的dotoo对象,根本不需要这一步)
d = disjoint(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中的一个索引列表。您可以创建具有重叠元素的GRangesList,如下所示
idx = unlist(filt)
grp = rep(seq_along(filt), sapply(filt, length))
splitAsList(dotoo[queryHits(olap)[idx]], grp)询问有关Bioconductor mailing list上的Bioconductor软件包的问题(无需订阅)。
https://stackoverflow.com/questions/20577492
复制相似问题