R: Sequence permutation according to several different models

permutation {seqinr} | R Documentation

## 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.

### 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.

### Value

a sequence generated from the original one by a given model

### Author(s)

L. Palmeira

### References

`citation("seqinr")`

### See Also

`synsequence`

### Examples

      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)

[Package seqinr version 3.4-5 Index]