Using BHINTERP to find minima between two end points
When using AMBER
On the beginning you need to have two optimized structures which are called endpoints. Often they are initial and final structures of studied path or reaction (however, here reaction means geometrical change in the system, not breaking and forming new bonds).
What files do you need to find a path connecting both endpoints?
1. coords.inpcrd -- file with coordinates in AMBER9 format (it can contain geometry of one of the endpoints, no matter which one)
2. coords.prmtop -- AMBER9 topology file prepared according to information presented here, while some very useful tutorials how to get topology file are presented here
3. min.in - file with AMBER9 keywords describing the conditions for AMBER minimization of the studied system (but with only one cycle, just to calculate the energy), e.g.:
Minimization &cntrl imin=1, maxcyc=1, ncyc=1, igb=2, saltcon=0.2, ntx=1, ntb=0, cut=15.0, rgbmax=12.0, ifswitch=1 /
4. start -- file with x, y, z coordinates of the first endpoint (just plain numbers, without atom names or types as is in xyz format!)
5. finish -- file with x, y, z coordinates of the second endpoint
6. start.1 which is a copy of start
7. finish.2 -- a copy of finish
8. odata.start -- file with keywords for optimizing start file, eg.:
EDIFFTOL 1.0D-6 GEOMDIFFTOL 0.1 BFGSMIN 1.0D-6 MAXERISE 1.0D-4 1.0D-2 BFGSSTEPS 1000 MAXBFGS 0.3 DUMPDATA NOFRQS AMBER9 start POINTS
9. odata.finish -- file with keywords for optimizing finish file, e.g.:
EDIFFTOL 1.0D-6 GEOMDIFFTOL 0.1 BFGSMIN 1.0D-6 MAXERISE 1.0D-4 1.0D-2 BFGSSTEPS 1000 MAXBFGS 0.3 DUMPDATA NOFRQS AMBER9 finish POINTS
10. odata.bhinterp -- file with OPTIM keywords specifying method of searching of minima, convergence criterion, etc. e.g.:
MAXBFGS 1.0 MAXERISE 1.0D-4 EDIFFTOL 1.0D-6 GEOMDIFFTOL 0.1 BFGSMIN 1.0D-6 BFGSSTEPS 10000 NOFRQS DUMPDATA PERMDIST CHECKCHIRALITY NOCISTRANS AMBER9 start POINTS
NOFRQS is specially useful for large system, a few thousands atoms, where calculation of frequencies is too time consuming. For smaller system you can use ENDHESS or ENDNUMHESS or NOHESS or...
11. pathdata -- in this file all necessary PATHSAMPLE keywords should be put:
EXEC /home/wales/bin/A9OPTIM.4.0 TEMPERATURE 0.592 NATOMS 2923 TRIPLES ADDTRIPLES JOBSPERNODE 1 CYCLES 1000 ITOL 1.0D0 GEOMDIFFTOL 0.1 EDIFFTOL 1.0D-6 PERMDIST DIJINITSTART EXP COPYOPTIM COPYFILES perm.allow min.in coords.inpcrd coords.prmtop COMMENT thresh maxe BHsteps RMS T step-size accrat K sfrac BHINTERP 5 -9100.0 1 0.01 1.00 0.4 0.5 10.0 0.5 CHECKCHIRALITY NOCISTRANS AMBER9
Take care to change path to executable file (if necessary), values of NATOMS and maxe (the second parameter in BHINTERP, it should/can be about 200 smaller than energies of both endpoints). Line 'JOBSPERNODE 1' is necessary for parallel jobs, however you can also use CPUS. Usage of PERMDIST requires file perm.allow in the same directory.
12. perm.allow -- file with list of atoms that may be permuted. Information how to get this file you can find here.
How to restart job?
If you have some minima stored in points.min file and you would like to increase their number, change 'DIJINITSTART EXP' into 'DIJINITCONT EXP'. That allows you to continue searching for minima. But if you restart your job with 'DIJINITSTART EXP' - you lost all minima you have found before, because file points.min will be overwrite! Update: new version of PATHSAMPLE does not overwrite this file, just stops with warning.