2015-02-09 20 views
0

我已经使用了两个不同的目标预测程序预测基因上的结合位点,并使用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。

+0

循环似乎是一个很好的方式去... ... – Frank 2015-02-09 15:24:24

回答

1

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更多详细信息,封装插图(来自上面的着陆页),这些出版物ab作为一般介绍,而Bioconductor support site如果远程基础设施似乎很有用