windowPerReadLength {ORFik} | R Documentation

## Find proportion of reads per position per read length in window

### Description

This is defined as: Fraction of reads per read length, per position in whole window (defined by upstream and downstream) If tx is not NULL, it gives a metaWindow, centered around startSite of grl from upstream and downstream. If tx is NULL, it will use only downstream , since it has no reference on how to find upstream region. The exception is when upstream is negative, that is, going into downstream region of the object.

### Usage

    windowPerReadLength(
      grl,
      tx = NULL,
      reads,
      pShifted = TRUE,
      upstream = ifelse(!is.null(tx), ifelse(pShifted, 5, 20), min(ifelse(pShifted, 5, 20),
        0)),
      downstream = ifelse(pShifted, 20, 5),
      acceptedLengths = NULL,
      zeroPosition = upstream,
      scoring = "transcriptNormalized",
      weight = "score",
      drop.zero.dt = FALSE,
      append.zeroes = FALSE,
      windows = startRegion(grl, tx, TRUE, upstream, downstream)
    )

### Arguments

`grl` | a `GRangesList` object with usually either leaders, cds', 3' utrs or ORFs
`tx` | default NULL, a GRangesList of transcripts or (container region), names of tx must contain all grl names. The names of grl can also be the ORFik orf names. that is "txName_id"
`reads` | a `GAlignments` or `GRanges` object of RiboSeq, RnaSeq etc. Weigths for scoring is default the 'score' column in 'reads'
`pShifted` | a logical (TRUE), are Ribo-seq reads p-shifted to size 1 width reads? If upstream and downstream is set, this argument is irrelevant. So set to FALSE if this is not p-shifted Ribo-seq.
`upstream` | an integer (5), relative region to get upstream from. Default: `ifelse(!is.null(tx), ifelse(pShifted, 5, 20), min(ifelse(pShifted, 5, 20), 0))`
`downstream` | an integer (20), relative region to get downstream from. Default: `ifelse(pShifted, 20, 5)`
`acceptedLengths` | an integer vector (NULL), the read lengths accepted. Default NULL, means all lengths accepted.
`zeroPosition` | an integer DEFAULT (upstream), what is the center point? Like leaders and cds combination, then 0 is the TIS and -1 is last base in leader. NOTE!: if windows have different widths, this will be ignored.
`scoring` | a character (transcriptNormalized), which meta coverage scoring ? one of (zscore, transcriptNormalized, mean, median, sum, sumLength, fracPos), see ?coverageScorings for more info. Use to decide a scoring of hits per position for metacoverage etc. Set to NULL if you do not want meta coverage, but instead want per gene per position raw counts.
`weight` | (default: 'score'), if defined a character name of valid meta column in subject. GRanges("chr1", 1, "+", score = 5), would mean score column tells that this alignment region was found 5 times. ORFik ofst, bedoc and .bedo files contains a score column like this. As do CAGEr CAGE files and many other package formats. You can also assign a score column manually.
`drop.zero.dt` | logical FALSE, if TRUE and as.data.table is TRUE, remove all 0 count positions. This greatly speeds up and most importantly, greatly reduces memory usage. Will not change any plots, unless 0 positions are used in some sense. (mean, median, zscore coverage will only scale differently)
`append.zeroes` | logical, default FALSE. If TRUE and drop.zero.dt is TRUE and all windows have equal length, it will add back 0 values after transformation. Sometimes needed for correct plots, if TRUE, will call abort if not all windows are equal length!
`windows` | the GRangesList windows to actually check, default: `startRegion(grl, tx, TRUE, upstream, downstream)`.

### Details

Careful when you create windows where not all transcripts are long enough, this function usually is used first with filterTranscripts to make sure they are of all of valid length!

### Value

a data.table with 4 columns: position (in window), score, fraction (read length). If score is NULL, will also return genes (index of grl). A note is that if no coverage is found, it returns an empty data.table.

### See Also

Other coverage: `coverageScorings()`, `metaWindow()`, `regionPerReadLength()`, `scaledWindowPositions()`

### Examples

    cds <- GRangesList(tx1 = GRanges("1", 100:129, "+"))
    tx <- GRangesList(tx1 = GRanges("1", 80:129, "+"))
    reads <- GRanges("1", seq(79,129, 3), "+")
    windowPerReadLength(cds, tx, reads, scoring = "sum")
    windowPerReadLength(cds, tx, reads, scoring = "transcriptNormalized")

[Package ORFik version 1.14.7 Index]