strand-utils {GenomicRanges} | R Documentation |
Strand utilities
Description
A bunch of useful strand
and invertStrand
methods.
Usage
## S4 method for signature 'missing'
strand(x)
## S4 method for signature 'character'
strand(x)
## S4 method for signature 'factor'
strand(x)
## S4 method for signature 'integer'
strand(x)
## S4 method for signature 'logical'
strand(x)
## S4 method for signature 'Rle'
strand(x)
## S4 method for signature 'RleList'
strand(x)
## S4 method for signature 'DataFrame'
strand(x)
## S4 replacement method for signature 'DataFrame,ANY'
strand(x) <- value
## S4 method for signature 'character'
invertStrand(x)
## S4 method for signature 'factor'
invertStrand(x)
## S4 method for signature 'integer'
invertStrand(x)
## S4 method for signature 'logical'
invertStrand(x)
## S4 method for signature 'Rle'
invertStrand(x)
## S4 method for signature 'RleList'
invertStrand(x)
Arguments
x |
The object from which to obtain a strand factor, strand factor Rle, or strand factor RleList object. Can be missing. See Details and Value sections below for more information. |
value |
Replacement value for the strand. |
Details
All the strand
and invertStrand
methods documented
here return either a strand factor, strand factor
Rle, or strand factor RleList object.
These are factor, factor-Rle, or factor-RleList
objects containing the "standard strand levels" (i.e. +
, -
,
and *
) and no NAs.
Value
All the strand
and invertStrand
methods documented here
return an object that is parallel to input object x
when
x
is a character, factor, integer, logical, Rle,
or RleList object.
For the strand
methods:
If
x
is missing, returns an empty factor with the "standard strand levels" i.e.+
,-
, and*
.If
x
is a character vector or factor, it is coerced to a factor with the levels listed above.NA
values inx
are not accepted.If
x
is an integer vector, it is coerced to a factor with the levels listed above.1
,-1
, andNA
values inx
are mapped to the+
,-
, and*
levels respectively.If
x
is a logical vector, it is coerced to a factor with the levels listed above.FALSE
,TRUE
, andNA
values inx
are mapped to the+
,-
, and*
levels respectively.If
x
is a character-, factor-, integer-, or logical-Rle, it is transformed withrunValue(x) <- strand(runValue(x))
and returned.If
x
is an RleList object, each list element inx
is transformed by callingstrand()
on it and the resulting RleList object is returned. More precisely the returned object isendoapply(x, strand)
. Note that in addition to being parallel tox
, this object also has the same shape asx
(i.e. its list elements have the same lengths as inx
).If
x
is aDataFrame
object, the"strand"
column is passed thrustrand()
and returned. Ifx
has no"strand"
column, this return value is populated with*
s.
Each invertStrand
method returns the same object as its corresponding
strand
method but with "+"
and "-"
switched.
Author(s)
M. Lawrence and H. Pagès
See Also
Examples
strand()
x1 <- c("-", "*", "*", "+", "-", "*")
x2 <- factor(c("-", "-", "+", "-"))
x3 <- c(-1L, NA, NA, 1L, -1L, NA)
x4 <- c(TRUE, NA, NA, FALSE, TRUE, NA)
strand(x1)
invertStrand(x1)
strand(x2)
invertStrand(x2)
strand(x3)
invertStrand(x3)
strand(x4)
invertStrand(x4)
strand(Rle(x1))
invertStrand(Rle(x1))
strand(Rle(x2))
invertStrand(Rle(x2))
strand(Rle(x3))
invertStrand(Rle(x3))
strand(Rle(x4))
invertStrand(Rle(x4))
x5 <- RleList(x1, character(0), as.character(x2))
strand(x5)
invertStrand(x5)
strand(DataFrame(score=2:-3))
strand(DataFrame(score=2:-3, strand=x3))
strand(DataFrame(score=2:-3, strand=Rle(x3)))
## Sanity checks:
target <- strand(x1)
stopifnot(identical(target, strand(x3)))
stopifnot(identical(target, strand(x4)))
stopifnot(identical(Rle(strand(x1)), strand(Rle(x1))))
stopifnot(identical(Rle(strand(x2)), strand(Rle(x2))))
stopifnot(identical(Rle(strand(x3)), strand(Rle(x3))))
stopifnot(identical(Rle(strand(x4)), strand(Rle(x4))))