Per GRanges input (gr) of single position inputs,
create a GRangesList window output of specified
upstream, downstream region relative to some transcript "tx".
If downstream is 20, it means the window will start 20 downstream of gr start site (-20 in relative transcript coordinates.) If upstream is 20, it means the window will start 20 upstream of gr start site (+20 in relative transcript coordinates.) It will keep exon structure of tx, so if -20 is on next exon, it jumps to next exon.
windowPerGroup(gr, tx, upstream = 0L, downstream = 0L)
a GRanges/IRanges object (startSites or others, must be single point per in genomic coordinates)
an integer, default (0), relative region to get upstream from.
an integer, default (0), relative region to get downstream from
If a region has a part that goes out of bounds, E.g if you try to get window
around the CDS start site, goes longer than the 5' leader start site,
it will set start to the edge boundary
(the TSS of the transcript in this case).
If region has no hit in bound, a width 0 GRanges object is returned.
This is useful for things like countOverlaps, since 0 hits will then always
be returned for the correct object index. If you don't want the 0 width
reduce() to remove 0-width windows.
a GRanges, or GRangesList object if any group had > 1 exon.
1 2 3 4 5 6 7 8 9 10
# find 2nd codon of an ORF on a spliced transcript ORF <- GRanges("1", c(3), "+") # start site names(ORF) <- "tx1_1" # ORF 1 on tx1 tx <- GRangesList(tx1 = GRanges("1", c(1,3,5,7,9,11,13), "+")) windowPerGroup(ORF, tx, upstream = -3, downstream = 5) # <- 2nd codon # With multiple extensions downstream ORF <- rep(ORF, 2) names(ORF) <- "tx1_2" windowPerGroup(ORF, tx, upstream = 0, downstream = c(3, 5))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.