Determination of a screw axis for describing protein motions

from a rotation matrix and a translation vector

Mark.Gerstein@Yale.edu, Copyright 1997, all rights reserved

1. Derived from appendix to

M Gerstein, A M Lesk, E N Baker, B Anderson, G Norris & C Chothia (1993).
"Domain Closure in Lactoferrin: Two Hinges produce a See-saw Motion between Alternative Close-Packed Interfaces,"
J. Mol. Biol. 234: 357-372. [
Medline UI 94047086]

2. Description of procedure

If a set of points x, (i.e. the atoms in a protein domain) moves as a rigid body to the points , the transformation x to is can be expressed as a rotation R about the origin followed by a translation T :

= R x + T

Up to a difference in sign, the rotation R has a unique axis n and magnitude k. (By convention, n is a normalized vector along the rotation axis, and the rotation k is positive if it increases in a counterclockwise direction when viewed looking down n towards the origin.) However, the translation T depends on the origin of the coordinate system. As shown in the figure, an origin x0 can always be chosen (up to arbitrary translation along n) so that the translation is minimal and parallel to the axis of rotation. If the initial and final coordinates refer to this origin, the entire transformation is referred to as a "screw motion":

( - x0) = R (x - x0) + T(par) ,

where the parallel component of the translation is T (par) = n ( n T ), the perpendicular component is T(perp) = T - T(par) and the origin is

x0 = (T(perp) + n ´ T(perp) cot (k/2))/2,

where "´ " is the cross product.

The derivation of this formula for the value of x0 is shown geometrically in the figure. The view is down the rotation axis n, which is coming out of the page. In the plane perpendicular to this axis, there are two perpendicular directions, T(perp) and n ´  T(perp). Shifting the origin to x0 requires a translation of T(perp)/2 in the first direction and a translation of 0.5 T(perp) cot (k/2) in the second.

3. Figure 4. Excel Spreadsheet to do Calculation

a. In SYLK format (should work in windows and mac).

b. In Excel 2.1 format for windows (should work in mac).

c. What Spreadsheet looks like:

 Fill in 4 variables marked "IN", What comes out is marked "OUT" Variable Description Status Value k = kappa (rotation angle, in deg then in rad) IN -12.2907 -0.215 nhat = unit vector describing rotation-axis IN 0.8329 0.4634 -0.3025 T = Translation-vector (Å) IN 6.4744 -8.3819 3.0257 R = Rotation-mat IN 0.99298 -0.05555 -0.10442 0.07324 0.982 0.17409 0.09287 -0.18052 0.97918 nhat^2 (as a check, should be 1) CHECK 1.00 nhat•T TEMP 0.59308 Tpar = nhat(nhat•T) OUT 0.49398 0.27483 -0.17941 Tperp =T-Tpar OUT 5.98042 (translation perpendicular to rotation axis) -8.65673 3.20511 cot(k/2) TEMP -9.28766 C = nhat x Tperp TEMP (i-component) AyBz - AzBy -1.13342 i x i = 0 (j-component) AzBx - AxBz -4.47861 i x j = 1 (k-component) AxBy - AyBx -9.98152 j x i = -1 C cot (k/2) TEMP 10.5268 41.5958 92.7049 x0 =(Tperp+C cot(k/2))/2 OUT 8.2536 = location to move origin to so that 16.4695 translation is along rotation axis 47.955 Rx0 (check) TEMP 2.2733 25.1262 44.75 T = Tpar-Rx0+x0 TEMP 6.47427 (check, compare with above) -8.38179 3.02562 T-T (as a check, should be zero) CHECK 9.3E-05