Эти диапазоны номеров перекрывают друг друга

Я использую две разные целевые программы прогнозирования для предсказания сайтов связывания генов и использую R для обработки результатов, которые я получаю

Проблема в том, что программы дают разное количество целей на ген, а локации немного различаются. Я пытался выяснить, совпадают ли эти сайты, или, по крайней мере, если у меня есть позиции "Старт" и "Стоп", перекрываются ли эти диапазоны между программами.

Скажем, у меня есть две программы X и Y;

X предсказывает два сайта, x1 - начальные позиции для обоих сайтов, x2 - конечные позиции. То же для тебя

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

Я не уверен, как я мог бы сделать то же самое для моей проблемы, по крайней мере, не без написания большого количества циклов и ifs.

1 ответ

Пакет IRangesGenomicRanges для геномных данных, когда важны хромосома и, возможно, нить) позволяет определять диапазоны

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, если инфраструктура диапазонов кажется полезной.

Другие вопросы по тегам