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 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 - 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

 

[Picture in eps format.]

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

nhatT

TEMP

0.59308

Tpar

= nhat(nhatT)

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