[BioPython] Structural alignment

Thomas Hamelryck thamelry at binf.ku.dk
Tue Nov 15 00:56:43 EST 2005


Andrew Dalke wrote:
> If it's two conformations of the same structure and the goal is
> to minimize overall RMSD through a single global alignment matrix
> then the usual reference I know is Kabsch
>
> [Kabsch, 1976] Kabsch, W. (1976). A solution for the best rotation
>     to relate two sets of vectors. Acta. Crystal, 32A:922-923.
> [Kabsch, 1978] Kabsch, W. (1978). A discussion of the solution
>    for the best rotation to related two sets of vectors. Acta. Crystal,
> 34A:827-828.
>
> (The first had an ambiguity that could cause a sign error; fixed
> in the second.)
>
> Several structure program implement that including:
>    O - http://xray.bmc.uu.se/usf/factory_4.html
>    VMD - http://www.ks.uiuc.edu/Research/vmd/vmd-1.7.1/ug/node183.html
>    PyMol - http://www.pymolwiki.org/index.php/Kabsch

Maybe more relevant in the context of this newsgroup is that
it's implemented in Biopython's Bio.PDB.Superimposer.

The Kabsch algorithm mentioned sometimes returns a rotation+a reflection,
but that can easily be avoided, see:

Umeyama S: Least squares estimation of transformation parameters between
two point patterns. IEEE Trans Pattern Anal Mach Intell 1991, 13:376-80.

There's an automated structure superposition method (which finds the
alignment itself) on its way to Biopython, BTW.

-Thomas




More information about the BioPython mailing list