13.2.9. Fast QCP RMSD structure alignment — MDAnalysis.lib.qcprot¶
| Author: | Joshua L. Adelman, University of Pittsburgh | 
|---|---|
| Author: | Robert R. Delgado, Cornell University and Arizona State University | 
| Contact: | jla65@pitt.edu | 
| Year: | 2011, 2016 | 
| Licence: | BSD | 
PyQCPROT is a python/cython implementation of Douglas Theobald’s QCP method for calculating the minimum RMSD between two structures [Theobald2005] and determining the optimal least-squares rotation matrix [Liu2010].
A full description of the method, along with the original C implementation can be found at http://theobald.brandeis.edu/qcp/
See also
MDAnalysis.analysis.align- Align structures using 
CalcRMSDRotationalMatrix() MDAnalysis.analysis.rms.rmsd- Calculate the RMSD between two structures using 
CalcRMSDRotationalMatrix() 
Changed in version 0.16.0: Call signatures were changed to directly interface with MDAnalysis coordinate arrays: shape (N, 3)
References
If you use this QCP rotation calculation method in a publication, please reference:
| [Theobald2005] | Douglas L. Theobald (2005) “Rapid calculation of RMSD using a quaternion-based characteristic polynomial.” Acta Crystallographica A 61(4):478-480. | 
| [Liu2010] | Pu Liu, Dmitris K. Agrafiotis, and Douglas L. Theobald (2010) “Fast determination of the optimal rotational matrix for macromolecular superpositions.” J. Comput. Chem. 31, 1561-1563. | 
13.2.9.1. Functions¶
Users will typically use the CalcRMSDRotationalMatrix() function.
- 
MDAnalysis.lib.qcprot.CalcRMSDRotationalMatrix()¶ Calculate the RMSD & rotational matrix.
Parameters: - ref (ndarray, np.float64_t) – reference structure coordinates
 - conf (ndarray, np.float64_t) – condidate structure coordinates
 - N (int) – size of the system
 - rot (ndarray, np.float64_t) – array to store rotation matrix. Must be flat
 - weights (ndarray, npfloat64_t (optional)) – weights for each component
 
Returns: - rmsd (float) – RMSD value
 - .. versionchanged:: 0.16.0 – Array size changed from 3xN to Nx3.
 
- 
MDAnalysis.lib.qcprot.InnerProduct()¶ Calculate the inner product of two structures.
Parameters: - A (ndarray np.float64_t) – result inner product array, modified in place
 - coords1 (ndarray np.float64_t) – reference structure
 - coord2 (ndarray np.float64_t) – candidate structure
 - N (int) – size of system
 - weights (ndarray np.float64_t (optional)) – use to calculate weighted inner product
 
Returns: - E0 (float)
 - 0.5 * (G1 + G2), can be used as input for 
FastCalcRMSDAndRotation() 
Notes
- You MUST center the structures, coords1 and coords2, before calling this function.
 - Coordinates are stored as Nx3 arrays (as everywhere else in MDAnalysis).
 
Changed in version 0.16.0: Array size changed from 3xN to Nx3.
- 
MDAnalysis.lib.qcprot.FastCalcRMSDAndRotation()¶ Calculate the RMSD, and/or the optimal rotation matrix.
Parameters: - rot (ndarray np.float64_t) – result rotation matrix, modified inplace
 - A (ndarray np.float64_t) – the inner product of two structures
 - E0 (float64) – 0.5 * (G1 + G2)
 - N (int) – size of the system
 
Returns: rmsd – RMSD value for two structures
Return type: Changed in version 0.16.0: Array sized changed from 3xN to Nx3.