Navigation

Task 2 : RigidRMSD

AboutRigidRMSD is a library for rapid computations of the root mean square deviations (RMSDs) corresponding to a set of rigid body transformations of a coordinate vector (which can be a molecule in PDB format, for example). Calculation of the RMSD splits into two steps:

Initialization, which is linear in the number of vector entities (or particles in a rigid body).

RMSD computation, which is computed in constant time for a single rigid-body spatial transformation (rotation + translation). This step uses the inertia tensor and the the center of mass computed on the first step.

Initialization step is performed only once. It makes RigidRMSD particularly useful when computing multiple RMSDs, since each new RMSD calculation takes only constant time.

MethodsLet R be a rotation matrix and T - a translation vector applied to a molecule with N atoms at positions A={ai}N with ai={xi,yi,zi}T, such that the new positions A'={ai'}N are given as

Introducing the inertia tensor I, the rotation matrix R (with the corresponding rotation quaternion Q=[s,q]), the center of mass vector C, and the 3x3 identity matrix E3, we may simplify the RMSD expression to
\begin{equation}
\text{RMSD}^{2}=\mathbf{T}^{2}+\frac{4}{W}\mathbf{q}^{T}\mathbf{I}\mathbf{q}+2\mathbf{T}^{T}\left(\mathbf{R}-\mathbf{E}_{3}\right)\mathbf{C},\label{eq:principal}
\end{equation}
where C={∑ wixi,∑wiyi,∑ wizi}T/W, and the inertia tensor I is given as

RMSD corresponding to a pure rotationIf a rigid molecule is rotated about a unit axis n passing through the origin by an angle α, the RMSD for such a rotation is given as

\begin{equation}
\text{RMSD}^{2}=\frac{4}{W}\sin^{2}\frac{\alpha}{2}I(\mathbf{n}),
\label{eq:pureRotation}
\end{equation}
where I(n) is the reduction of the inertia tensor to a scalar form for the unit axis n: