【问题标题】:do these number ranges overlap each other这些数字范围是否相互重叠
【发布时间】:2023-04-11 05:15:01
【问题描述】:

我一直在使用两个不同的目标预测程序来预测基因上的结合位点,并使用 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的停止位置,应大于起始位置x,x的停止位置大于y)

x1 <= y2 && y1 <= x2

我不确定如何解决我的问题,至少,如果不写很多循环和 if 就不行。

【问题讨论】:

  • 循环似乎是处理它的好方法......

标签: r numeric-ranges


【解决方案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(如果范围基础设施似乎有用的话)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2011-12-28
    • 2021-12-27
    • 2010-12-29
    相关资源
    最近更新 更多