sw | R Documentation |
Applies a function over a matrix or a vector using sliding
windows. sw
is a generic function with a method for
"DNAbin"
matrices.
sw(x, width, step, ...)
## Default S3 method:
sw(x, width = 100, step = 50, POS = NULL,
FUN = mean, out.of.pos = NA_real_, na.rm = TRUE, L = NULL, ...)
## S3 method for class 'DNAbin'
sw(x, width = 100, step = 50, FUN = GC.content,
rowAverage = FALSE, quiet = TRUE, ...)
## S3 method for class 'sw'
plot(x, type = "l", xlab = "Position", x.scaling = 1,
show.ranges = FALSE, col.ranges = "blue",
lty.ranges = 1, lwd.ranges = 1, ...)
x |
a vector or a matrix. |
width |
an integer giving the window width. |
step |
an integer giving the step separating successive windows. |
POS |
a numeric vector giving the positions of the sites. |
FUN |
the function to be applied to the windows. |
rowAverage |
a logical value: if |
out.of.pos |
the values used for the sites which are not in
|
na.rm |
option passed to |
L |
the length of the chromosome (or sequence). If not given,
this is largest value in |
quiet |
a logical value: if |
type |
the type of plotting (see |
xlab |
the label under the x-axis. |
x.scaling |
the scaling of the x-axis. |
show.ranges |
a logical value specifying whether to show the
ranges of the windows with horizontal segments (ignored with a
warning if |
col.ranges , lty.ranges , lwd.ranges |
arguments to modify the
appearance of the above segments (see |
... |
further arguments passed to and from methods. |
FUN
should return a single value.
x
should be a matrix for the "DNAbin"
method, or a
vector for the default one.
For the default method, the vector x
is expanded into a vector
of length L
(see above on how this value is found) and the
positions which are not in POS
are filled with the value given
in out.of.pos
. The resulting vector is then analysed with the
function FUN
which must have an option na.rm
. If the
function you want to use does not have this option, you can use
something like FUN = function(x, na.rm = TRUE)
foo(x[!is.na(x)])
, replacing ‘foo’ by the name of your function. You
may also include more control on the handling of missing data.
a matrix or a vector (if rowAverage = TRUE
).
Emmanuel Paradis
data(woodmouse)
sw(woodmouse)
sw(woodmouse, 200, 200)
sw(woodmouse, 200, 200, rowAverage = TRUE)
## to get the proportions of G:
foo <- function(x) base.freq(x)["g"]
sw(woodmouse, 200, 200, FUN = foo, rowAverage = TRUE)
## a simulated example with the default method:
x <- runif(100)
pos <- sort(sample(1e6, 100))
resx <- sw(x, w = 2e4, s = 5e3, POS = pos, L = 1e6)
plot(resx, show.ranges = TRUE, x.scaling = 1e6, xlab = "Position (Mb)")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.