У меня есть закодированный вектор длины прогона, представляющий некоторое значение в каждой позиции генома по порядку. В качестве игрушечного примера предположим, что у меня есть только одна хромосома длиной 10, тогда у меня будет вектор, похожий на
library(GenomicRanges)
set.seed(1)
toyData = Rle(sample(1:3,10,replace=TRUE))
Я хотел бы принудить это к объекту GRanges. Лучшее, что я могу придумать, это
gr = GRanges('toyChr',IRanges(cumsum(c(0,runLength(toyData)[-nrun(toyData)])),
width=runLength(toyData)),
toyData = runValue(toyData))
который работает, но довольно медленно. Есть ли более быстрый способ построить тот же объект?
start(toyData)-1
, чтобы получить начало интервала, но это не улучшит скорость. - person NicE   schedule 13.09.2016start(toyData)-1
› - person The Unfun Cat   schedule 16.09.2016sample(1:15,10^8,replace=TRUE)
)? - person Joseph Wood   schedule 19.09.2016Rle
. Это функцияIRanges
/GRanges
, которая вообще является медленной частью? - person Roman   schedule 19.09.2016