Optimising a path
Under construction...
Once a connection has been thought to be made, it is best to verify that there is indeed a connection. Run another PATHSAMPLE calculation with DIJKSTRA 0 and CYCLES 0. A common gotcha is a too low (i.e too negative) of a MAXTSENERGY value can make an apparent connection disappear! The aim is to grow the database until one sees a plateau in the GT (probably grouped) rate constant as a function of number of local minima. A plateau of around an order of magnitude is usually accurate enough.
The goal is to optimise the mean first passage time, by building a larger database that has more direct connections between the starting and ending minima. In pathdata, COMMENT DIJINITCONTFLY 0 and add SHORTCUT <n>, where n is perhaps a quarter of the path length, or less if the path is huge. Using DUMMYRUN in pathdata can help in setting the value for <n> because a list of pairs to connect will be created etc. but no actual OPTIM jobs will be submitted. Setting too large or too small <n> will be inefficient with respect to improving the rate constants. To begin with one rate constant is likely to be much smaller than the other one. You want to optimise the rate constant as far as possible, by keeping track of the rate constants as function of the number of minima in the databases. Eventually additions of new connections to the database will no longer reduce the rate constant. Focus on the DIJKSTRA 0 path, both its length, and the MFPT that it estimates.
The primary keywords to use when improving the rate constants are SHORTCUT, SHORTCUT BARRIER, and FREEPAIRS. Aggressive shortcutting of either variety may be required, but one should be careful about it introducing artificial traps, which can be alleviated with FREEPAIRS. For the FREEPAIRS calculations, focus on the NGT rate constants.
Some bits of data should be tracked when performing this calculation.
0. Check what's going on structurally in the highest-barrier processes: examine the corresponding sections of the path; maybe look at a movie (of those transitions... ;-). OPTIM keywords CHECKCHIRALITY and NOCISTRANS (for both CHARMM and AMBER) should be used to stop unphysical isomerizations getting into the database in the first place.
1. Periodically make a disconnectivity graph from the database (with or without grouping as necessary) to check for introduced traps.
2. The pathsample output lines starting with Dijkstra> will provide the most information about the rates of the existing database.
3. Check the GT rate constant every n cycles with a "GT 0 <n>" line. Might be useful if n is chosen to be large (as a possibly expensive GT calculation on a large database every cycle is not good...) Otherwise check the rate with a separate pathsample job e.g. when you're making a tree.