seqinr (version 1.0-1)

permutation: Sequence permutation according to several different models

Description

Generates a random permutation of a given sequence, according to a given model. Available models are : base, position, codon, syncodon.

Usage

permutation(sequence,modele='base',frame=0,replace=FALSE,prot=FALSE,numcode=1,ucoweight = NULL)

Arguments

sequence
A nucleic acids sequence
modele
A string of characters describing the model chosen for the random generation
frame
Only active for the position, codon, syncodon models: starting position of CDS as in splitseq
replace
This option is not active for the syncodon model: if TRUE, sampling is done with replacement
prot
Only available for the codon model: if TRUE, the first and last codons are preserved, and only intern codons are shuffled
numcode
Only available for the syncodon model: the genetic code number as in translate.
ucoweight
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.

Value

  • a sequence generated from the original one by a given model

Details

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.

References

citation("seqinr")

See Also

synsequence

Examples

Run this code
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 DataCamp Workspace