# MUMmer

MUMmer is a bioinformatics software system for sequence alignment. It is based on the suffix tree data structure. It has been used for comparing different genomes assemblies to one another, which allows scientists to determine how a genome has changed. The acronym "MUMmer" comes from "Maximal Unique Matches", or MUMs.
The original algorithms in the MUMMER software package were designed by Art Delcher, Simon Kasif and Steven Salzberg. Mummer was the first whole genome comparison system developed in Bioinformatics. It was originally applied to the comparison of two related strains of bacteria.
The MUMmer software is open source. The system is maintained primarily by Steven Salzberg and Arthur Delcher at Center for Computational Biology at Johns Hopkins University.
MUMmer is a highly cited bioinformatics system in the scientific literature. According to Google Scholar, as of early 2013 the original MUMmer paper (Delcher et al., 1999) has been cited 691 times; the MUMmer 2 paper (Delcher et al., 2002) has been cited 455 times; and the MUMmer 3.0 article (Kurtz et al., 2004) has been cited 903 times.

## Overview

Mummer is a fast algorithm used for the rapid alignment of entire genomes. The MUMmer algorithm is relatively new and has 4 versions.

## Versions of MUMmers
### MUMmer1

MUMmer1 or just MUMmer consists of three parts, the first part consists of the creation of suffix trees (to get MUMs), the second part in the longest increasing subsequence or longest common subsequences (to order MUMs), lastly any alignment to close gaps.
Interruptions between MUMs-alignment, are known as gaps. Otherther alignment algorithms fill these gaps. The gaps fall in the following four classes:
* An SNPinterruption – when comparing two sequences, one character will differ.
* An insertion – when comparing two sequences, there is a subsequence in only appears in one of the sequences. It would be an empty gap in the other sequence at the moment of comparison of the two sequences.
* A highly polymorphic region – when comparing two sequences, there can be found a subsequence in which every single character differs.
* A repeat – it’s the repetition of a sequence. Since MUMs can only take unique sequences, that gap can be one repetition of one of the MUMs.

### MUMmer 2

This algorithm was redesigned to require less memory and increase speed and accuracy. It also allows for bigger genomes alignment.
The improvement was the amount stored in the suffix trees by employing the one created by Kurtz.

### MUMmer 3

According to Stefan Kurtz and his teammates, “the most significant technical improvement in MUMmer 3.0, is a complete rewrite of the suffix-tree code, based on the compact suffix- tree representation of” the tree described in the article “Reducing the space requirement of suffix trees”.

### MUMmer 4

According to Guillaume and his team, there are some extra improvements in the implementation and also innovation with Query parallelism. “MUMmer4 now includes options to save and load the suffix array for a given reference." This allows the suffix tree can be built once and constructed again after running it from the saved suffix tree.

## Software - Open Source

MUMmer has open-source software and can be accessed online.

## Related Sequence Alignments

There are other types of sequence alignments:
* Edit distance
* BLAST
* Bowtie
* BWA
* Blat
* Mauve
* LASTZ
* BLAST