Function to scale mappings of spliced features (query ranges) to their corresponding genome coordinates (subject ranges). The method accounts for introns in the subject ranges that are absent in the query ranges. A use case example are uORFs predicted in the 5' UTRs sequences using predORF. These query ranges are given relative to the 5' UTR sequence. The scaleRanges function will scale them to the corresponding genome coordinates. This way they can be used in RNA-Seq expression experiments like other gene ranges.

scaleRanges(subject, query, type = "custom", verbose = TRUE)



Genomic ranges provided as GRangesList object. Their name and length requirements are described under query.


Feature level ranges provided as GRangesList object. The names of the query ranges need to match the names of the GRangesList object assigened to the subject argument. In addition, the length of each query range cannot exceed the total length of the corresponding subject range set.


Feature name to use in type column of GRangesList result.


The setting verbose=FALSE suppresses all print messages.


Object of class GRangesList


Thomas Girke

See also



## Usage for simple example
subject <- GRanges(seqnames="Chr1", IRanges(c(5,15,30),c(10,25,40)), strand="+") 
query <- GRanges(seqnames="myseq", IRanges(1, 9), strand="+")
scaleRanges(GRangesList(myid1=subject), GRangesList(myid1=query), type="test")
#> Scaled range 1 of 1 ranges: myid1:1_9 
#> GRangesList object of length 1:
#> $`myid1:1_9`
#> GRanges object with 2 ranges and 3 metadata columns:
#>       seqnames    ranges strand |      feature_by featuretype_id featuretype
#>          <Rle> <IRanges>  <Rle> | <CharacterList>    <character> <character>
#>   [1]     Chr1      5-10      + |       myid1:1_9    myid1:1_9.1        test
#>   [2]     Chr1     15-17      + |       myid1:1_9    myid1:1_9.2        test
#>   -------
#>   seqinfo: 1 sequence from an unspecified genome; no seqlengths

if (FALSE) {
## Usage for more complex example
library(GenomicFeatures); library(systemPipeRdata)
gff <- system.file("extdata/annotation", "tair10.gff", package="systemPipeRdata")
txdb <- makeTxDbFromGFF(file=gff, format="gff3", organism="Arabidopsis")
futr <- fiveUTRsByTranscript(txdb, use.names=TRUE)
genome <- system.file("extdata/annotation", "tair10.fasta", package="systemPipeRdata")
dna <- extractTranscriptSeqs(FaFile(genome), futr)
uorf <- predORF(dna, n="all", mode="orf", longest_disjoint=TRUE, strand="sense")
grl_scaled <- scaleRanges(subject=futr, query=uorf, type="uORF", verbose=TRUE)
export.gff3(unlist(grl_scaled), "uorf.gff")