c39b1

stringm

0-K String Method V. Ovchinnikov (ovchinnv@MIT.edu), B.L. Trout & M. Karplus * Description / Introduction to the string method * Syntax / String method command listing * Function / Description of commands and options * Examples / Examples * References / References
Top Introduction. The string method is an algorithm for finding paths between different configurations of a molecular system. It is a `chain-of-states' method, similar in principle to the Replica Path and Nudged Elastic Band (NEB) methods, in which a continuous transition path is `discretized' into a finite collection of system replicas under the constraint of approximately equal spacing (in an appropriate RMSD metric) between adjacent replicas. The `string' is essentially a discretization strategy that, in principle, can be applied to finding paths on any energy landscape, both at zero [1] and at a finite temperature [2]. The current implementation in CHARMM is limited to the string method at zero temperature (0-K String), although further development is on-going. Algorithm. The 0-K string is implemented within the framework of the ensemble module (ensemble ) according to reference [1]. For each replica, the 0-K string algorithm performs steepest descent (SD) evolution on the potential energy landscape (i.e. minimization) followed by a collective `reparameterization' to maintain equal spacing between adjacent replicas. The reparameterization step guarantees that the replicas do not slide down into the nearest energy minimum. The procedure is iterated until the string no longer moves. At this point it has converged to the minimum energy path (MEP) to within the discretization approximation [1]. Remarks on the implementation. Because the string algorithm requires inter-replica communication only during the reparameterization step, it is naturally compatible with all of the features of CHARMM available in the ensemble module, and in particular with all solvent models (although currently only EEF1 and ACE have been tested) The number of replicas in the discretized string, however, is equal to the number of processors in the ensemble (?nensem). Thus, this implementation only allows one processor per replica. The string functionality is accessed through the ensemble module, as described in the next section. To build the string method use the E and STRINGM keywords, e.g. $> ./install.com gnu medium g77 E MPICH STRINGM
Top Command syntax. ENSEmble STRIng { STATistics } [ ENER {<energy_terms>} [ENAM <chracter*>] - [ RMSD [RNAM <character*>] [RAPP] ] - [ DELS [DNAM <character*>] [DAPP] ] - [ ARCL [ANAM <character*>] [AAPP] ] { REPArameterize } [ ZERO ] [ITER <int>] [DEFI <real>]- [ LINEar|CSPLines|BSPLines] [MASS] - [ ORIE] (atom-selection) [MASS] { MINImize } {REPF <int>} mini-spec (minmiz )
Top Description of commands and options. ENSEmble STRIng { STATistics } [ COUNt <int> ] - [ ENER {<energy_terms>} [ENAM <chracter*>] ] END - [ RMSD [RNAM <character*>] [RAPP] ] - [ DELS [DNAM <character*>] [DAPP] ] - [ ARCL [ANAM <character*>] [AAPP] ] This command sets up options for the output of statistics. When called with no arguments after STAT, it causes a instance of statistics output to be written out. [COUNt <int>] specifies iteration counted for statistics output. The default value is 0. This number is incremented after every call to statistics, and is printed in the output files corresponding to RMSD, DELS, and ARCL. It is also appended to the base file name specified by the [ENAM <character*>] [ ENER {<energy_terms>} [ENAM <character*>] ] sets up output of energy values along the path. At each statistics call, the energy values corresponding to the terms in {<energy_terms>} will be listed in one file per iteration, with one line of output per replica. The list {<energy_terms>} can contain one or more energy substitution keywords described in energy.doc (Energy ). The current iteration will be appended to the base energy file name specified with [ENAM <character*>], followed by extension '.DAT'. If ENAM is omitted, energy output is directed to the output stream. This subcommand must be terminated by END. [ RMSD [RNAM <character*>] [RAPP] ] sets up output of RMSD values between the replica coordinates at the current iteration and the coordinates present in the comparison set (usually the initial string). At each call to string statistics, a line will be added to the file with the name specified in [RNAM <character*>], with the columns in the file corresponding to different replicas. If RAPP is specified, output will be appended to the file. If RNAM is omitted, RMSD output is directed to the output stream. This subcommand is useful for gauging convergence of the string. [ DELS [DNAM <character*>] [DAPP] ] sets up output of RMSD values between the replica coordinates at the current iteration and those at the previous iteration. At each call to string statistics, a line will be added to the file with the name specified with [DNAM <character*>]. If DAPP is specified, output will be appended to the file. If DNAM is omitted, RMSD output is directed to the output stream. This subcommand is useful for gauging the convergence of the string. [ ARCL [ANAM <character*>] [AAPP] ] sets up output of the distance between the adjacent replicas (such that their sum yields the string length) at the current iteration. At each call to string statistics, a line will be added to the file with the name specified with [ANAM <character*>]. If AAPP is specified, output will be appended to the file. If ANAM is omitted, RMSD output is directed to the output stream. This subcommand is useful for gauging the convergence of the string. ENSEmble STRIng { REPArameterize } [ ZERO ] [ITER <int>] [DEFI <real>]- [ LINEar|CSPLines|BSPLines] [MASS] - [ ORIE] (atom-selection) [MASS] This command sets up options for string reparameterization, which ensures that the string replicas remain equidistant (in the sense of equal RMSD between adjacent replicas). When called with no arguments after REPA, it causes the string to be reparameterized using the options specified in the most recent REPA call. [ZERO] indicates that the the reparameterization will use all Cartesian coordinates (in correspondence with the zero-temperature method). This option is assumed since the current implementation of the string method only contains the 0-K string method. [ITER <int>] specifies the maximum number of iterations in the reparameterization call. The reparameterization algorithm is iterative, and after each iteration the value d=max RMSD[i,i+1]/RMSD[i,i-1] moves closer to unity. The default value is 10. [DEFI <real>] specifies the maximum allowed RMSD error in the distance between adjacent replicas. The default value is 1.1. Thus, by default, reparameterization iterations will continue until (1) d=max RMSD[i,i+1]/RMSD[i,i-1] >1.1, or (2) the maximum number of iterations specified by [iter <int>] is exceeded. [ LINEar|CSPLines|BSPLines] [MASS] specifies the reparameterization algorithm. Linear, cubic splines and B-splines are supported. The default is CSPLines. Specifying BSPLines will usually produce smoother paths. The preferred method is LINEar. [MASS] causes the atom coordinates to be mass-weighted in when the string length is computed. [ ORIE] (atom-selection) [MASS] specifies that the adjacent string replicas are to be RMSD-aligned based on the atom selection. This option should almost always be present. [MASS] specifies that the orientation is to use mass-weighting. Prior to string reparameterization, replica i will be rotated/translated such that the RMSD between the orientation sets of atoms of replicas i and i-1 is minimized. ENSEmble STRIng { MINImize } {REPF <int>} - mini-spec (minmiz ) This command calls string steepest descent dynamics (using the SD minimizer). {REPF <int>} specifies the reparameterization frequency, i.e. the string is to be reparameterized after every <int> minimization iterations. The REPA command must be called prior to string minimization to set up reparameterization options. Statistics output will be called before each reparameterization. The STAT command must be called prior to string minimization to set up statistics output. Any options to the minimizer are passed via mini-spec. Note that only the SD minimizer is supported.
Top Usage example (assumes that each replica has a defined set of coordinates) ! 1) set up statistics ensemble string ener ener bonds angles dihe impr vdw elec enam @outdir/string end - rmsd rname @outdir/rmsd.dat dels dname @outdir/dsdt.dat arcl aname @outdir/arc.dat ! 2) setup reparameterization ensemble string repa zero iter 10 defi 1.021 linear orie select all end ! 3) minimize string -- 2019 iterations with reparameterization after every 20 ! iterations ensemble string mini repf 20 nstep 2019 ! decrease the minimization step and minimize again ensemble string mini repf 20 nstep 2019 step 0.001 Testcase: c35test/zts_ens.inp
Top [1] E, W., Ren, W. & Vanden-Eijnden, E. 2007. Simplified and improved string method for computing the minimum energy paths in barrier-crossing events. J. Chem. Phys. 126, 164103-164103-8 [2] Maragliano, L., Fischer, A., Vanden-Eijnden & Ciccotti, G. 2006 String method in collective variables: Minimum free energy paths and isocommittor surfaces. J. Chem. Phys. 125, 024106