Split a GRanges into one GRanges per chromosome/strand pair and put in GRangesList?
1
0
Entering edit mode
5.4 years ago
endrebak852 ▴ 110

I want to find the coverage for each chromosome/strand pair, but unfortunately, the coverage-function takes no ìgnore.strand=FALSE` argument. Therefore I want to split a GRanges into the constituent chromosome/strand pairs and run coverage on the GRangesList. How do I do that?

Example data:

library(GenomicRanges)
gr <- GRanges( seqnames=Rle(c("chr1", "chr2", "chr1", "chr3"), c(1, 3, 2, 4)),
ranges=IRanges(1:10, end=10),
strand=Rle(strand(c("-", "+", "*", "+", "-")), c(1, 2, 2, 3, 2)),
seqlengths=c(chr1=11, chr2=12, chr3=13))
GenomicRanges • 2.0k views
ADD COMMENT
1
Entering edit mode
5.4 years ago
ATpoint 81k

There is no need to use GRangesList() as the coverage() collapses the list to a normal GRanges() anyway. Therefore, simply split by strand (not discussing now if the definition of coverage in a strand-specific manner makes sense or not):

coverage(gr[gr@strand == "+"])
coverage(gr[gr@strand == "-"])
ADD COMMENT
0
Entering edit mode

Then I cannot do RleList1 - RleList2, but thanks :)

ADD REPLY

Login before adding your answer.

Traffic: 2870 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6