GRanges coordinates based on another GRanges objectR/AllGenerics.R, R/shiftGenomicToTranscript.R
shiftGenomicToTranscript.RdshiftGenomicToTranscript shifts positions of a
GRanges
object based on coordinates of another GRanges object. The most common
application is to shift genomic coordinates to transcript coordinates, which
is reflected in the name. shiftTranscriptToGenomic implements the
reverse operation.
Matches are determined by
findOverlaps for
shiftGenomicToTranscript and by
findMatches for
shiftTranscriptToGenomic using the seqnames of the
subject and the names of tx.
shiftTranscriptToGenomic(subject, tx)
shiftGenomicToTranscript(subject, tx)
# S4 method for class 'GRanges,GRangesList'
shiftTranscriptToGenomic(subject, tx)
# S4 method for class 'GRangesList,GRangesList'
shiftTranscriptToGenomic(subject, tx)
# S4 method for class 'GRanges,GRangesList'
shiftGenomicToTranscript(subject, tx)
# S4 method for class 'GRangesList,GRangesList'
shiftGenomicToTranscript(subject, tx)a GRanges or
GRangesList object
a named GRangesList
object.
a GRanges or
GRangesList object depending
on the type of subject
library(GenomicRanges)
# Construct some example data
subject1 <- GRanges("chr1", IRanges(3, 6),
strand = "+")
subject2 <- GRanges("chr1", IRanges(c(17,23), width=3),
strand = c("+","-"))
subject3 <- GRanges("chr2", IRanges(c(51, 54), c(53, 59)),
strand = "-")
subject <- GRangesList(a=subject1, b=subject2, c=subject3)
tx1 <- GRanges("chr1", IRanges(1, 40),
strand="+")
tx2 <- GRanges("chr1", IRanges(10, 30),
strand="+")
tx3 <- GRanges("chr2", IRanges(50, 60),
strand="-")
tx <- GRangesList(a=tx1, b=tx2, c=tx3)
# shift to transcript coordinates. Since the third subject does not have
# a match in tx it is dropped with a warning
shifted_grl <- shiftGenomicToTranscript(subject,tx)
#> Warning: Dropping elements of 'subject' which could not be repositioned.
# ... and back
shifted_grl2 <- shiftTranscriptToGenomic(shifted_grl,tx)
# comparison of ranges work. However the seqlevels differ
ranges(shifted_grl2) == ranges(subject[list(1,c(1,1),c(1,2))])
#> Warning: longer argument not a multiple of length of shorter
#> LogicalList of length 4
#> [["a"]] TRUE
#> [["a"]] FALSE FALSE
#> [["b"]] FALSE FALSE
#> [["c"]] FALSE FALSE