| ## EMBOSS: msbar

# Program msbar

## Function

Mutate sequence beyond all recognition

## Description

This program changes a sequence a lot or a little, attempting to emulate various forms of mutation. You can set the number and types of mutations.

It can act on the following sizes of sequence:

- Point (single base or residue change)
- Codon (not applicable in proteins)
- Block of sequence (of a specified minimum and maximum random size)

If the sequence is nucleic, the codon and block-sized operations can optionally be done in-frame. This causes the minimum block size to be set to 3 and the randomly chosen positions to be multiples of 3.

For each of the above size of sequence it can produce the effects of any of the following types of mutation at a randomly chosen position:

- Insertion of a randomly generated sequence
- Deletion
- Change (deletion then insertion of a random sequence of the same size)
- Duplication at an adjacent position
- Move region from one position to another (without deletion of the original)
- Any of the above, chosen at random.
- None of the above

The input and output sequences may not differ if only a few changes are chosen as (for example) one in four nucleic acid point substitutions will not change the sequence.

N.B. There is no selection of the types of mutation to produce viable sequence as there would be in a real organism. In particular, there is no attempt to bias mutations of nucleic acid sequences to conform to the C+G ratio in the sequence or to bias the codons in the direction of the frequencies used in the organism. This program emulates mutation, not selection.

This program was named from the acronym of "Mutate Sequence Beyond All Recognition", by analogy with the acronym "fubar" commonly used in the US and UK armies.

## Usage

Here is a sample session with msbar. This asks for 5 mutations, with point mutations as changes (substitutions), and the codon and block mutations ignored.

    % msbar
    Input sequence: embl:eclaci
    Output sequence [eclaci.fasta]:
    Number of times to perform the mutation operations [1]: 5
    Point mutation operations
             0 : None
             1 : Any of the following
             2 : Insertions
             3 : Deletions
             4 : Changes
             5 : Duplications
             6 : Moves
    Types of point mutations to perform [0]: 4
    Codon mutation operations
             0 : None
             1 : Any of the following
             2 : Insertions
             3 : Deletions
             4 : Changes
             5 : Duplications
             6 : Moves
    Types of codon mutations to perform [0]:
    Block mutation operations
             0 : None
             1 : Any of the following
             2 : Insertions
             3 : Deletions
             4 : Changes
             5 : Duplications
             6 : Moves
    Types of block mutations to perform [0]:

## Command line arguments

       Mandatory qualifiers (* if not always prompted):
      [-sequence]          seqall     Sequence database USA
       -count              integer    Number of times to perform the mutation
                                      operations
       -point              menu       Types of point mutations to perform
       -block              menu       Types of block mutations to perform
    *  -codon              menu       Types of codon mutations to perform. These
                                      are only done if the sequence is nucleic.
      [-outseq]            seqoutall  Output sequence(s) USA

       Optional qualifiers (* if not always prompted):
    *  -inframe            bool       Do 'codon' and 'block' operations in frame

       Advanced qualifiers:
       -minimum            integer    Minimum size for a block mutation
       -maximum            integer    Maximum size for a block mutation

       General qualifiers:
      -help                bool       report command line options. More
                                      information on associated and general
                                      qualifiers can be found with -help -verbose

Mandatory qualifiers | Allowed values | Default
--- | --- | ---
[-sequence] (Parameter 1) | Sequence database USA | Readable sequence(s) | Required
-count | Number of times to perform the mutation operations | Integer 0 or more | 1
-point | Types of point mutations to perform |
0 | (None)
1 | (Any of the following)
2 | (Insertions)
3 | (Deletions)
4 | (Changes)
5 | (Duplications)
6 | (Moves)
| 0
-block | Types of block mutations to perform |
0 | (None)
1 | (Any of the following)
2 | (Insertions)
3 | (Deletions)
4 | (Changes)
5 | (Duplications)
6 | (Moves)
| 0
-codon | Types of codon mutations to perform. These are only done if the sequence is nucleic. |
0 | (None)
1 | (Any of the following)
2 | (Insertions)
3 | (Deletions)
4 | (Changes)
5 | (Duplications)
6 | (Moves)
| 0
[-outseq] (Parameter 2) | Output sequence(s) USA | Writeable sequence(s) | <sequence>.format
Optional qualifiers | Allowed values | Default
-inframe | Do 'codon' and 'block' operations in frame | Yes/No | No
Advanced qualifiers | Allowed values | Default
-minimum | Minimum size for a block mutation | Integer 0 or more | 1
-maximum | Maximum size for a block mutation | Any integer value | 10

## Input file format

Any sequence USA.

## Output file format

The output is a sequence file with 5 substitutions relative to the original sequence.

## Data files

None.

## Notes

None.

## References

None.

## Warnings

None.

## Diagnostic Error Messages

None.

## Exit status

It always exits with a status of 0.

## Known bugs

None.

## See also

Program name | Description
--- | ---
shuffleseq | Shuffles a set of sequences maintaining composition

## Author(s)

This application was written by Gary Williams (gwilliam@hgmp.mrc.ac.uk)

## History

Writetn (1999) - Gary Williams

## Target users

This program is intended to be used by everyone and everything, from naive users to embedded scripts.

## Comments