做这些数量范围相互重叠
问题描述:
我已经使用了两个不同的目标预测程序预测基因上的结合位点,并使用R键处理,我得到做这些数量范围相互重叠
的问题是,该方案给予不同数量的结果每个基因的靶标和位置略有不同。我试图做的是看看这些网站是否相同,或者至少,如果我有开始位置和停止位置,这些范围是否在程序之间重叠。
说我有两个程序X和Y;
X预测两个站点,x1是两个站点的起始位置,x2是停止位置。同样y的
x1<-c(1521,1259)
x2<-c(1544,1282)
y1<-c(1825,1522,1259,362)
y2<-c(1848,1543,1282,384)
所以无论是X点的重叠在Y.和输出表中的那些位置的网站:
| x1 | x2 | y1 | y2 |
| 1521 | 1544 | 1522 | 1543 |
| 1259 | 1282 | y1259 | 1282 |
我最初的想法,就是如果我只有一个每个程序的网站,然后做以下将告诉我,如果他们重叠或不。 (Y停止posiiton,应该比起始位置X大和停止x的位置是大于Y)
x1 <= y2 && y1 <= x2
我不知道我怎么能为我的问题做相同的,至少,不是没有写很多循环和ifs。
答
的IRanges包(和GenomicRanges基因组数据,当染色体和可能链是很重要的)允许您定义范围
library(IRanges)
x <- IRanges(x1, x2)
y <- IRanges(y1, y2)
,并询问他们的问题
y %over% x # any type of overlap
y %within% x # strictly within
看到?findOverlaps
更多详细信息,封装插图(来自上面的着陆页),这些出版物a,b作为一般介绍,而Bioconductor support site如果远程基础设施似乎很有用
循环似乎是一个很好的方式去... ... – Frank 2015-02-09 15:24:24