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. [
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 x´, the transformation x to x´ is can be expressed as a rotation R about the origin followed by a translation T :
x´ = 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":
(x´ - x
0) = 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 isx
0 = (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 |
From http://bioinfo.mbb.yale.edu/Geometry/screw-axis