
Generates a random permutation of a given sequence, according to a
given model. Available models are : base
, position
,
codon
, syncodon
.
permutation(sequence,modele='base',frame=0,
replace=FALSE,prot=FALSE,numcode=1,ucoweight = NULL)
a sequence generated from the original one by a given model
A nucleic acids sequence
A string of characters describing the model chosen for the random generation
Only active for the position
, codon
,
syncodon
models: starting position of CDS as in splitseq
This option is not active for the syncodon
model: if TRUE
, sampling is done with replacement
Only available for the codon
model: if TRUE
, the first and last codons are preserved, and only intern codons are shuffled
Only available for the syncodon
model: the
genetic code number as in translate
.
A list of weights containing the desired codon usage
bias as generated by ucoweight
. If none is specified, the
codon usage of the given sequence is used.
L. Palmeira
The base
model allows for random sequence generation by
shuffling (with/without replacement) of all bases in the sequence.
The position
model allows for random sequence generation
by shuffling (with/without replacement) of bases within their
position in the codon (bases in position I, II or III stay in
position I, II or III in the new sequence.
The codon
model allows for random sequence generation by
shuffling (with/without replacement) of codons.
The syncodon
model allows for random sequence generation
by shuffling (with/without replacement) of synonymous codons.
citation("seqinr")
synsequence
data(ec999)
sequence=ec999[1][[1]]
new=permutation(sequence,modele='base')
identical(all.equal(count(new,1),count(sequence,1)),TRUE)
new=permutation(sequence,modele='position')
identical(all.equal(GC(new),GC(sequence)),TRUE)
identical(all.equal(GC2(new),GC2(sequence)),TRUE)
identical(all.equal(GC3(new),GC3(sequence)),TRUE)
new=permutation(sequence,modele='codon')
identical(all.equal(uco(new),uco(sequence)),TRUE)
new=permutation(sequence,modele='syncodon',numcode=1)
identical(all.equal(translate(new),translate(sequence)),TRUE)
Run the code above in your browser using DataLab