| 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]