RangedSummarizedExperiment-class | R Documentation |
The RangedSummarizedExperiment class is a matrix-like container where rows represent ranges of interest (as a GRanges or GRangesList object) and columns represent samples (with sample data summarized as a DataFrame). A RangedSummarizedExperiment object contains one or more assays, each represented by a matrix-like object of numeric or other mode.
RangedSummarizedExperiment is a subclass of SummarizedExperiment and,
as such, all the methods documented in ?SummarizedExperiment
also work on a RangedSummarizedExperiment object or any
SummarizedExperiment derivative. The methods documented below
are additional methods that are specific to RangedSummarizedExperiment
objects.
## Constructor
# See ?SummarizedExperiment for the constructor function.
## Accessors
rowRanges(x, ...)
rowRanges(x, ...) <- value
## Subsetting
## S4 method for signature 'RangedSummarizedExperiment'
subset(x, subset, select, ...)
## rowRanges access
## see 'GRanges compatibility', below
x |
A RangedSummarizedExperiment object or derivative. The
|
... |
Further arguments to be passed to or from other methods. |
value |
A GRanges or GRangesList object. |
subset |
An expression which, when evaluated in the
context of |
select |
An expression which, when evaluated in the
context of |
The rows of a RangedSummarizedExperiment object represent ranges
(in genomic coordinates) of interest. The ranges of interest are
described by a GRanges or a GRangesList object, accessible
using the rowRanges
function, described below. The GRanges
and GRangesList classes contains sequence (e.g., chromosome) name,
genomic coordinates, and strand information. Each range can be
annotated with additional data; this data might be used to describe
the range or to summarize results (e.g., statistics of differential
abundance) relevant to the range. Rows may or may not have row names;
they often will not.
RangedSummarizedExperiment instances are constructed using the
SummarizedExperiment()
function documented in
?SummarizedExperiment
.
In the code snippets below, x
is a RangedSummarizedExperiment object
or derivative (e.g. a SingleCellExperiment
object).
rowRanges(x)
, rowRanges(x) <- value
:Get or set the
row data. value
is a GenomicRanges
object. Row
names of value
must be NULL or consistent with the existing
row names of x
.
Many GRanges and GRangesList operations are supported on
RangedSummarizedExperiment objects, using rowRanges
.
Supported operations include: pcompare
,
duplicated
, end
, end<-
,
granges
, is.unsorted
, match
,
mcols
, mcols<-
, order
,
ranges
, ranges<-
, rank
,
seqinfo
, seqinfo<-
, seqnames
,
sort
, start
, start<-
,
strand
, strand<-
,
width
, width<-
.
See also ?shift
,
?isDisjoint
,
?coverage
,
?findOverlaps
, and
?nearest
for more
GRanges compatibility methods.
Not all GRanges operations are supported, because they do not make sense for RangedSummarizedExperiment objects (e.g., length, name, as.data.frame, c, splitAsList), involve non-trivial combination or splitting of rows (e.g., disjoin, gaps, reduce, unique), or have not yet been implemented (Ops, map, window, window<-).
In the code snippets below, x
is a RangedSummarizedExperiment object
or derivative (e.g. a SingleCellExperiment
object).
subset(x, subset, select)
:Create a subset of x
using an expression subset
referring to columns of
rowRanges(x)
(including ‘seqnames’, ‘start’,
‘end’, ‘width’, ‘strand’, and
names(rowData(x))
) and / or select
referring to
column names of colData(x)
.
RangedSummarizedExperiment is implemented as an S4 class, and can be
extended in the usual way, using contains="RangedSummarizedExperiment"
in the new class definition.
See the SingleCellExperiment class defined in the SingleCellExperiment package for an example of such extension.
Martin Morgan, mtmorgan@fhcrc.org
SummarizedExperiment for the parent class of RangedSummarizedExperiment and the RangedSummarizedExperiment/SummarizedExperiment constructor function.
shift, isDisjoint, coverage, findOverlaps, and nearest for more GRanges compatibility methods.
GRanges objects in the GenomicRanges package.
The SingleCellExperiment defined in the SingleCellExperiment package, a subclass of RangedSummarizedExperiment specifically designed to represent single-cell sequencing data.
nrows <- 200; ncols <- 6
counts <- matrix(runif(nrows * ncols, 1, 1e4), nrows)
rowRanges <- GRanges(rep(c("chr1", "chr2"), c(50, 150)),
IRanges(floor(runif(200, 1e5, 1e6)), width=100),
strand=sample(c("+", "-"), 200, TRUE),
feature_id=sprintf("ID%03d", 1:200))
colData <- DataFrame(Treatment=rep(c("ChIP", "Input"), 3),
row.names=LETTERS[1:6])
rse <- SummarizedExperiment(assays=SimpleList(counts=counts),
rowRanges=rowRanges, colData=colData)
rse
dim(rse)
dimnames(rse)
assayNames(rse)
head(assay(rse))
assays(rse) <- endoapply(assays(rse), asinh)
head(assay(rse))
rowRanges(rse)
rowData(rse) # same as 'mcols(rowRanges(rse))'
colData(rse)
rse[ , rse$Treatment == "ChIP"]
## cbind() combines objects with the same ranges but different samples:
rse1 <- rse
rse2 <- rse1[ , 1:3]
colnames(rse2) <- letters[1:ncol(rse2)]
cmb1 <- cbind(rse1, rse2)
dim(cmb1)
dimnames(cmb1)
## rbind() combines objects with the same samples but different ranges:
rse1 <- rse
rse2 <- rse1[1:50, ]
rownames(rse2) <- letters[1:nrow(rse2)]
cmb2 <- rbind(rse1, rse2)
dim(cmb2)
dimnames(cmb2)
## Coercion to/from SummarizedExperiment:
se0 <- as(rse, "SummarizedExperiment")
se0
as(se0, "RangedSummarizedExperiment")
## Setting rowRanges on a SummarizedExperiment object turns it into a
## RangedSummarizedExperiment object:
se <- se0
rowRanges(se) <- rowRanges
se # RangedSummarizedExperiment
## Sanity checks:
stopifnot(identical(assays(se0), assays(rse)))
stopifnot(identical(dim(se0), dim(rse)))
stopifnot(identical(dimnames(se0), dimnames(rse)))
stopifnot(identical(rowData(se0), rowData(rse)))
stopifnot(identical(colData(se0), colData(rse)))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.