RangedData-methods {rtracklayer} | R Documentation |
The rtracklayer
package adds
convenience methods on top of RangedData
manipulate data on
genomic ranges. The spaces are now called chromosomes (but could still
refer to some other type of sequence). The universe refers to the genome
and there is formal treatment of an optional strand
variable.
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)
, genome(x) <- value
: Gets or sets the
genome (a single string or NULL
) for
the ranges in x
; simple wrappers around
universe
and
universe<-
, respectively.
strand(x)
: Gets the strand factor in
x
, with the standard
levels: -
, +
and *
, referring to the negative,
positive and either/both strands, respectively. Any strand factor
stored in the RangedData
should have those levels.
NA
's are allowed; the value is all NA
if no strand
has been specified.
score(x)
: gets the column representing a "score" in
x
, as a vector. This is the column named
score
, or, if this does
not exist, the first column, if it is numeric. Otherwise,
NULL
is returned.
score(x) <- value
: sets the column named score
to value
, which should be a numeric vector of length equal
to the number of rows.
GenomicData(ranges, ..., strand = NULL, chrom = NULL,
genome = NULL)
: Constructs a RangedData
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
universe. See the examples.
Michael Lawrence
range1 <- IRanges(start=c(1,2,3), end=c(5,2,8)) ## just ranges gr <- GenomicData(range1) ## with a genome (universe) 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 score(gr) gr[1][["score"]] # equal to score[1:3]