coverage-methods {GenomicRanges} | R Documentation

## Coverage of a GRanges or GRangesList object

### Description

`coverage` methods for GRanges and GRangesList objects.

NOTE: The `coverage` generic function and methods for IntegerRanges and IntegerRangesList objects are defined and documented in the IRanges package. Methods for GAlignments and GAlignmentPairs objects are defined and documented in the GenomicAlignments package.

### Usage

    ## S4 method for signature 'GenomicRanges'
    coverage(x, shift=0L, width=NULL, weight=1L,
                method=c("auto", "sort", "hash"))

    ## S4 method for signature 'GRangesList'
    coverage(x, shift=0L, width=NULL, weight=1L,
                method=c("auto", "sort", "hash"))

### Arguments

`x` | A GenomicRanges or GRangesList object.
`shift, weight` | A numeric vector or a list-like object. If numeric, it must be parallel to `x` (recycled if necessary). If a list-like object, it must have 1 list element per seqlevel in `x`, and its names must be exactly `seqlevels(x)`. Alternatively, each of these arguments can also be specified as a single string naming a metadata column in `x` (i.e. a column in `mcols(x)`) to be used as the `shift` (or `weight`) vector. See `?coverage` in the IRanges package for more information about these arguments. Note that when `x` is a StitchedGPos object, each of these arguments can only be a single number or a named list-like object.
`width` | Either `NULL` (the default), or an integer vector. If `NULL`, it is replaced with `seqlengths(x)`. Otherwise, the vector must have the length and names of `seqlengths(x)` and contain NAs or non-negative integers. See `?coverage` in the IRanges package for more information about this argument.
`method` | See `?coverage` in the IRanges package for a description of this argument.

### Details

When `x` is a GRangesList object, `coverage(x, ...)` is equivalent to `coverage(unlist(x), ...)`.

### Value

A named RleList object with one coverage vector per seqlevel in `x`.

### Author(s)

H. Pagès and P. Aboyoun

### See Also

- `coverage` in the IRanges package.

- coverage-methods in the GenomicAlignments package.

- RleList objects in the IRanges package.

- GRanges, GPos, and GRangesList objects.

### Examples

    ## Coverage of a GRanges object:
    gr <- GRanges(
            seqnames=Rle(c("chr1", "chr2", "chr1", "chr3"), c(1, 3, 2, 4)),
            ranges=IRanges(1:10, end=10),
            strand=Rle(strand(c("-", "+", "*", "+", "-")), c(1, 2, 2, 3, 2)),
            seqlengths=c(chr1=11, chr2=12, chr3=13))
    cvg <- coverage(gr)
    pcvg <- coverage(gr[strand(gr) == "+"])
    mcvg <- coverage(gr[strand(gr) == "-"])
    scvg <- coverage(gr[strand(gr) == "*"])
    stopifnot(identical(pcvg + mcvg + scvg, cvg))

    ## Coverage of a GPos object:
    pos_runs <- GRanges(c("chr1", "chr1", "chr2"),
                        IRanges(c(1, 5, 9), c(10, 8, 15)))
    gpos <- GPos(pos_runs)
    coverage(gpos)

    ## Coverage of a GRangesList object:
    gr1 <- GRanges(seqnames="chr2",
                   ranges=IRanges(3, 6),
                   strand = "+")
    gr2 <- GRanges(seqnames=c("chr1", "chr1"),
                   ranges=IRanges(c(7,13), width=3),
                   strand=c("+", "-"))
    gr3 <- GRanges(seqnames=c("chr1", "chr2"),
                   ranges=IRanges(c(1, 4), c(3, 9)),
                   strand=c("-", "-"))
    grl <- GRangesList(gr1=gr1, gr2=gr2, gr3=gr3)
    stopifnot(identical(coverage(grl), coverage(unlist(grl))))

[Package GenomicRanges version 1.40.0 Index]