MM-align is an algorithm for structurally aligning a pair of multiple-chain
complexes of protein and/or nucleic acid molecules (RNA/DNA).
The multiple chains in each complex are first joined,
in every possible order, and then simultaneously aligned with
cross-chain alignments prevented.
An optimal alignment between two complexes, as well as the overall
TM-score, will be reported.
Update history: MM-align has been updated to MM-align++, with major updates including
- Alignment of hybrid complexes consisting of both protein and nucleic acids, such as ribosomes, is now supported.
- A new assignment algorithm is implemented for fast chain-level correspondence search to improve the accuracy of large homo-oligomers alignment.
- Support for the
PDBx/mmCIF
format is newly included in MM-align++, in addition to the legacy
PDB
format used in MM-align.
- Fixed issue in the old MM-align program where alignments were not generated a pair of complex structures have divergent structures.
- The new MM-align++ program includes five different chain-level initial alignment
methods to ensure accurate initial alignment generation,
in contrast to the old MM-align program that only implements one chain-level
initial alignment (gapless threading).
MM-align download
- Click MMalign.cpp
to download the latest source code of MM-align++ in C++.
You can compile the program in your Linux computer by
$ g++ -static -O3 -ffast-math -o MMalign MMalign.cpp
or
$ make
- Click MMalign.zip
to download the Linux 64 bit executable of MMalign++.
Nevertheless, you are recommended to download the MM-align source code and compile it on your machine, which gives you higher speed to run the program (See above step).
- Click MMalign.f and MMalign.gz
to download the old Fortran version of
MM-align source code and Linux 64 bit executable compiled by g77, respectively.
You can compile the program in your Linux computer by
$ gfortran -static -O3 -ffast-math -lm -o MMalign MMalign.f (recommended)
or
$ g77 -static -O3 -lm -o MMalign MMalign.f
Please note that the old Fortran version of MM-align will not be maintained in the future. You are encouraged to update to MM-align++ written in C++ (see above).
MM-align other information
- Click benchmark.txt to download a list of 205 non-homologous proteins
taken from PDB (sequence identity<30%) and a larger dimer dataset;
these two sets of proteins was used as a benchmark test of MM-align method.
- What is the difference between MM-score and MM-align?
TM-align is for
aligning monomer protein structures while MM-align is designed for
aligning multiple-chain protein complex structures.
Although one can still align protein complexes using the "-ter 1" or "-ter 0" option of the C++ version of TM-align, which joins all chains,
this will lead to suboptimal alignments with unphysical cross alignments.
Therefore, the best result will be obtained if one uses TM-align and MM-align
for monomer and multimer structures, respectively.
- The latest updates of the MM-align program:
- 2019/10/16: Add a new option to read multi-model structure file.
- 2019/10/13: Improves chain assignment for oligomer alignment by MM-align++.
- 2019/10/07: MM-align++, i.e., C++ version of MM-align was officially released.
- 2013/08/15: Fixed a number of compiler bugs.
- 2009/09/30: A bug in the output display was fixed.
- 2009/01/27: Extension from dimer to multimer alignment.
References
- S. Mukherjee, Y. Zhang,
MM-align: a quick algorithm for aligning multiple-chain protein complex
structures using iterative dynamic programming.
Nucleic Acids Research 2009; 37: e83
([PDF] and [Supporting Materials]).