Description Usage Arguments Details Value Author(s) References See Also Examples
View source: R/shuffle_sequences.R
Given a set of input sequences, shuffle the letters within those sequences with any k-let size.
1 2 | shuffle_sequences(sequences, k = 1, method = "euler", nthreads = 1,
rng.seed = sample.int(10000, 1))
|
sequences |
|
k |
|
method |
|
nthreads |
|
rng.seed |
|
If method = 'markov'
, then the Markov model is used to
generate sequences which will maintain (on average) the k-let
frequencies. Please note that this method is not a 'true' shuffling, and
for short sequences (e.g. <100bp) this can result in slightly more
dissimilar sequences versus true shuffling. See
\insertCitemarkovmodel;textualuniversalmotif for a discussion on the
topic.
If method = 'euler'
, then the sequence shuffling method proposed by
\insertCitemarkovmodel2;textualuniversalmotif is used. As opposed
to the 'markov' method, this one preserves exact k-let frequencies. This
is done by creating a k-let edge graph, then following a
random Eulerian walk through the graph. Not all walks will use up all
available letters however, so the cycle-popping algorithm proposed by
\insertCiteeulerAlgo;textualuniversalmotif is used to find a
random Eulerian path. A side effect of using this method is that the
starting and ending sequence letters will remain unshuffled.
If method = 'linear'
, then the input sequences are split linearly
every k
letters. For example, for k = 3
'ACAGATAGACCC' becomes
'ACA GAT AGA CCC'; after which these 3
-lets are shuffled randomly.
Do note however, that the method
parameter is only relevant for k > 1
.
For k = 1
, a simple shuffling is performed using the shuffle
function
from the C++ standard library.
XStringSet
The input sequences will be returned with
identical names and lengths.
Benjamin Jean-Marie Tremblay, b2tremblay@uwaterloo.ca
markovmodel2universalmotif
\insertRefmarkovmodeluniversalmotif
\insertRefeulerAlgouniversalmotif
create_sequences()
, scan_sequences()
, enrich_motifs()
,
shuffle_motifs()
1 2 3 4 | if (R.Version()$arch != "i386") {
sequences <- create_sequences()
sequences.shuffled <- shuffle_sequences(sequences, k = 2)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.