If I have two GRanges
objects is there is an easy way to get the relative position of one range with respect to the other in a strand specific manner?
For example, if the first range is chr1:100-110:-
and the second range is chr1:101-105:-
then relative to the “start” of the first, the start of the second is 5
(110 - 105
). However, if they were both on the positive strand, then the relative start of the second with respect to the first would be 1
(101 - 100
).
Given that this can become a complicated calculation to keep track of (e.g. features on opposite strands; different chromosomes, which would be an error; features with missing strand info; or relative to other positions, such as end or center; etc.), I was hoping there’s something in GenomicRanges
or IRanges
that can do this, but I haven’t been able to find anything.