GenomicData-class {IRanges} | R Documentation |
GenomicData
extends RangedData
to more
conveniently manipulate data
on genomic ranges. The spaces are now called chromosomes (but could
still refer to some other type of sequence). The annotation refers to
the genome and there is formal treatment of an optional strand
variable.
The GenomicData
class essentially adds a set of convenience
accessors on top of RangedData
. In the code snippets below,
x
is a RangedData
object.
chrom(x)
: Gets the chromosome names (a factor) over the
ranges in x
.
genome(x)
: Gets the genome for the ranges in x
; a simple
wrapper around annotation(x)
.
strand(x)
: Gets the strand factor in x
, or,
if x
is missing, return an empty factor with the standard
levels: -
, +
and *
, referring to the negative,
positive and both strands, respectively. Any strand factor stored in
GenomicData
should have those levels.
NA
's are allowed; the value is all NA
if no strand
has been specified.
GenomicData(ranges, ..., strand = NULL, chrom = NULL,
genome = NULL)
: Constructs a GenomicData
instance with
the given ranges
and variables in ...
(see the
RangedData
constructor). If
non-NULL
, strand
specifies the strand of each
range. It should be a character vector or factor of length equal to
that of ranges
. All values should be either -
, +
,
*
or NA
. To get these levels, call
levels(strand())
. chrom
is analogous to
splitter
in RangedData
; if non-NULL
it
should be coercible to a factor indicating how the ranges,
variables and strand should be split up
across the chromosomes. The genome
argument should be a
scalar string and is treated as the RangedData
annotation. See the examples.
as(from, "GenomicData")
: coerces from
to a
GenomicData
, according to its class:
score
.
This may move to another package in the future, as it is not quite general enough for IRanges.
Michael Lawrence
RangedData
, on which this class is based.
range1 <- IRanges(start=c(1,2,3), end=c(5,2,8)) ## just ranges gr <- GenomicData(range1) ## with a genome (annotation) gr <- GenomicData(range1, genome = "hg18") genome(gr) ## "hg18" ## with some data filter <- c(1L, 0L, 1L) score <- c(10L, 2L, NA) strand <- factor(c("+", NA, "-"), levels = levels(strand())) gr <- GenomicData(range1, score, genome = "hg18") gr[["score"]] strand(gr) ## all NA gr <- GenomicData(range1, score, filt = filter, strand = strand) gr[["filt"]] strand(gr) ## equal to 'strand' range2 <- IRanges(start=c(15,45,20,1), end=c(15,100,80,5)) ranges <- c(range1, range2) score <- c(score, c(0L, 3L, NA, 22L)) chrom <- paste("chr", rep(c(1,2), c(length(range1), length(range2))), sep="") gr <- GenomicData(ranges, score, chrom = chrom, genome = "hg18") chrom(gr) # equal to 'chrom' gr[["score"]] # unlists over the chromosomes gr[1][["score"]] # equal to score[1:3]