首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用GRanges技术寻找染色体重叠区域

利用GRanges技术寻找染色体重叠区域
EN

Stack Overflow用户
提问于 2013-12-14 07:04:10
回答 1查看 1.7K关注 0票数 2

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

代码语言:javascript
复制
> 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

基本上,如果你看这张图,我如何找到“堆叠”的区域,而只找到共享的部分?有没有办法呢?

EN

回答 1

Stack Overflow用户

发布于 2013-12-14 10:05:21

获取一个“不相交”区域的列表(也许这不是你想要的?其他选项是reduce,并且只是原始的dotoo对象,根本不需要这一步)

代码语言:javascript
复制
d = disjoint(dotoo)

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

代码语言:javascript
复制
olap = findOverlaps(query=dotoo, subject=d)

基于主题和CN将索引拆分为重叠部分

代码语言:javascript
复制
splt = split(seq_along(olap), list(subjectHits(olap), dotoo$CN[queryHits(olap)]))

将这些过滤到满足您的条件的那些

代码语言:javascript
复制
filt = Filter(function(x) length(x) >= 3, splt)

filt现在是olap中的一个索引列表。您可以创建具有重叠元素的GRangesList,如下所示

代码语言:javascript
复制
idx = unlist(filt)
grp = rep(seq_along(filt), sapply(filt, length))
splitAsList(dotoo[queryHits(olap)[idx]], grp)

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20577492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档