У меня есть следующий объект GenomicRanges, созданный с помощью этого:
library(GenomicRanges)
gr <- GRanges(seqnames = "chr1", strand = c("+", "-","-", "+"),ranges = IRanges(start = c(1,3,3,5), width = 3))
gr
Это выглядит так:
GRanges object with 4 ranges and 0 metadata columns:
seqnames ranges strand
<Rle> <IRanges> <Rle>
[1] chr1 1-3 +
[2] chr1 3-5 -
[3] chr1 3-5 -
[4] chr1 5-7 +
Что я хочу сделать, так это получить оттуда уникальные строки, получив это (закодированное вручную)
GRanges object with 3 ranges and 0 metadata columns:
seqnames ranges strand
<Rle> <IRanges> <Rle>
[1] chr1 1-3 +
[2] chr1 3-5 -
[3] chr1 5-7 +
Как я могу этого добиться? На самом деле мне нужно обработать около 9 миллионов строк.
Я могу использовать этот метод, но очень медленный:
library(tidyverse)
gr %>%
as.tibble() %>%
distinct()