# Coordinate generation

## Contents |

## Tree structure

Structure calculations with the program CYANA work in torsion angle space. Since the degrees of freedom are torsion angles but distance restraints are defined by the Cartesian coordinates of the atoms, the program has to recompute the positions of the atoms after each change of the conformation, i.e. each change of the torsion angle values, in order to compute the target function. To this end, the molecule is considered as a tree, consisting of rigid units that are connected by rotatable bonds (Abe et al., 1984; Güntert, 1993; Güntert et al., 1991). Rigid units do not contain rotatable bonds and are made up by one or several atoms whose relative positions are invariable.

The torsion angles and the rigid units are numbered with monotonously increasing numbers, if the tree is traversed in the direction of the arrows, which point in the direction of that part of the tree that is moved by a rotation about a rotatable bond. A rigid unit and the (always unique) rotatable bond that leads to it have the same number *a* and uniquely defined predecessors *p*(*a*) < *a*. A rigid unit a comprises all atoms, whose position depends only on the torsion angle *a*, if all preceding torsion angles *a’* < *a* are held fixed. For instance, in Fig. 1 the rigid units 1, 6 and 9 each comprise the atoms H^{α}, C’ and C^{β}, and the rigid units 5 and 9 both comprise the atoms O, N, H and C^{α} (the peptide bond is not rotatable).

## Torsion angles

A torsion angle a is defined by four atoms with position vectors <math>\scriptstyle r_a^{(1)}</math>, <math>\scriptstyle r_a^{(2)}</math>, <math>\scriptstyle r_a^{(3)}</math> and <math>\scriptstyle r_a^{(4)}</math>. The rotatable bond connects the second with the third atom of the torsion angle definition. The second atom of the torsion angle definition is the start point <math>\scriptstyle r_a = r_a^{(2)}</math> of the rotatable bond. The unit vector along the axis of the rotatable bond is given by <math>\scriptstyle e_a = (r_a^{(3)}-r_a^{(2)})/|r_a^{(3)}-r_a^{(2)}|</math>. The value *ϕ _{a}* ∈ [-

*π*,

*π*] of the torsion angle

*a*is related to the position vectors <math>\scriptstyle r_a^{(1)}</math>, <math>\scriptstyle r_a^{(2)}</math>, <math>\scriptstyle r_a^{(3)}</math> and <math>\scriptstyle r_a^{(4)}</math> by

- <math>\cos\phi_a = (\epsilon_1\cdot\epsilon_2)/|\epsilon_1||\epsilon_2|</math>,

where <math>\scriptstyle\epsilon_1 = e_a \wedge (r_a^{(1)} - r_a^{(2)})</math> and <math>\scriptstyle\epsilon_2 = e_a \wedge (r_a^{(4)} - r_a^{(3)})</math>, and *ϕ _{a}* receives the same sign as

*e*. The symbols “⋅” and “Λ” denote scalar and the vector product, respectively.

_{a}## Coordinate generation

Upon reading the residue library, each individual residue is rotated (as a whole) into a standard orientation:

- <math>r_a' = R(r_3-r_1,r_2-r_1)(r_\alpha-r_1)\,</math>

The position vector of the atom *α* = 1,2,… in the residue library is denoted by *r _{α}*. The corresponding position vector in the standard orientation of the residue is <math>r_{\alpha}'</math>.

*R*(

*u*,

*v*)is the rotation matrix whose rows are given by the three orthonormal vectors

- <math>\epsilon_1 = \frac{u}{|u|}, \epsilon_2 = \frac{u\wedge v}{|u\wedge v|}</math>, and <math>\epsilon_3 = \epsilon_1\wedge\epsilon_2</math>.

To calculate the coordinates of the atoms in a conformation that is given by the torsion angle values (*ϕ*_{1},…,*ϕ _{n}*) residues can be attached to a partial polypeptide chain one by one. Afterwards – before appending the next residue – the required torsion angle values must be set by rotating the appropriate atoms of the new residue. The “overlap atoms” in the residue library are used to dock a residue to the preceding one. The first three atoms of each residue entry in the residue library (the atoms C, O and N for amino acid residues in the standard residue library) are superimposed onto the final three atoms with corresponding names of the preceding residue. The coordinates <math>\scriptstyle r_\alpha

*\,</math> of the atoms of the docked residue are obtained by the transformation*

- <math>r_\alpha
*= p_1 + R(p_3-p_1,p_2-p_1)^{-1}(r_\alpha'-r_1')\,</math>,*

