Description Usage Arguments Details Value Author(s) See Also Examples
A bunch of useful strand
and invertStrand
methods.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ## 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)
|
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. |
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.
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 in x
are not accepted.
If x
is an integer vector, it is coerced to a factor
with the levels listed above. 1
, -1
, and NA
values in x
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
, and
NA
values in x
are mapped to the +
, -
,
and *
levels respectively.
If x
is a character-, factor-, integer-, or
logical-Rle, it is transformed with
runValue(x) <- strand(runValue(x))
and returned.
If x
is an RleList object, each list element in
x
is transformed by calling strand()
on it and
the resulting RleList object is returned. More precisely
the returned object is endoapply(x, strand)
.
Note that in addition to being parallel to x
, this
object also has the same shape as x
(i.e. its list
elements have the same lengths as in x
).
If x
is a DataFrame
object, the "strand"
column is passed thru strand()
and returned.
If x
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.
M. Lawrence and H. Pagès
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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))))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.