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 klet 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 klet
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 klet frequencies. This
is done by creating a klet edge graph, then following a
random Eulerian walk through the graph. Not all walks will use up all
available letters however, so the cyclepopping 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 JeanMarie 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.