Using an External Matrix¶
This example shows how to use matrices from external software in ANM
or GNM
analysis of protein dynamics.
Parse Hessian¶
We start by importing everything from the ProDy package:
In [1]: from prody import *
In [2]: from matplotlib.pylab import *
In [3]: ion() # turn interactive mode on
The input file that contains the Hessian matrix has the following format
(oanm_hes.txt
):
1 1 9.958948135375977e+00
1 2 -3.788214445114136e+00
1 3 6.236155629158020e-01
1 4 -7.820609807968140e-01
1 5 1.050322428345680e-01
1 6 -3.992616236209869e-01
1 7 -7.818332314491272e-01
1 8 -1.989762037992477e-01
1 9 -3.619094789028168e-01
1 10 -5.224789977073669e-01
...
parseSparseMatrix()
can be used for parsing the above file:
In [4]: hessian = parseSparseMatrix('oanm_hes.txt', symmetric=True)
In [5]: hessian.shape
Out[5]: (1053, 1053)
ANM calculations¶
Rest of the calculations can be performed as follows:
In [6]: anm = ANM('Using external Hessian')
In [7]: anm.setHessian(hessian)
In [8]: anm.calcModes()
In [9]: anm
Out[9]: <ANM: Using external Hessian (20 modes; 351 nodes)>
For more information, see Anisotropic Network Model (ANM).
Parse Kirchhoff¶
The input file that contains the Kirchhoff matrix has the following format
(ognm_kirchhoff.txt
):
3316
1 1 5.00
1 2 -1.00
1 3 -1.00
1 4 -1.00
1 91 -1.00
1 343 -1.00
2 2 10.00
2 3 -1.00
2 4 -1.00
...
In [10]: kirchhoff = parseSparseMatrix('ognm_kirchhoff.txt',
....: symmetric=True, skiprows=1)
....:
In [11]: kirchhoff.shape
Out[11]: (351, 351)
GNM calculations¶
Rest of the GNM calculations can be performed as follows:
In [12]: gnm = GNM('Using external Kirchhoff')
In [13]: gnm.setKirchhoff(kirchhoff)
In [14]: gnm.calcModes()
In [15]: gnm
Out[15]: <GNM: Using external Kirchhoff (20 modes; 351 nodes)>
For more information, see Gaussian Network Model (GNM).