CS 321

 

Overlapping set of points

 

We consider two set of points:  and   that describes two three-dimensional objects (e.g.,  of protein chains). The (square of the) distance between the two coordinate sets is defined by

                               (1)

where  are the Cartesian position of one point ( coordinates).

We did not write  but  to indicate that there is a complication. Each of the protein chains remains unchanged upon rigid body translations and rotations. For example, if I will increase each of the  by 5 the second protein will still look exactly the same. More precisely, any transformation that maintains the same distances between the points that make the object is a rigid body transformation.

 

 

It is easy to verify that the displacement of all the  by 5 did not alter any of the distances. Consider the original , it does not change by adding five to  and . That is,  . The conclusion is therefore that translations (three translations along the x, y, and z axes) are legitimate rigid body transformations. Similarly we can show that rotations do not change distances.

Consider a position vector . A rotation is performed by a applying a matrix  on the vector .  satisfies  and . A distance between two points of the second object can be written as:

If we apply the same rotation for every single vector representing point, the distance does not change:

 

Translations and rotations do not affect the internal distances between internal points of a single object. However, if these operations apply to one object the distance between the two objects (equation (1)) depends on these operations. We need to make the definition of the distance unique. We therefore define the distance as the minimum value obtained by selecting optimal translations and the rotations.

 

For simplicity we consider separately the translations and the rotations. However, the separation does not affect the generality of our results.

 

Let us optimize the translation. We add to the points of the first object a displacement vector . We have

We wish to determine  so that  is a minimum. Differentiating  with respect to  we obtain

A similar argument follows for  and .

 

Ok, that was easy. How about rotations? Rotations are a little trickier; we will discuss them in steps. Let us first write the formula for the distance in an adjusted form. We assume that the translations were already taken care of (by fixing the geometric centers of the two proteins to the (0,0,0)) coordinate) and apply the rotation for all points in the first object. We also have to make sure that the matrix is unitary  and for that purpose we add Lagrange multipliers. We have (in an explicit form)

 

 

Consider the 3x3 matrices:

The minimum condition is written in a matrix notation as . Note that it is not so simple to solve the matrix e1quation directly since we do not know  and . In fact in many cases we can skip  Alternatively multiplying the above equation by its transpose, we have: . The matrix  is symmetric but  is not.

 

Let  be the eigenvectors of . They are also the right eigenvectors of . Let  bet the left eigenvector of ,  is also the product of applying on  ().

The eigenvalues of the symmetric matrix  are .

Substituting in the expression for  we have

Clearly the first summation over the squares of the vectors from the first and second objects is independent of the rotations. Note also that in writing the expression in the second line we used the unitary property of the rotation matrix (otherwise  ). The rotation matrix plays a role only in the last sum. Let  and  be the left and right unit vectors that form an orthonormal basis for the matrix . That is  or   . We have now for the last sum

*  

 

Suggest now an algorithm to compute the minimal distance.

Suggest a procedure to determine the rotation matrix.

Are we done, or are there more problems to fix?