Ширина перекрывающегося сегмента в пакете GenomicRanges

Я использую GenomicRanges, чтобы найти, какие расшифровки одного эксперимента перекрываются с расшифровками другого.

head(to_ranges1)
   knowngene  chr strand Start    Gene
1 uc001aaa.3  chr1    +  9873 16409   DDX11L1
2 uc001aac.4  chr1    - 12361 31370  WASH7P
3 uc001aae.4  chr1    - 12361 21759  WASH7P
library(GenomicRanges)
object_one<-with(to_ranges, GRanges(chr, IRanges(Start,End), 
                                     strand,names=knowngene,Gene=Gene)
object_two<-with(to_ranges, GRanges(chr, IRanges(Start,End), 
                                     strand,names=knowngene, Gene=Gene))
mm<-findOverlaps(object_one,object_two)
solution <- data.frame(as.data.frame(object_one[as.matrix(mm)[,1],]),
                       as.data.frame(object_two[as.matrix(mm)[,2],]))

То, что я пытаюсь найти, - это ШИРИНА перекрывающегося сегмента между попаданиями в кадре данных решения, однако единственная ширина, которую я могу получить, связана с исходными стенограммами до процедуры перекрытия.

Не могли бы вы помочь мне пожалуйста?


person user976991    schedule 04.02.2013    source источник


Ответы (1)


Вы можете применить функцию ranges к классу совпадений (результаты findOverlaps). ranges возвращает диапазоны, содержащие пересечение диапазонов в запросе и теме объектов Ranges.

Вы не предоставляете воспроизводимый пример, поэтому вот пример:

query <- IRanges(c(1, 4, 9), c(5, 7, 10))
subject <- IRanges(c(2, 2, 10), c(2, 3, 12))
mm <- findOverlaps(query,subject)
ranges(mm,query,subject)
Ranges of length 3
    start end width
[1]     2   2     1
[2]     2   3     2
[3]    10  10     1
person agstudy    schedule 04.02.2013
comment
Обратите внимание, что (а) ranges теперь устарело и (б) он принимает только IRanges, а не GRanges (следовательно, игнорируя хромосому). Теперь лучше использовать следующий подход: support.bioconductor.org/p/72656. - person Michael Schubert; 29.01.2018