Learn R Programming

seqinr (version 3.4-5)

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
# NOT RUN {
  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