where *p*_{1}, *p*_{2} and *p*_{3} are the positions of the overlap atoms of the preceding residue, and <math>\scriptstyle r_\alpha'\,</math> are the coordinates of the new residue in standard orientation defined above. The transformation

- <math>r_\alpha'
*= r_a + R(e_a,\phi_a-\phi_a^{(0)})(r_\alpha*-r_a)\,</math> (α ∈*M*)._{a}

sets the desired torsion angle values. The transformation has to be applied for all rotatable bonds *m* of the newly docked residue in descending order, m,m - 1,…,1. In this equation *r _{a}* denotes the position vector of the start point of the rotatable bond

*a*, and

*e*is a unit vector along the rotation axis of the rotatable bond

_{a}*a*. The desired torsion angle value is given by

*ϕ*, and <math>\phi_a^{(0)}</math> is the value of the torsion angle

_{a}*a*in the conformation whose coordinates are stored in the residue library.

*M*denotes the set of atoms that are moved when the torsion angle

_{a}*a*is rotated.

*R*(

*e*,

*ϕ*) is the matrix for a rotation with axis

*e*and rotation angle

*ϕ*, given by

- <math>R(e,\phi)x = (e\cdot x)e + (e\wedge x)\sin\phi + (x-(e\cdot x)e)\cos\phi</math>

for an arbitrary vector *x*.

The generation of the atom coordinates using the above equations is inefficient because an atom is in general subjected to several coordinate transformations. The program CYANA therefore uses these equations only once after reading the residue sequence to generate the atom coordinates of the conformation with torsion angle values *ϕ*_{1} = … = *ϕ _{n}* = 0. This conformation is the start point for the fast algorithm that is used to generate the atom coordinates during torsion angle dynamics and minimization by building the “scaffold” of the rotatable bonds followed by the positioning of the atoms by a single coordinate transformation. Starting from the conformation

*ϕ*

_{1}= … =

*ϕ*= 0 with atom coordinates {

_{n}*r*}, the rigid units are first brought into a standard orientation:

_{&alpha}- <math>r_\alpha' = R(r_a^{(1)}-r_a^{(2)},r_a^{(3)}-r_a^{(2)})(r_\alpha-r_a^{(2)})</math>.

<math>r_a^{(i)}</math> denotes the position vector of the *i*^{th} atom in the definition of the torsion angle *a*. The transformation is applied to all atoms *α* in the rigid unit *a*. In addition, for each rigid unit *a* a rotation matrix *R _{a}* and a translation vector

*t*are calculated – the two quantities that form the scaffold of the tree structure.

_{a}- <math>R_a = R(r_a^{(1)}-r_a^{(2)},r_a^{(3)}-r_a^{(2)})R(r_{p(a)}^{(1)}-r_{p(a)}^{(2)},r_{p(a)}^{(3)}-r_{p(a)}^{(2)})^{-1}</math>,

- <math>t_a = R(r_a^{(1)}-r_a^{(2)},r_a^{(3)}-r_a^{(2)})(r_a^{(2)}-r_{p(a)}^{(2)})</math>.

The quantities <math>r_\alpha'</math>, *R _{a}* and

*t*have to be computed only once after reading the amino acid sequence. For each new conformation (

_{a}*ϕ*

_{1},…,

*ϕ*)

_{n}- <math>R_a' = R(e_z,\phi_a)R_a R_{p(a)}'^{-1}\,</math> (
*e*= (0,0,1))_{z}

- <math>t_a' = t_{p(a)}' + R_{p(a)}'^{-1}t_a\,</math>

Builds recursively the scaffold of rotatable bonds, and

- <math>r_\alpha
*= t_a' + R_a' r_\alpha'\,</math>*

generates the coordinates with a single transformation for each atom.

## References

ABE, H., BRAUN, W., NOGUTI, T. & GO, N. (1984). Rapid calculation of 1st and 2nd derivatives of conformational energy with respect to dihedral angles for proteins - General recurrent equations. Computers & Chemistry 8, 239–247.

GÜNTERT, P. (1993). Neue Rechenverfahren für die Proteinstrukturbestimmung mit Hilfe der magnetischen Kernspinresonanz. Ph.D. thesis, ETH.

GÜNTERT, P., BRAUN, W. & WÜTHRICH, K. (1991). Efficient computation of three-dimensional protein structures in solution from nuclear magnetic resonance data using the program DIANA and the supporting programs CALIBA, HABAS and GLOMSA. Journal of Molecular Biology 217, 517–530.