All those containers derive directly (and with no additional slots) from the MaskedXString virtual class.
x
is a MaskedXString object.
For masks(x)
and masks(x) <- y
, it can also be
an XString object and y
must be NULL
or
a MaskCollection object. unmasked(x)
:
Turns x
into an XString object by dropping the masks.
masks(x)
:
Turns x
into a
MaskCollection object by
dropping the sequence.
masks(x) <- y
:
If x
is an XString object and y
is NULL
,
then this doesn't do anything. If x
is an XString object and y
is a
MaskCollection object, then
this turns x
into a MaskedXString object by putting the
masks in y
on top of it. If x
is a MaskedXString object and y
is NULL
,
then this is equivalent to x <- unmasked(x)
. If x
is a MaskedXString object and y
is a
MaskCollection object, then
this replaces the masks currently on top of x
by the masks
in y
.
alphabet(x)
:
Equivalent to alphabet(unmasked(x))
.
See ?alphabet
for more information.
length(x)
:
Equivalent to length(unmasked(x))
.
See
?`length,XString-method`
for more information.
x
is a MaskedXString object. maskedwidth(x)
:
Get the number of masked letters in x
. A letter is considered
masked iff it's masked by at least one active mask.
maskedratio(x)
:
Equivalent to maskedwidth(x) / length(x)
.
nchar(x)
:
Equivalent to length(x) - maskedwidth(x)
.
x
is a MaskedXString object. as(x, "Views")
:
Turns x
into a Views object where the
views are the unmasked regions of the original sequence
("unmasked" means not masked by at least one active mask).
x
is a MaskedXString object. collapse(x)
:
Collapses the set of masks in x
into a single mask made of
all active masks.
gaps(x)
:
Reverses all the masks i.e. each mask is replaced by a mask
where previously unmasked regions are now masked and
previously masked regions are now unmasked.
Note that, no matter what masks are put on top of it, the original sequence is always stored unmodified in a MaskedXString object. This allows the user to activate/deactivate masks without having to worry about losing the information stored in the masked/unmasked regions. Also this allows efficient memory management since the original sequence never needs to be copied (modifying it would require to make a copy of it first - sequences cannot and should never be modified in place in Biostrings), even when the set of active/inactive masks changes.
## ---------------------------------------------------------------------
## A. MASKING BY POSITION
## ---------------------------------------------------------------------
mask0 <- Mask(mask.width=29, start=c(3, 10, 25), width=c(6, 8, 5))
x <- DNAString("ACACAACTAGATAGNACTNNGAGAGACGC")
length(x) # same as width(mask0)
nchar(x) # same as length(x)
masks(x) <- mask0
x
length(x) # has not changed
nchar(x) # has changed
gaps(x)
## Prepare a MaskCollection object of 3 masks ('mymasks') by running the
## examples in the man page for these objects:
example(MaskCollection, package="IRanges")
## Put it on 'x':
masks(x) <- mymasks
x
alphabetFrequency(x)
## Deactivate all masks:
active(masks(x)) <- FALSE
x
## Activate mask "C":
active(masks(x))["C"] <- TRUE
x
## Turn MaskedXString object into a Views object:
as(x, "Views")
## Drop the masks:
masks(x) <- NULL
x
alphabetFrequency(x)
## ---------------------------------------------------------------------
## B. MASKING BY CONTENT
## ---------------------------------------------------------------------
## See ?maskMotif for masking by content
Run the code above in your browser using DataLab