<< prev | index | next >> |
Notes&Credits
This is not part of the official documentation of TINKER program package, but have been ideated by me for this wiki. If you do use these tutorials for teaching, please consider to acknowledge Chembytes and spread the word.
You are welcome to improve the tutorial, and, if you do it, please consider to help me improve Chembytes and send me your tutorial or become member of Chembytes and write it yourself. Don't worry, you will be properly acknowledged for your work.
Intro
Tinker program package comes with many different algorithms to minimize structures: minimize, optimize, monte, newton, pss, sniffer. Special versions of minimize, optimize newton and pss algorithm are made when internal coordinates or rigid bodies are used. The algorythms implement different minimization methods, therefore give different accuracy and resultes (local Vs global minima) and you should individuate the on that perform better with your system. A brief introduction to those methods is available in the manual.
Download the zip archive get the files for this tutorial.To start this tutorial, copy in a new directory the files peptide.xyz and peptide.key that are in tinker/example directory.
OPLSAA force field is used for this tutorial (see key file). Other parameters, such as
cutoffs are set to their default values.
Part I: Analyze the peptide
At first, let's analyze the initial structure for the peptide. We will do this in two different ways, so to illustrate how to perform TINKER calculations. If you type:
[user@desktop]$ analyze
you will be ask to insert the cartesian coordinate file. Type:
peptide.xyz
And press enter. Now the program will ask you where is the parameter file to use, i.e., oplsaa in this case. Type:
../../params/oplsaa.prm
and press enter. Now the following menu is displayed:
The TINKER Analysis Facility can Provide :
General System and Force Field Information [G]
Force Field Parameters for Interactions [P]
Total Potential Energy and its Components [E]
Energy Breakdown over Each of the Atoms [A]
List of the Large Individual Interactions [L]
Details for All Individual Interactions [D]
Electrostatic, Inertial & Virial Properties [M]
Enter the Desired Analysis Types [G,P,E,A,L,D,M] :
Type e, in order to analyze the total energy of the structure and its components. The energies will be prompted.
This way to execute TINKER calculations has severe limitations, in particular since you cannot specify parameters other than the forcefield. So cutoffs, thermostat, and all the other keywords used to properly set a force field calculations will be neglected. Furthermore, you cannot redirect the output in a file, so to easily save the energies. This way to operate is useful to learn which parameters are asked by TINKER program and in which order. Once you are familiar with the TINKER program you want to use, you can use a much more effective way to perform the calculation:
[user@desktop]$ analyze peptide.xyz -k peptide.key e >analyze.log
This command will execute analyze for the peptide.xyz structure using the settings in the peptide.key key file, asks to compute the total energy and its components and redirect the output to a log file. This is how you should use TINKER programs, either in local or when submitting the calculation on a cluster using a queuing system.
Before move to the minimization of the structure, try also to analyze the structure using the other options. For example, try to see if the peptide is neutral or charged.
Part II - Minimize the peptide structure
This part of the tutorial will present some of the minimization algorithms. The results will be analyzed in the third part (and last) part of the tutorial.
minimize
Minimize implements a low storage BFGS non-linear optimization, and it is one of the most used algorithm used to minimize a structure. BFGS stays for Broyden-Fletcher-Goldfarb-Shanno method (see http://en.wikipedia.org/wiki/BFGS_method for more info).
To perform a minimization with minimize, you have to provide the name of the structure, the key file and the convergence criteria to specify when stop the minimization, respectively. By default the convergence criteria, the RMS gradient is 0.01. To use minimize type:
[user@Desktop]$ minimize peptide.xyz -k peptide.key 0.01
A number of informations will be prompted at each step of the minimization and the structure for the low-energy structure is written in peptide.xyz_2. Rename this file as min_peptide.xyz
Please note that TINKER will always use the last version of the specified structure file for the calculation. This means that if you redo a minimization as before, the structure in peptide.xyz_2 will be used.
In case the structure is given in internal coordinates (.int file), you should use minrot instead of minimize. For rigid body minimization, use minrigid instead.
monte
Monte implements a Monte Carlo (MC) minimization and conformational search using Cartesian single atom or torsional moves. This method is slower than all the other optimization methods, but can search for the real global minimum for the structure. If your molecules has a lot of degrees of freedom (polymer chain or long alkyl groups) this algorithm should give a quite low-energy structure. The actual minimization is made calling the truncated Newton minimization algorithm. The program will ask for the total number of Monte Carlo steps to perform (1000 by default), if use Cartesian or Torsional moves (cartesian by default). If you chose Cartesian moves, the maximum steps for atoms displacement is asked (3.0 Angstroms by default), as well as the temperature (298K) and the RMS gradient for the truncated Newton minimization (0.01 by default). If you chose Torsional moves, then you have to specify which method to use: (i) Automatic selection of torsional angles (default), (ii) manual selection of torsional angle to rotate and (iii) manual selection of torsional angle to freeze. After you will be asked to specify the size of the torsional step (180 deg by default), the temperature (298K by default) and the RMS gradient for the truncated Newton minimization (0.01 by default). In this tutorial we will use Cartesian moves, so type:
[user@desktop]$ monte peptide.xyz -k peptide.key 1000 C 298 0.01
Monte will prompt the number, the total energy, the temperature, the ratio and the status (Accepted, Rejected, Same) for the structure generated during the current MC iteration. The radio is the running ratio of Accepted structures over the number if MC iteration done. The coordinates for the lower-energy structure found, is written in peptide.xyz_2. Rename this file in mnt_peptide.xyz
Please note that this can take a (long) while. Speed can be improved reducing the size of the atoms displacement (or the size of torsional angle rotations), but this could cause to reduce the amount of potential energy landscape explored.
newton
Newton implements a truncated Newton minimization method. This method use a truncated Newton optimization algorithm in which a preconditioned linear conjugate gradient method is used to approximately solve Newton's equations. To know more about the technicalities, edit the tncg.f file in tinker/source directory. The program will asks to choose a mode between Auto (default), Newton, TNCG (truncated Newton) and DTNCG (truncated Newton with finite differencing). Then you have to choose a method between Auto (default), None, Diagonal, Block (3x3 block diagonal), SSOR and ICCG (incomplete Cholesky preconditioning). Finally, the RMS Gradient is asked (0.01 by default).
To use newton, do:
[user@desktop]$ newton peptide.xyz -k peptide.key A A 0.01
A number of informations will be prompted at each step of the minimization, and the final structure is saved in peptide.xyz_2. Rename this file in nwt_peptide.xyz.
newtrot program is provided in case the structure to minimize is in internal coordinates.
optimize
Optimize implements an optimally conditioned variable metric method. Usually can give a lower-energy structure than that obtained with minimize, but can be used on smaller systems. By default the convergence criteria, the RMS gradient is 0.01. To use optimize type:
[user@Desktop]$ optimize peptide.xyz -k peptide.key 0.01
A number of informations will be prompted at each step of the minimization and the lower-energy structure is written in peptide.xyz_2, so rename this file as opt_peptide.xyz
In case the structure is given in internal coordinates (.int file), you should use optrot instead of optimize. For rigid body minimization, use optrigid instead.
sniffer/pss
Sniffer implements a global energy minimization using discrete version of Griewank's global search trajectory. As stated in the manual, is quite sensitive to the choice of the parameters.
Pss implements the potential smoothing plus search method for global optimization. pssrot and pssrigid are also availables. Since I have never used those methods myself, I will not cover them in this tutorial.
Part III - Compare the results.
You can use analyze now to compare the energies of the minimized structures obtained with the methods used before. You may find that the energies vary quite a lot depending by the method used to optimize it, this because a methods such as minimize and optimize could be trapped to the nearest local minimum in the potential energy landscape for the molecule, while methods such as monte can explore larger regions of the same energy landscape, which usually leads to a deeper minimum, i.e., to a lower-energy structure. The difference between the results also depend on the complexity of the molecule to minimize: for small and rigid molecules with relatively small degrees of freedom, all the methods should give quite similar results, while can differ for more complex molecules, such as polymers, peptides, etc.
References
Monte
Z. Li and H. A. Scheraga, "Monte Carlo-Minimization Approach
to the Multiple-Minima Problem in Protein Folding", Proc. Natl.
Acad. Sci. USA, 84, 6611-6615 (1987)
Newton
J. W. Ponder and F. M Richards, "An Efficient Newton-like
Method for Molecular Mechanics Energy Minimization of
Large Molecules", Journal of Computational Chemistry,
8, 1016-1024 (1987)
R. S. Dembo and T. Steihaug, "Truncated-Newton Algorithms
for Large-Scale Unconstrained Optimization", Mathematical
Programming, 26, 190-212 (1983)
PSS
J. Kostrowicki and H. A. Scheraga, "Application of the Diffusion
Equation Method for Global Optimization to Oligopeptides", Journal
of Physical Chemistry, 96, 7442-7449 (1992)
S. Nakamura, H. Hirose, M. Ikeguchi and J. Doi, "Conformational
Energy Minimization Using a Two-Stage Method", Journal of Physical
Chemistry, 99, 8374-8378 (1995)
Sniffer
T. J. Richmond, "Solvent Accessible Surface Area and
Excluded Volume in Proteins", Journal of Molecular Biology,
178, 63-89 (1984)
L. Wesson and D. Eisenberg, "Atomic Solvation Parameters
Applied to Molecular Dynamics of Proteins in Solution",
Protein Science, 1, 227-235 (1992)
Comments
<< prev | index | next >> |
according to your experience is it possible to add Na+ ions to a structure before minimization?
I'm purposing to minimize some rna 3d structures in vacuo and I'd like to add Na+ counter ions to minimize the effects of negative phosphate groups.
Thank you for your tutorial they are very useful and interesting
best
Guido
Hi Guido, if parameters per Na+ are available in the force field you use, or you can add them, there is no problem to add counter ions to your rna. It may be necessary, though, to fix their position in space (keyword inactive), but I will try before leaving them free, at least for the minimization. Of course, you have to introduce them in the proper position along your rna ;)
Andrea
Hi I'm trying to predict a small protein structure through minimization and MD. However, I'm having problems with building it as it has disulfide bonds. Protein.exe seems to take in a certain code to input disulfide bonds, and I can't figure it out. Do you guys know how it is? Btw, your tutorial has been a great help to me.
Thanks!
Hi, I'm trying to do a MD simulation of a protein with Tinker.
But I don't know how to do the equalization for the systems. I saw some tutorial that first do a minimization of the system and then increase the temperature slowly. But I didn't find out something similar to Charmm or NAMD where we first constrain the system with a high constrain force, and then decrease this constrains step by step. Are there some simulation key word for this in Tinker. Are there a standard way for do the equalibration of protein before run the MD simulations. Thanks a lot.
Wuka
Post preview:
Close preview