with a dimensional vector ( is the number of atoms) of the stable
conformation and the same object of the current conformation.
is the Hessian matrix of :
and:
We denote:
and
Now we can define the second derivative of :
and
which allows us to define the Hessian matrix :
as:
Which can then be written as,
The diagonal of is defined with:
Now we can play with python, a protein, and normal modes. First the import:
And we load the pdb structure with only atoms.
Now we extract the coordinates of the atoms ():
Then is computed with scipy.spatial and we define a function to
compute the Hessian matrix as defined below. We put a distance cutoff of 15
Angstrom.
And then we diagonalize the Hessian matrix above:
The sorted eigenvalues are plotted:
The first 6 eigenvalues are null (the 6 degrees of freedom of a rigid body in a
3D space):
Then, we can compute the covariance and correlation matrix from the inverse of
the Hessian matrix :
with the number of considered atoms.
The element of the covariance matrix is given by the trace of each
super element of . The diagonal of the covariance matrix give the amplitude
of the fluctuation for each considered atom of the system.
Now we can plot the first and the second mode on the structure. First I align
the protein on the three axes of inertia:
And, here the plot for the first and second normal mode:
The first mode is predominated by the movement of a losely connected loop. The
2nd mode arises a more correlated global motion.
Below an interpolation along the second mode:
If you want to ask me a question or leave me a message add @bougui505 in your comment.