Conformers¶
Conformers is a flexible tool for conformer generation. It implements the RDKit 1, CREST 2 and Simulated Annealing conformer generation methods and can be combined with any AMS engine.
Tip
You can use Conformers from the Graphical User Interface or from python with PLAMS.
Overview¶
This is a simple example showing how to generate conformers of ethanol:
#!/bin/sh
$AMSBIN/conformers << EOF
Task Generate
System
Atoms
C -4.537101 -0.602542 -0.008859
C -3.601843 -1.804345 0.037274
O -2.267293 -1.387375 -0.058902
H -4.301877 0.096761 0.821305
H -5.588912 -0.942676 0.095614
H -4.425039 -0.071643 -0.977931
H -3.829607 -2.474689 -0.818032
H -3.766077 -2.377916 0.977441
H -2.012143 -1.043722 0.837186
End
End
Engine ForceField
EndEngine
EOF
The most important input options are:
Task: the task for the Conformers tool. Here we simply Generate a set of conformers starting from an initial structure. See the Tasks section for more information.
System: in the System block we specify the initial structure of the molecule for which you want to generate conformers, in this case an ethanol molecule.
Engine: during the conformers generation, atomistic calculations will be executed under the hood to compute energy and forces. With the engine block you can specify which atomistic engine to use and the options for the engine.
Tip
By default, the computationally fast (but not very accurate) ForceField engine is used to compute energy and forces.
If you need more accurate geometries and energies for your conformers, you can specify a more accurate (but slow) engine in the generation step. Alternatively, you can use the Optimize
, Filter
and Score
tasks to efficiently get accurate geometries and energies while keeping the computational cost to a minimum. See Workflow for an example.
When running the script above, a folder called conformers.results
will be created and the generated conformers will be saved in there (in .xyz
and .rkf
formats). See the general Input, execution and output section for more information.
Main Input Options¶
Tasks¶
You can specify the task for the Conformers tool via the Task
input option:
Task [Generate | Optimize | Filter | Score | Expand]
The main (and default) Task is Generate: given an initial structure, the Conformers tool will generate a set of conformers.
The other tasks, described below, can be used to refine or combine previously generated conformer sets. The Workflow example shows how the various tasks can be combined in a simple workflow to efficiently obtain accurate conformers.
Task
- Type
Multiple Choice
- Default value
Generate
- Options
[Generate, Optimize, Filter, Score, Expand]
- Description
The task to be performed by the Conformers tool. ‘Generate’: given a molecule, generate a set of conformers. Note: this task will automatically optimize, filter and score the conformers. ‘Optimize’: given a previously generated set of conformers, optimize, filter and score the structures using the specified engine. ‘Filter’: given one or more previously generated set of conformers, merge them into a single conformer set and filter out duplicate conformers. Note: this will not optimize or re-score the conformers. ‘Score’ given one or more previously generated set of conformers, re-score them by computing the energy using the specified engine. Note: this will only do a single point calculation, and will not optimize the structures. In case of ‘Optimize’, ‘Filter’ and ‘Score’ you can specify the input conformer set(s) using the ‘InputConformersSet’ keyword.
Input molecule(s)¶
For the Generate
task you can use the System
or LoadSystem
blocks to specify the input molecule. See the System block documentation for a detailed description.
For the Optimize
, Filter
and Score
tasks, you should instead provide the results of a previously run Conformers calculation as input via the InputConformersSet
keyword. See also the Constraints, Restraints, Walls section.
InputConformersSet string
InputConformersSet
- Type
String
- Recurring
True
- Description
The path to a file containing a set of conformers. The file should be either an ‘conformers.rkf’ file (i.e. the results file of conformers) or a concatenated .xyz file. You can specify multiple input conformers sets by including the InputConformersSet keyword multiple times.
When loading conformers using the InputConformersSet
key, you can optionally specify the InputMaxEnergy
option:
InputMaxEnergy float
InputMaxEnergy
- Type
Float
- Unit
kcal/mol
- Description
Threshold for filtering out high-energy conformers when loading conformers sets using the InputConformerSet keyword. Conformers with an larger relative energy will not be loaded.
A similar option is the InputMaxConfs
key, which will use only the \(k\) lowest energy conformers for an integer input \(k\):
InputMaxConfs integer
InputMaxConfs
- Type
Integer
- Description
The maximum number of conformers to carry forward when loading conformer sets. If this input is not specified, this limit will not be imposed.
Engine¶
With the Engine block you can specify which atomistic engine to use and the options for the engine. See the AMS engine documentation for more info.
If no engine block is specified, the ForceField engine (with the UFF force field) will be used as default.
Generators¶
Three different methods of conformer generation are implemented: RDKit 1, CREST 2 and ANNEALING. The default generation method is RDKit.
You can select which method to use in the Generator
block:
Generator
Method [RDKit | CREST | ANNEALING]
End
Generator
- Type
Block
- Description
Options for the conformer generator.
Method
- Type
Multiple Choice
- Default value
RDKit
- Options
[RDKit, CREST, ANNEALING]
- GUI name
Generator method
- Description
Method used to generate the conformers. The RDKit generator is based on random distance matrix method. This is the recommended (and default) method. The CREST Generator uses a multi-step workflow with meta-dynamics simulations to explore the conformers space of a molecule. This can be a powerful conformer search method, but it is generally computationally expensive compared to the RDKit generator. THe ANNEALING generator performs a simulated annealing simulation to explore conformer space.
Input options for the various methods can be specified in their respective input blocks. See the section Other input options for the complete set of input options.
Conformers Equivalence¶
An important aspect of conformers generation is the reduction of a set of geometries into a set of unique conformers. As the Conformer tool generates new potential conformers, it needs to be able to determine whether a structure is a new conformer (in which case it is added to the list of unique conformers) or whether is simply a slightly different geometry of an already observed conformer (in which case, the structure is discarded).
The conformer tool therefore needs a procedure that, given two geometries, is able to discriminate between the following situations:
the two geometries correspond to the same conformer
the two geometries correspond to distinct conformers
In the Equivalence
block various options related to this equivalence procedure can be specified.
Equivalence
Method [AMS | TFD | RMSD | CREST]
End
Equivalence
- Type
Block
- Description
Options for the procedure determining whether two structures are equivalent or distinct conformers.
Method
- Type
Multiple Choice
- Default value
CREST
- Options
[AMS, TFD, RMSD, CREST]
- GUI name
Equivalence method
- Description
Method used to determine (and filter out) equivalent conformers. The CREST equivalence method relies on rotational constants comparisons. For this reason, conformers with the same rotational constants (such as mirror images) will be considered equivalent conformers. The AMS equivalence method uses a distance matrix and dihedrals to compare conformers. This equivalence method can be computationally expensive for large molecules. The TFD equivalence method uses the Torsion Fingerprint Difference as implemented in RDKit. The RMSD equivalence method uses the RDKit GetBestRMS implementation.
Input options for the various methods can be specified in their respective input blocks. See the section Other input options for the complete set of input options.
Filtering¶
The Conformers tool can automatically filter out conformers based on some criteria, e.g. it will discard high energy conformers.
The filtering options can be specified in the Filter
block:
Filter
MaxEnergy float
RemoveNonMinima Yes/No
End
Filter
- Type
Block
- Description
Options for the conformer filtering.
MaxEnergy
- Type
Float
- Unit
kcal/mol
- Description
Threshold for filtering out high-energy conformers. If the relative energy of a conformer with respect to the lowest conformer is larger than this value, the conformer will be discarded.
RemoveNonMinima
- Type
Bool
- Default value
No
- Description
For the final set of conformers, explicitly check that the geometry corresponds to a local minimum, and remove it if it does not. Note: this will run a PES point characterization, which can be computationally expensive!
Constraints, Restraints, Walls¶
The Conformers tool can be used in combination with Constraints (constraints), Restraints (restraints), and EngineAddons (engine addons).
The constraints fix the specified degrees of freedom to certain values, while the restraints restricts the specified degrees of freedom to be near the specified values using an added potential energy function. The engine add-ons cover a wide range of functionality, but the most important one for conformers is the WallPotential
, which adds a spherical repulsive potential around the origin, trapping the atoms inside.
It is discouraged to use the RDKit Generate
method (the default) in combination with constraints and restraints. The RDKit Generate
method consists of two steps:
Call to RDKit ETKGD method for initial conformer generation
Geometry optimization of all conformer candidates with an AMS engine
Step 1 does not accept constraints, restraints, or engine add-ons, and therefore too many undesirable conformers will be passed to the constrained optimizer.
It is possible to use constraints in the RDKit ETKDG procedure as well, but they are limited to fixed atoms, and have to be set manually in the Generator
block.
Generator
RDKitETKDG
- Type
Block
- Description
Settings for the call to RDKits ETKDG conformer generator tool.
BestRMSDThreshold
- Type
Float
- Default value
-1.0
- Description
After ETKDG conformer generation by RDKit, RDKit can be used to remove duplicates via the BestRMS algorithm. This filter does exactly the same as the RMSD equivalence detector in the Equivalence block.
ConstrainedAtoms
- Type
Integer List
- Description
The indices of the atoms to constrain during ETKDG conformer generation.
Forcefield
- Type
Multiple Choice
- Default value
None
- Options
[None, UFF, MMFF]
- Description
The name of the RDKit forcefield to use for geometry optimization at the end of ETKDG conformer generation (by default no geometry optimization is performed). Using the RDKit internal optimization may make the subsequent geometry optimizations with AMS faster.
Parallel
- Type
Bool
- Default value
No
- Description
Experimental: Parallelize the RDKit generation step by calling the RDKit conformer generation method in parallel from multiple processes.
RMSDThreshold
- Type
Float
- Default value
-1.0
- Description
Root Mean Square deviation threshold for removing similar/equivalent conformations during the RDKit ETKDG procedure. By default there is no pruning (value: -1).
UseExpTorsionAnglePrefs
- Type
String
- Default value
default
- Description
Impose experimental torsion angle preferences in RDKit ETKDG conformer generation. By default the RDKit version determines whether or not to switch this on.
The other Generate
methods of the Conformers tool make use of both molecular dynamics simulations (Crest and Annealing) and geometry optimizations. Not all constraints are can be used in molecular dynamics simulations, so where possible constraints are automatically converted to the corresponding restraints.
Conformer Generation with Multiple Molecules¶
The wall potential described above can be used in combination with the Crest
and Annealing
methods to generate conformers for systems with multiple molecules. A simple example below demonstrates this for an acetic acid molecule in the presence of water. The radius of the spherical constraint is manually set to 4.5 Angstrom.
#!/bin/sh
"$AMSBIN/conformers" << eor
Engine ForceField
EndEngine
Generator
Method CREST
End
System
Atoms
C -5.168356138856709 -0.9040308913456915 -0.14509537743978
C -3.674177007131515 -0.8549162177628133 -0.1466485108795087
O -3.036130963738181 0.3677379219191289 -0.1592569297095029
O -3.033827233992448 -1.897394223042741 -0.1762700959655665
H -5.578445514437495 0.05058176564435996 0.2458678935590599
H -5.524620190394747 -1.732922198697688 0.5010944819578638
H -5.536566707641177 -1.061832129921519 -1.180309622581397
H -2.058681010424327 0.197909193054116 -0.1773409518219506
O -4.51655946130152 -4.444022963974381 0.9796661086035751
H -4.406160106170592 -3.748388119201934 1.675984760241468
H -5.428884582974359 -4.296939008632186 0.6238436183248668
End
BondOrders
1 2 1.0
1 5 1.0
1 6 1.0
1 7 1.0
2 3 1.0
2 4 2.0
3 8 1.0
9 10 1.0
9 11 1.0
End
End
EngineAddons
WallPotential
Enabled Yes
Radius 4.5
End
End
eor
Examples¶
Workflow¶
During the conformers generation (i.e. the “generate” task), a large number of atomistic calculations will be executed under the hood. This can get computationally very expensive if an accurate engine (such as ADF) is used. This is why the default engine is the computationally fast (but not very accurate) ForceField engine.
By combining the Generate
, Optimize
and Score
tasks you can build a simple workflow to get accurate geometries and energies while keeping the computational cost to a minimum.
A typical workflow might look like this:
Generate a set of conformers using
Task Generate
with the fast but approximate ForceField engineRe-optimize the geometries generated in the previous step using
Task Optimize
with a more accurate engine (e.g. DFTB)Re-score the conformers using the using
Task Score
with an accurate engine (e.g. ADF)
#!/bin/sh
# Simple workflow:
# - generate an initial set of 1-bromo-3-chloropropane conformers with UFF (ForceField engine)
# - re-optimize the conformers with GFN1-xTB (DFTB engine)
# - re-score the GFN1-xTB-optimized conformers using DFT energies (ADF engine)
AMS_JOBNAME=generate_uff $AMSBIN/conformers << EOF
Task Generate
System
Atoms
Br -4.16969843 2.48953245 -0.00000000
C -2.69926018 3.75062981 -0.00000000
C -1.36372383 3.00977020 -0.00000000
C -0.19648214 3.99512105 0.00000000
Cl 1.35297276 3.11657146 0.00000000
H -2.78129583 4.39009878 0.90457474
H -2.78129583 4.39009878 -0.90457474
H -1.30112035 2.36381643 -0.90271681
H -1.30112035 2.36381643 0.90271681
H -0.24025734 4.63864134 0.90438917
H -0.24025734 4.63864134 -0.90438917
End
End
Engine ForceField
Type UFF
EndEngine
EOF
AMS_JOBNAME=optimize_gfn1xtb $AMSBIN/conformers << EOF
Task Optimize
InputConformersSet generate_uff.results/conformers.rkf
Engine DFTB
Model GFN1-xTB
EndEngine
EOF
AMS_JOBNAME=score_dft $AMSBIN/conformers << EOF
Task Score
InputConformersSet optimize_gfn1xtb.results/conformers.rkf
# Here we use the default ADF settings. For real calculations, you
# should use a larger basis set (e.g. TZP) and a better XC functional
Engine ADF
EndEngine
EOF
echo "Final conformers:"
cat score_dft.results/conformers.xyz
References¶
- 1(1,2)
G. Landrum, Rdkit documentation Release 2013
- 2(1,2)
P. Pracht, F. Bohle, S. Grimme, Automated exploration of the low-energy chemical space with fast quantum chemical methods Physical Chemistry Chemical Physics: PCCP, 19 Feb 2020, 22(14):7169-7192
Other input options¶
Here we document more advanced input options for the Conformer tool. See the section Main Input Options for the most important input option.
Output
- Type
Block
- Description
Options regarding the output and result files.
KeepWorkDir
- Type
Bool
- Default value
No
- Description
Do not remove the working directories after the conformer generation is finished.
rkf
- Type
Bool
- Default value
Yes
- Description
Save the final conformers in .rkf format. The file ‘conformers.rkf’ will be located in the results directory. You can visualize this file using the AMSMovie GUI module.
sdf
- Type
Bool
- Default value
Yes
- Description
Save the final conformers in .sdf format. The file ‘conformers.sdf’ will be located in the results directory.
xyz
- Type
Bool
- Default value
Yes
- Description
Save the final conformers in .xyz format. The file ‘conformers.xyz’ will be located in the results directory.
RNGSeed
- Type
Integer
- Description
Initial seed for the (pseudo)random number generator. If this is unset, the generator will be seeded randomly from external sources of entropy and the generated conformers will be non-deterministic.
Generator
- Type
Block
- Description
Options for the conformer generator.
ANNEALING
- Type
Block
- Description
Options for the annealing generator. This generator creates conformers by performing a simulated annealing simulation.
MolecularDynamics
- Type
Block
- Description
Configures molecular dynamics (with the velocity-Verlet algorithm) with and without thermostats. This block allows to specify the details of the molecular dynamics calculation. Default values will be ignored.
Checkpoint
- Type
Block
- Description
Sets the frequency for storing the entire MD state necessary for restarting the calculation.
Frequency
- Type
Integer
- Default value
1000
- GUI name
Checkpoint frequency
- Description
Write the MD state and engine-specific data to the respective .rkf files once every N steps.
WriteProperties
- Type
Bool
- Default value
No
- Description
Write the properties from the properties section to the ChecoPoint file once every N steps.
InitialVelocities
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
File
- Type
String
- Description
AMS RKF file containing the initial velocities.
RandomVelocitiesMethod
- Type
Multiple Choice
- Default value
Exact
- Options
[Exact, Boltzmann, Gromacs]
- GUI name
Velocity randomization method
- Description
Specifies how are random velocities generated. Three methods are available. Exact: Velocities are scaled to exactly match set random velocities temperature. Boltzmann: Velocities are not scaled and sample Maxwell-Boltzmann distribution. However, the distribution is not corrected for constraints. Gromacs: Velocities are scaled to match set random velocities temperature, but removal of net momentum is performed only after the scaling. Resulting kinetic energy is lower based on how much net momentum the system had.
Temperature
- Type
Float
- Unit
Kelvin
- GUI name
Initial temperature
- Description
Sets the temperature for the Maxwell-Boltzmann distribution when the type of the initial velocities is set to random, in which case specifying this key is mandatory. AMSinput will use the first temperature of the first thermostat as default.
Type
- Type
Multiple Choice
- Default value
Random
- Options
[Zero, Random, FromFile, Input]
- GUI name
Initial velocities
- Description
Specifies the initial velocities to assign to the atoms. Three methods to assign velocities are available. Zero: All atom are at rest at the beginning of the calculation. Random: Initial atom velocities follow a Maxwell-Boltzmann distribution for the temperature given by the [MolecularDynamics%InitialVelocities%Temperature] keyword. FromFile: Load the velocities from a previous ams result file. Input: Atom’s velocities are set to the values specified in the [MolecularDynamics%InitialVelocities%Values] block, which can be accessed via the Expert AMS panel in AMSinput.
Values
- Type
Non-standard block
- Description
This block specifies the velocity of each atom, in Angstrom/fs, when [MolecularDynamics%InitialVelocities%Type] is set to Input. Each row must contain three floating point values (corresponding to the x,y,z component of the velocity vector) and a number of rows equal to the number of atoms must be present, given in the same order as the [System%Atoms] block.
NSteps
- Type
Integer
- Default value
1000
- GUI name
Number of steps
- Description
The number of steps to be taken in the MD simulation.
Preserve
- Type
Block
- Description
Periodically remove numerical drift accumulated during the simulation to preserve different whole-system parameters.
AngularMomentum
- Type
Bool
- Default value
Yes
- GUI name
: Angular momentum
- Description
Remove overall angular momentum of the system. This option is ignored for 2D and 3D-periodic systems, and disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
CenterOfMass
- Type
Bool
- Default value
No
- GUI name
: Center of mass
- Description
Translate the system to keep its center of mass at the coordinate origin. This option is not very useful for 3D-periodic systems.
Momentum
- Type
Bool
- Default value
Yes
- GUI name
Preserve: Total momentum
- Description
Remove overall (linear) momentum of the system. This is disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
Print
- Type
Block
- Description
This block controls the printing of additional information to stdout.
System
- Type
Bool
- Default value
No
- Description
Print the chemical system before and after the simulation.
Velocities
- Type
Bool
- Default value
No
- Description
Print the atomic velocities before and after the simulation.
Restart
- Type
String
- GUI name
Restart from
- Description
The path to the ams.rkf file from which to restart the simulation.
Shake
- Type
Block
- Description
Parameters of the Shake/Rattle algorithm.
All
- Type
String
- Recurring
True
- GUI name
Constrain all
- Description
Constraint description in one the following formats: All [bondOrder] bonds at1 at2 [to distance] All triangles at1 at2 at3 The first option constrains all bonds between atoms at1 at2 to a certain length, while the second - bonds at1-at2 and at2-at3 and the angle between them. The [bondOrder] can be a number or a string such as single, double, triple or aromatic. If it’s omitted then all bonds between specified atoms will be constrained. Atom names are case-sensitive and they must be as they are in the Atoms block, or an asterisk ‘*’ denoting any atom. The distance, if present, must be in Angstrom. If it is omitted then the bond length from the initial geometry is used. Important: only the bonds present in the system at certain points of the simulation (at the start or right after adding/removing atoms) can be constrained, which means that the bonds may need to be specified in the System block. Warning: the triangles constraint should be used with care because each constrained bond or angle means removing one degree of freedom from the dynamics. When there are too many constraints (for example, “All triangles H C H” in methane) some of them may be linearly dependent, which will lead to an error in the temperature computation. Valid examples: All single bonds C C to 1.4 All bonds O H to 0.98 All bonds O H All bonds H * All triangles H * H
ConvergeR2
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the max squared difference, in atomic units.
ConvergeRV
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the orthogonality of the constraint and the relative atomic velocity, in atomic units.
Iterations
- Type
Integer
- Default value
100
- Description
Number of iterations.
ShakeInitialCoordinates
- Type
Bool
- Default value
Yes
- Description
Apply constraints before computing the first energy and gradients.
Thermostat
- Type
Block
- Recurring
True
- Description
This block allows to specify the use of a thermostat during the simulation. Depending on the selected thermostat type, different additional options may be needed to characterize the specific thermostat’ behavior.
BerendsenApply
- Type
Multiple Choice
- Default value
Global
- Options
[Local, Global]
- GUI name
Apply Berendsen
- Description
Select how to apply the scaling correction for the Berendsen thermostat: - per-atom-velocity (Local) - on the molecular system as a whole (Global).
ChainLength
- Type
Integer
- Default value
10
- GUI name
NHC chain length
- Description
Number of individual thermostats forming the NHC thermostat
Duration
- Type
Integer List
- GUI name
Duration(s)
- Description
Specifies how many steps should a transition from a particular temperature to the next one in sequence take.
Region
- Type
String
- Default value
*
- Description
The identifier of the region to thermostat. The default ‘*’ applies the thermostat to the entire system. The value can by a plain region name, or a region expression, e.g. ‘*-myregion’ to thermostat all atoms that are not in myregion, or ‘regionA+regionB’ to thermostat the union of the ‘regionA’ and ‘regionB’. Note that if multiple thermostats are used, their regions may not overlap.
Tau
- Type
Float
- Unit
Femtoseconds
- GUI name
Damping constant
- Description
The time constant of the thermostat.
Temperature
- Type
Float List
- Unit
Kelvin
- GUI name
Temperature(s)
- Description
The target temperature of the thermostat. You can specify multiple temperatures (separated by spaces). In that case the Duration field specifies how many steps to use for the transition from one T to the next T (using a linear ramp). For NHC thermostat, the temperature may not be zero.
Type
- Type
Multiple Choice
- Default value
None
- Options
[None, Berendsen, NHC]
- GUI name
Thermostat
- Description
Selects the type of the thermostat.
TimeStep
- Type
Float
- Default value
0.25
- Unit
Femtoseconds
- Description
The time difference per step.
Trajectory
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
ExitConditionFreq
- Type
Integer
- GUI name
Exit condition frequency
- Description
Check the exit conditions every N steps. By default this is done every SamplingFreq steps.
PrintFreq
- Type
Integer
- GUI name
Printing frequency
- Description
Print current thermodynamic properties to the output every N steps. By default this is done every SamplingFreq steps.
SamplingFreq
- Type
Integer
- Default value
100
- GUI name
Sample frequency
- Description
Write the the molecular geometry (and possibly other properties) to the .rkf file once every N steps.
TProfileGridPoints
- Type
Integer
- Default value
0
- Description
Number of points in the temperature profile. If TProfileGridPoints > 0, a temperature profile along each of the three lattice axes will be written to the .rkf file. The temperature at a given profile point is calculated as the total temperature of all atoms inside the corresponding slice of the simulation box, time-averaged over all MD steps since the previous snapshot. By default, no profile is generated.
WriteBonds
- Type
Bool
- Default value
Yes
- Description
Write detected bonds to the .rkf file.
WriteCharges
- Type
Bool
- Default value
Yes
- Description
Write current atomic point charges (if available) to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze charges.
WriteCoordinates
- Type
Bool
- Default value
Yes
- Description
Write atomic coordinates to the .rkf file.
WriteEngineGradients
- Type
Bool
- Default value
No
- Description
Write atomic gradients (negative of the atomic forces, as calculated by the engine) to the History section of ams.rkf.
WriteMolecules
- Type
Bool
- Default value
Yes
- Description
Write the results of molecule analysis to the .rkf file.
WriteVelocities
- Type
Bool
- Default value
Yes
- Description
Write velocities to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze the velocities.
Temperatures
- Type
Float List
- Default value
[298.0, 798.0]
- Unit
Kelvin
- Description
The minimum and maximum temperature of the annealing simulation. The simulation will start at the highest temperature, and cool down to the lowest.
UseShake
- Type
Bool
- Default value
No
- Description
Constrain all -H bonds with shake. If turned on, the MD timestep is automatically increased.
CREST
- Type
Block
- Description
Options for the CREST generator. The CREST generator performs a set of metadynamics simulations (using the METADYNAMICS generator), then a set of MD simulations (using the MD expander), and finally it does a combinatorial expansion of the generated conformers using the GC expander. This sequence is repeated in an iterative fashion until the lowest energy conformer no longer changes.
ConvergenceQualityCrude
- Type
Multiple Choice
- Default value
None
- Options
[Normal, Good, VeryGood, Excellent, None]
- Description
The tightness of the convergence of the crude geometry pre-optimizations. If set to none it will be selected two levels below ConvergenceQuality.
ConvergenceQualityTight
- Type
Multiple Choice
- Default value
None
- Options
[Normal, Good, VeryGood, Excellent, None]
- Description
The tightness of the convergence of the final geometry optimizations. If set to none it will be selected the same as ConvergenceQuality.
GCStep
- Type
Bool
- Default value
Yes
- Description
Wether or not to include the combinatorial expansion of the conformers using the GC Generator. For big systems this step can be very time consuming. By default it is set to True.
NCycles
- Type
Integer
- Default value
10
- Description
The maximum number of CREST cycles (by default the number is 10). If the lowest conformer energy converges before then, Crest exits.
UseShake
- Type
Bool
- Default value
Yes
- Description
Wether or not SHAKE should be turned on in the MD and Metadynamics simulations. If this is turned on, the MD timestep is automatically increased (from 2 to 5 fs).
METADYNAMICS
- Type
Block
- Description
Produces conformers by running a set of CREST-RMSD metadynamics simulations with different biases, extracting snapshots, and optimizing those.
ConvergenceQualityCrude
- Type
Multiple Choice
- Default value
none
- Options
[normal, good, verygood, excellent, none]
- Description
The tightness of the convergence of the crude geometry pre-optimizations. If set to none it will be selected two levels below ConvergenceQuality.
MolecularDynamics
- Type
Block
- Description
Configures molecular dynamics (with the velocity-Verlet algorithm) with and without thermostats. This block allows to specify the details of the molecular dynamics calculation. Default values will be ignored.
Checkpoint
- Type
Block
- Description
Sets the frequency for storing the entire MD state necessary for restarting the calculation.
Frequency
- Type
Integer
- Default value
1000
- GUI name
Checkpoint frequency
- Description
Write the MD state and engine-specific data to the respective .rkf files once every N steps.
WriteProperties
- Type
Bool
- Default value
No
- Description
Write the properties from the properties section to the ChecoPoint file once every N steps.
InitialVelocities
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
File
- Type
String
- Description
AMS RKF file containing the initial velocities.
RandomVelocitiesMethod
- Type
Multiple Choice
- Default value
Exact
- Options
[Exact, Boltzmann, Gromacs]
- GUI name
Velocity randomization method
- Description
Specifies how are random velocities generated. Three methods are available. Exact: Velocities are scaled to exactly match set random velocities temperature. Boltzmann: Velocities are not scaled and sample Maxwell-Boltzmann distribution. However, the distribution is not corrected for constraints. Gromacs: Velocities are scaled to match set random velocities temperature, but removal of net momentum is performed only after the scaling. Resulting kinetic energy is lower based on how much net momentum the system had.
Temperature
- Type
Float
- Unit
Kelvin
- GUI name
Initial temperature
- Description
Sets the temperature for the Maxwell-Boltzmann distribution when the type of the initial velocities is set to random, in which case specifying this key is mandatory. AMSinput will use the first temperature of the first thermostat as default.
Type
- Type
Multiple Choice
- Default value
Random
- Options
[Zero, Random, FromFile, Input]
- GUI name
Initial velocities
- Description
Specifies the initial velocities to assign to the atoms. Three methods to assign velocities are available. Zero: All atom are at rest at the beginning of the calculation. Random: Initial atom velocities follow a Maxwell-Boltzmann distribution for the temperature given by the [MolecularDynamics%InitialVelocities%Temperature] keyword. FromFile: Load the velocities from a previous ams result file. Input: Atom’s velocities are set to the values specified in the [MolecularDynamics%InitialVelocities%Values] block, which can be accessed via the Expert AMS panel in AMSinput.
Values
- Type
Non-standard block
- Description
This block specifies the velocity of each atom, in Angstrom/fs, when [MolecularDynamics%InitialVelocities%Type] is set to Input. Each row must contain three floating point values (corresponding to the x,y,z component of the velocity vector) and a number of rows equal to the number of atoms must be present, given in the same order as the [System%Atoms] block.
NSteps
- Type
Integer
- Default value
1000
- GUI name
Number of steps
- Description
The number of steps to be taken in the MD simulation.
Preserve
- Type
Block
- Description
Periodically remove numerical drift accumulated during the simulation to preserve different whole-system parameters.
AngularMomentum
- Type
Bool
- Default value
Yes
- GUI name
: Angular momentum
- Description
Remove overall angular momentum of the system. This option is ignored for 2D and 3D-periodic systems, and disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
CenterOfMass
- Type
Bool
- Default value
No
- GUI name
: Center of mass
- Description
Translate the system to keep its center of mass at the coordinate origin. This option is not very useful for 3D-periodic systems.
Momentum
- Type
Bool
- Default value
Yes
- GUI name
Preserve: Total momentum
- Description
Remove overall (linear) momentum of the system. This is disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
Print
- Type
Block
- Description
This block controls the printing of additional information to stdout.
System
- Type
Bool
- Default value
No
- Description
Print the chemical system before and after the simulation.
Velocities
- Type
Bool
- Default value
No
- Description
Print the atomic velocities before and after the simulation.
Restart
- Type
String
- GUI name
Restart from
- Description
The path to the ams.rkf file from which to restart the simulation.
Shake
- Type
Block
- Description
Parameters of the Shake/Rattle algorithm.
All
- Type
String
- Recurring
True
- GUI name
Constrain all
- Description
Constraint description in one the following formats: All [bondOrder] bonds at1 at2 [to distance] All triangles at1 at2 at3 The first option constrains all bonds between atoms at1 at2 to a certain length, while the second - bonds at1-at2 and at2-at3 and the angle between them. The [bondOrder] can be a number or a string such as single, double, triple or aromatic. If it’s omitted then all bonds between specified atoms will be constrained. Atom names are case-sensitive and they must be as they are in the Atoms block, or an asterisk ‘*’ denoting any atom. The distance, if present, must be in Angstrom. If it is omitted then the bond length from the initial geometry is used. Important: only the bonds present in the system at certain points of the simulation (at the start or right after adding/removing atoms) can be constrained, which means that the bonds may need to be specified in the System block. Warning: the triangles constraint should be used with care because each constrained bond or angle means removing one degree of freedom from the dynamics. When there are too many constraints (for example, “All triangles H C H” in methane) some of them may be linearly dependent, which will lead to an error in the temperature computation. Valid examples: All single bonds C C to 1.4 All bonds O H to 0.98 All bonds O H All bonds H * All triangles H * H
ConvergeR2
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the max squared difference, in atomic units.
ConvergeRV
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the orthogonality of the constraint and the relative atomic velocity, in atomic units.
Iterations
- Type
Integer
- Default value
100
- Description
Number of iterations.
ShakeInitialCoordinates
- Type
Bool
- Default value
Yes
- Description
Apply constraints before computing the first energy and gradients.
Thermostat
- Type
Block
- Recurring
True
- Description
This block allows to specify the use of a thermostat during the simulation. Depending on the selected thermostat type, different additional options may be needed to characterize the specific thermostat’ behavior.
BerendsenApply
- Type
Multiple Choice
- Default value
Global
- Options
[Local, Global]
- GUI name
Apply Berendsen
- Description
Select how to apply the scaling correction for the Berendsen thermostat: - per-atom-velocity (Local) - on the molecular system as a whole (Global).
ChainLength
- Type
Integer
- Default value
10
- GUI name
NHC chain length
- Description
Number of individual thermostats forming the NHC thermostat
Duration
- Type
Integer List
- GUI name
Duration(s)
- Description
Specifies how many steps should a transition from a particular temperature to the next one in sequence take.
Region
- Type
String
- Default value
*
- Description
The identifier of the region to thermostat. The default ‘*’ applies the thermostat to the entire system. The value can by a plain region name, or a region expression, e.g. ‘*-myregion’ to thermostat all atoms that are not in myregion, or ‘regionA+regionB’ to thermostat the union of the ‘regionA’ and ‘regionB’. Note that if multiple thermostats are used, their regions may not overlap.
Tau
- Type
Float
- Unit
Femtoseconds
- GUI name
Damping constant
- Description
The time constant of the thermostat.
Temperature
- Type
Float List
- Unit
Kelvin
- GUI name
Temperature(s)
- Description
The target temperature of the thermostat. You can specify multiple temperatures (separated by spaces). In that case the Duration field specifies how many steps to use for the transition from one T to the next T (using a linear ramp). For NHC thermostat, the temperature may not be zero.
Type
- Type
Multiple Choice
- Default value
None
- Options
[None, Berendsen, NHC]
- GUI name
Thermostat
- Description
Selects the type of the thermostat.
TimeStep
- Type
Float
- Default value
0.25
- Unit
Femtoseconds
- Description
The time difference per step.
Trajectory
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
ExitConditionFreq
- Type
Integer
- GUI name
Exit condition frequency
- Description
Check the exit conditions every N steps. By default this is done every SamplingFreq steps.
PrintFreq
- Type
Integer
- GUI name
Printing frequency
- Description
Print current thermodynamic properties to the output every N steps. By default this is done every SamplingFreq steps.
SamplingFreq
- Type
Integer
- Default value
100
- GUI name
Sample frequency
- Description
Write the the molecular geometry (and possibly other properties) to the .rkf file once every N steps.
TProfileGridPoints
- Type
Integer
- Default value
0
- Description
Number of points in the temperature profile. If TProfileGridPoints > 0, a temperature profile along each of the three lattice axes will be written to the .rkf file. The temperature at a given profile point is calculated as the total temperature of all atoms inside the corresponding slice of the simulation box, time-averaged over all MD steps since the previous snapshot. By default, no profile is generated.
WriteBonds
- Type
Bool
- Default value
Yes
- Description
Write detected bonds to the .rkf file.
WriteCharges
- Type
Bool
- Default value
Yes
- Description
Write current atomic point charges (if available) to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze charges.
WriteCoordinates
- Type
Bool
- Default value
Yes
- Description
Write atomic coordinates to the .rkf file.
WriteEngineGradients
- Type
Bool
- Default value
No
- Description
Write atomic gradients (negative of the atomic forces, as calculated by the engine) to the History section of ams.rkf.
WriteMolecules
- Type
Bool
- Default value
Yes
- Description
Write the results of molecule analysis to the .rkf file.
WriteVelocities
- Type
Bool
- Default value
Yes
- Description
Write velocities to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze the velocities.
NCycles
- Type
Integer
- Default value
5
- Description
The maximum number of cycles of metadynamics simulations. The generator stops when either this number is reached, or the conformer set is stable.
NWidthsHeights
- Type
Integer List
- Default value
[4, 3]
- Description
The number of different Gaussian widths and heights respectively used in the metadynamics simulations. By default 4 different widths are used and 3 different heights, resulting in 12 different metadynamics simulations.
SimulationSuccessFraction
- Type
Float
- Default value
0.4
- Description
The fraction of planned metadynamics steps that has to have succeeded in order for the metadynamics iteration to be considered a success.
UseShake
- Type
Bool
- Default value
No
- Description
Constrain all -H bonds with shake. If turned on, the MD timestep is automatically increased.
MaxEnergy
- Type
Float
- Unit
kcal/mol
- Description
Threshold for filtering out high-energy conformers. If the relative energy of a conformer with respect to the lowest conformer is larger than this value, the conformer will be discarded.
Method
- Type
Multiple Choice
- Default value
RDKit
- Options
[RDKit, CREST, ANNEALING]
- GUI name
Generator method
- Description
Method used to generate the conformers. The RDKit generator is based on random distance matrix method. This is the recommended (and default) method. The CREST Generator uses a multi-step workflow with meta-dynamics simulations to explore the conformers space of a molecule. This can be a powerful conformer search method, but it is generally computationally expensive compared to the RDKit generator. THe ANNEALING generator performs a simulated annealing simulation to explore conformer space.
Preoptimization
- Type
Block
- Description
If this block is enabled geometries will be preoptimized. After preoptimization the high energy conformers will be discarded, and then from the remaining set the unoptimized geometries will be optimized at higher level. This is to prevent the preoptimizer from collapsing different conformers into a single false minimum. As a result, preoptimization is only useful if MaxEnergy is chosen low.
Enable
- Type
Bool
- Default value
No
- Description
Perform preoptimization at a low level of accuracy.
Engine
- Type
Block
- Description
The engine specifics to be used for preoptimization.
PreoptFactor
- Type
Integer
- Default value
2
- Description
This factor is multiplied with MaxEnergy, to determine which high energy conformers can be discarded after preoptimization.
RDKit
- Type
Block
- Description
Options for the RDKit generator. This generator produces initial guesses for conformers using the RDKit ETKDG method, followed by AMS geometry optimizations.
InitialNConformers
- Type
Integer
- GUI name
Initial no. of conformers
- Description
Number of geometries initially created by RDKit, before AMS geometry optimization and filtering. If not set, the number will be automatically set, based on the number of rotational bonds.
MaxConfs
- Type
Integer
- Default value
5000
- Description
If InitialNConformers is not set, then the number of conformers will be automatically set, with a maximum of MaxConfs.
MinConfs
- Type
Integer
- Default value
10
- Description
If InitialNConformers is not set, then the number of conformers will be automatically set, with a minimum of MinConfs.
NconfsEstimationFactor
- Type
Integer
- Default value
100
- Description
If InitialNConformers is not set, then the number of conformers will be automatically set based on the number of rotational bonds. The resulting number is then multiplied by this factor (default: 100), to ensure that enough conformers will be created.
RDKitETKDG
- Type
Block
- Description
Settings for the call to RDKits ETKDG conformer generator tool.
BestRMSDThreshold
- Type
Float
- Default value
-1.0
- Description
After ETKDG conformer generation by RDKit, RDKit can be used to remove duplicates via the BestRMS algorithm. This filter does exactly the same as the RMSD equivalence detector in the Equivalence block.
ConstrainedAtoms
- Type
Integer List
- Description
The indices of the atoms to constrain during ETKDG conformer generation.
Forcefield
- Type
Multiple Choice
- Default value
None
- Options
[None, UFF, MMFF]
- Description
The name of the RDKit forcefield to use for geometry optimization at the end of ETKDG conformer generation (by default no geometry optimization is performed). Using the RDKit internal optimization may make the subsequent geometry optimizations with AMS faster.
Parallel
- Type
Bool
- Default value
No
- Description
Experimental: Parallelize the RDKit generation step by calling the RDKit conformer generation method in parallel from multiple processes.
RMSDThreshold
- Type
Float
- Default value
-1.0
- Description
Root Mean Square deviation threshold for removing similar/equivalent conformations during the RDKit ETKDG procedure. By default there is no pruning (value: -1).
UseExpTorsionAnglePrefs
- Type
String
- Default value
default
- Description
Impose experimental torsion angle preferences in RDKit ETKDG conformer generation. By default the RDKit version determines whether or not to switch this on.
RNGSeed
- Type
Integer
- Description
Initial guesses for conformers can be randomly generated by RDKit, using the ETKDG algorithm. For reproducibility, a random number seed can be provided here.
TORSION
- Type
Block
- Description
Options for the TorsionGenerator, which generates geometries by enumerative rotation around rotatable bonds. This is the slowest of all generator, and quickly becomes infeasible for large systems. Currently does not work for systems with interconnected rings.
Dtheta
- Type
Float
- Default value
60.0
- Description
The angle over which the bonds are rotated, in order to create a new conformer.
Expander
- Type
Block
- Description
Options for the conformer expander. The Expander expands an existing conformer set, by adding new conformers to it. The new conformers are generated from the original conformers in the set. Unlike the generators, the outcome of an expander is therefore very dependent on the input conformations. The GC generator uses a genetic algorithm to create a combinatorial expansion by combining local substructures. The MD expander start MD simulations from the conformers in the set, and extracts snapshots to create new conformers. Both these expanders are part of the CREST generator.
GC
- Type
Block
- Description
Options for the genetic algorithm for combinatorial expansion of conformer geometries. This generator only works if a non-zero set of conformers is already provided.
MaxGCenergy
- Type
Float
- Default value
6.0
- Description
The maximum energy (relative to the lowest in the set) of the conformers we are going to use for expansion. The default is 6.0 kcal/mol, but if MaxEnergy was set, then that value is used.
Parallel
- Type
Bool
- Default value
Yes
- Description
Determines if the combinatorial expansion of conformers should be performed in parallel or not (default: True).
RMSDThreshold
- Type
Float
- Default value
0.25
- Description
Newly generated geometries are only considered unique if their RMSD from all other newly generated geometries is larger than this threshold.
MD
- Type
Block
- Description
Produces conformers by running a set of MD simulations at different elevated temperatures, extracting snapshots, and optimizing those.
MolecularDynamics
- Type
Block
- Description
Configures molecular dynamics (with the velocity-Verlet algorithm) with and without thermostats. This block allows to specify the details of the molecular dynamics calculation. Default values will be ignored.
Checkpoint
- Type
Block
- Description
Sets the frequency for storing the entire MD state necessary for restarting the calculation.
Frequency
- Type
Integer
- Default value
1000
- GUI name
Checkpoint frequency
- Description
Write the MD state and engine-specific data to the respective .rkf files once every N steps.
WriteProperties
- Type
Bool
- Default value
No
- Description
Write the properties from the properties section to the ChecoPoint file once every N steps.
InitialVelocities
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
File
- Type
String
- Description
AMS RKF file containing the initial velocities.
RandomVelocitiesMethod
- Type
Multiple Choice
- Default value
Exact
- Options
[Exact, Boltzmann, Gromacs]
- GUI name
Velocity randomization method
- Description
Specifies how are random velocities generated. Three methods are available. Exact: Velocities are scaled to exactly match set random velocities temperature. Boltzmann: Velocities are not scaled and sample Maxwell-Boltzmann distribution. However, the distribution is not corrected for constraints. Gromacs: Velocities are scaled to match set random velocities temperature, but removal of net momentum is performed only after the scaling. Resulting kinetic energy is lower based on how much net momentum the system had.
Temperature
- Type
Float
- Unit
Kelvin
- GUI name
Initial temperature
- Description
Sets the temperature for the Maxwell-Boltzmann distribution when the type of the initial velocities is set to random, in which case specifying this key is mandatory. AMSinput will use the first temperature of the first thermostat as default.
Type
- Type
Multiple Choice
- Default value
Random
- Options
[Zero, Random, FromFile, Input]
- GUI name
Initial velocities
- Description
Specifies the initial velocities to assign to the atoms. Three methods to assign velocities are available. Zero: All atom are at rest at the beginning of the calculation. Random: Initial atom velocities follow a Maxwell-Boltzmann distribution for the temperature given by the [MolecularDynamics%InitialVelocities%Temperature] keyword. FromFile: Load the velocities from a previous ams result file. Input: Atom’s velocities are set to the values specified in the [MolecularDynamics%InitialVelocities%Values] block, which can be accessed via the Expert AMS panel in AMSinput.
Values
- Type
Non-standard block
- Description
This block specifies the velocity of each atom, in Angstrom/fs, when [MolecularDynamics%InitialVelocities%Type] is set to Input. Each row must contain three floating point values (corresponding to the x,y,z component of the velocity vector) and a number of rows equal to the number of atoms must be present, given in the same order as the [System%Atoms] block.
NSteps
- Type
Integer
- Default value
1000
- GUI name
Number of steps
- Description
The number of steps to be taken in the MD simulation.
Preserve
- Type
Block
- Description
Periodically remove numerical drift accumulated during the simulation to preserve different whole-system parameters.
AngularMomentum
- Type
Bool
- Default value
Yes
- GUI name
: Angular momentum
- Description
Remove overall angular momentum of the system. This option is ignored for 2D and 3D-periodic systems, and disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
CenterOfMass
- Type
Bool
- Default value
No
- GUI name
: Center of mass
- Description
Translate the system to keep its center of mass at the coordinate origin. This option is not very useful for 3D-periodic systems.
Momentum
- Type
Bool
- Default value
Yes
- GUI name
Preserve: Total momentum
- Description
Remove overall (linear) momentum of the system. This is disabled by default for systems which are not translationally invariant (for example when frozen atoms are present).
Print
- Type
Block
- Description
This block controls the printing of additional information to stdout.
System
- Type
Bool
- Default value
No
- Description
Print the chemical system before and after the simulation.
Velocities
- Type
Bool
- Default value
No
- Description
Print the atomic velocities before and after the simulation.
Restart
- Type
String
- GUI name
Restart from
- Description
The path to the ams.rkf file from which to restart the simulation.
Shake
- Type
Block
- Description
Parameters of the Shake/Rattle algorithm.
All
- Type
String
- Recurring
True
- GUI name
Constrain all
- Description
Constraint description in one the following formats: All [bondOrder] bonds at1 at2 [to distance] All triangles at1 at2 at3 The first option constrains all bonds between atoms at1 at2 to a certain length, while the second - bonds at1-at2 and at2-at3 and the angle between them. The [bondOrder] can be a number or a string such as single, double, triple or aromatic. If it’s omitted then all bonds between specified atoms will be constrained. Atom names are case-sensitive and they must be as they are in the Atoms block, or an asterisk ‘*’ denoting any atom. The distance, if present, must be in Angstrom. If it is omitted then the bond length from the initial geometry is used. Important: only the bonds present in the system at certain points of the simulation (at the start or right after adding/removing atoms) can be constrained, which means that the bonds may need to be specified in the System block. Warning: the triangles constraint should be used with care because each constrained bond or angle means removing one degree of freedom from the dynamics. When there are too many constraints (for example, “All triangles H C H” in methane) some of them may be linearly dependent, which will lead to an error in the temperature computation. Valid examples: All single bonds C C to 1.4 All bonds O H to 0.98 All bonds O H All bonds H * All triangles H * H
ConvergeR2
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the max squared difference, in atomic units.
ConvergeRV
- Type
Float
- Default value
1e-08
- Description
Convergence criterion on the orthogonality of the constraint and the relative atomic velocity, in atomic units.
Iterations
- Type
Integer
- Default value
100
- Description
Number of iterations.
ShakeInitialCoordinates
- Type
Bool
- Default value
Yes
- Description
Apply constraints before computing the first energy and gradients.
Thermostat
- Type
Block
- Recurring
True
- Description
This block allows to specify the use of a thermostat during the simulation. Depending on the selected thermostat type, different additional options may be needed to characterize the specific thermostat’ behavior.
BerendsenApply
- Type
Multiple Choice
- Default value
Global
- Options
[Local, Global]
- GUI name
Apply Berendsen
- Description
Select how to apply the scaling correction for the Berendsen thermostat: - per-atom-velocity (Local) - on the molecular system as a whole (Global).
ChainLength
- Type
Integer
- Default value
10
- GUI name
NHC chain length
- Description
Number of individual thermostats forming the NHC thermostat
Duration
- Type
Integer List
- GUI name
Duration(s)
- Description
Specifies how many steps should a transition from a particular temperature to the next one in sequence take.
Region
- Type
String
- Default value
*
- Description
The identifier of the region to thermostat. The default ‘*’ applies the thermostat to the entire system. The value can by a plain region name, or a region expression, e.g. ‘*-myregion’ to thermostat all atoms that are not in myregion, or ‘regionA+regionB’ to thermostat the union of the ‘regionA’ and ‘regionB’. Note that if multiple thermostats are used, their regions may not overlap.
Tau
- Type
Float
- Unit
Femtoseconds
- GUI name
Damping constant
- Description
The time constant of the thermostat.
Temperature
- Type
Float List
- Unit
Kelvin
- GUI name
Temperature(s)
- Description
The target temperature of the thermostat. You can specify multiple temperatures (separated by spaces). In that case the Duration field specifies how many steps to use for the transition from one T to the next T (using a linear ramp). For NHC thermostat, the temperature may not be zero.
Type
- Type
Multiple Choice
- Default value
None
- Options
[None, Berendsen, NHC]
- GUI name
Thermostat
- Description
Selects the type of the thermostat.
TimeStep
- Type
Float
- Default value
0.25
- Unit
Femtoseconds
- Description
The time difference per step.
Trajectory
- Type
Block
- Description
Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
ExitConditionFreq
- Type
Integer
- GUI name
Exit condition frequency
- Description
Check the exit conditions every N steps. By default this is done every SamplingFreq steps.
PrintFreq
- Type
Integer
- GUI name
Printing frequency
- Description
Print current thermodynamic properties to the output every N steps. By default this is done every SamplingFreq steps.
SamplingFreq
- Type
Integer
- Default value
100
- GUI name
Sample frequency
- Description
Write the the molecular geometry (and possibly other properties) to the .rkf file once every N steps.
TProfileGridPoints
- Type
Integer
- Default value
0
- Description
Number of points in the temperature profile. If TProfileGridPoints > 0, a temperature profile along each of the three lattice axes will be written to the .rkf file. The temperature at a given profile point is calculated as the total temperature of all atoms inside the corresponding slice of the simulation box, time-averaged over all MD steps since the previous snapshot. By default, no profile is generated.
WriteBonds
- Type
Bool
- Default value
Yes
- Description
Write detected bonds to the .rkf file.
WriteCharges
- Type
Bool
- Default value
Yes
- Description
Write current atomic point charges (if available) to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze charges.
WriteCoordinates
- Type
Bool
- Default value
Yes
- Description
Write atomic coordinates to the .rkf file.
WriteEngineGradients
- Type
Bool
- Default value
No
- Description
Write atomic gradients (negative of the atomic forces, as calculated by the engine) to the History section of ams.rkf.
WriteMolecules
- Type
Bool
- Default value
Yes
- Description
Write the results of molecule analysis to the .rkf file.
WriteVelocities
- Type
Bool
- Default value
Yes
- Description
Write velocities to the .rkf file. Disable this to reduce trajectory size if you do not need to analyze the velocities.
Ngeoms
- Type
Integer
- Default value
4
- Description
At each temperature, MD simulations are started from Ngeoms different starting geometries. The starting geometries are extracted from the provided conformer set. If the conformer set is empty, then no more than a single geometry per temperature can be provided, limiting the total number of MD simulations.
Temperatures
- Type
Float List
- Default value
[400.0, 500.0]
- Unit
Kelvin
- Description
The list of different temperatures at which MD simulations are run.
UseShake
- Type
Bool
- Default value
No
- Description
Constrain all -H bonds with shake. If turned on, the MD timestep is automatically increased.
MaxEnergy
- Type
Float
- Unit
kcal/mol
- Description
Threshold for filtering out high-energy conformers. If the relative energy of a conformer with respect to the lowest conformer is larger than this value, the conformer will be discarded.
Method
- Type
Multiple Choice
- Default value
GC
- Options
[MD, GC]
- GUI name
Generator method
- Description
Method used to generate the conformers.
Preoptimization
- Type
Block
- Description
If this block is enabled geometries will be preoptimized. After preoptimization the high energy conformers will be discarded, and then from the remaining set the unoptimized geometries will be optimized at higher level. This is to prevent the preoptimizer from collapsing different conformers into a single false minimum. As a result, preoptimization is only useful if MaxEnergy is chosen low.
Enable
- Type
Bool
- Default value
No
- Description
Perform preoptimization at a low level of accuracy.
Engine
- Type
Block
- Description
The engine specifics to be used for preoptimization.
PreoptFactor
- Type
Integer
- Default value
2
- Description
This factor is multiplied with MaxEnergy, to determine which high energy conformers can be discarded after preoptimization.
RDKitETKDG
- Type
Block
- Description
Settings for the call to RDKits ETKDG conformer generator tool.
BestRMSDThreshold
- Type
Float
- Default value
-1.0
- Description
After ETKDG conformer generation by RDKit, RDKit can be used to remove duplicates via the BestRMS algorithm. This filter does exactly the same as the RMSD equivalence detector in the Equivalence block.
Forcefield
- Type
Multiple Choice
- Default value
None
- Options
[None, UFF, MMFF]
- Description
The name of the RDKit forcefield to use for geometry optimization at the end of ETKDG conformer generation (by default no geometry optimization is performed). Using the RDKit internal optimization may make the subsequent geometry optimizations with AMS faster.
Parallel
- Type
Bool
- Default value
No
- Description
Experimental: Parallelize the RDKit generation step by calling the RDKit conformer generation method in parallel from multiple processes.
RMSDThreshold
- Type
Float
- Default value
-1.0
- Description
Root Mean Square deviation threshold for removing similar/equivalent conformations during the RDKit ETKDG procedure. By default there is no pruning (value: -1).
UseExpTorsionAnglePrefs
- Type
String
- Default value
default
- Description
Impose experimental torsion angle preferences in RDKit ETKDG conformer generation. By default the RDKit version determines whether or not to switch this on.
RNGSeed
- Type
Integer
- Description
Initial guesses for conformers can be randomly generated by RDKit, using the ETKDG algorithm. For reproducibility, a random number seed can be provided here.
Equivalence
- Type
Block
- Description
Options for the procedure determining whether two structures are equivalent or distinct conformers.
AMS
- Type
Block
- Description
Options for the AMS method of checking equivalence. This method uses the atomic distance matrices and the torsion angles between heavy atoms to determine if conformer candidates are duplicates.
DihedralThreshold
- Type
Float
- Default value
30.0
- Description
Maximum difference a dihedral can have for a conformer to be considered a duplicate.
DistanceThreshold
- Type
Float
- Default value
0.1
- Description
Maximum difference a distance between two atoms can have for a conformer to be considered a duplicate.
EnergyThreshold
- Type
Float
- Default value
0.2
- Unit
kcal/mol
- Description
The energy difference beyond which two conformers are always considered distinct.
IrrelevantAtoms
- Type
Integer List
- Description
To detect equivalence, only a subset of atoms is used. The atoms that are excluded from equivalence comparison should be specified here. By default only non-hydrogen atoms will be used for the comparison. Numbering starts at 0.
AcceptAll
- Type
Bool
- Default value
No
- Description
If set to True, add any candidate to the set without checks of connectivity changes, stereo- or cis/trans isomerization, or duplication.
AcceptIsomers
- Type
Bool
- Default value
No
- Description
If set to True, perform all checks of a new conformer candidate, except for the stereo- or cis/trans isomerization check.
CREST
- Type
Block
- Description
Options for the CREST method of checking equivalence. This method uses the rotational constants of conformer candidates to determine if they are duplicates.
EnergyThreshold
- Type
Float
- Default value
0.05
- Unit
kcal/mol
- Description
The energy difference beyond which two conformers are always considered distinct.
RMSDThreshold
- Type
Float
- Default value
0.125
- Description
Threshold for the RMSD between two conformers that determines if they are duplicates or rotamers (according to the CREST rotamer definition.)
ScaledRotationalConstantSettings
- Type
Block
- Description
By default, the equivalence of two geometries is determined mainly by comparing the rotational constants, and weighing the difference based on the average anisotropy of the two systems. This procedure has several settings that can be user defined.
RotationalConstantThreshold
- Type
Float
- Default value
0.003
- Description
Threshold for the difference in rotational constants that determines if two geometries are duplicates. The threshold is weighed by the anisotropy of the systems. Note: in the grimme code they use 0.01 as bconst_threshold, but this leads to a lot of misclassifications (i.e. different conformers are classified as equivalent rotamers) So, here we use a smaller default value.
CheckForDuplicates
- Type
Bool
- Default value
Yes
- Description
If set to True, check any new conformer candidate for duplication, and only accept unique conformers. If set to False, accept duplicates into the set.
Method
- Type
Multiple Choice
- Default value
CREST
- Options
[AMS, TFD, RMSD, CREST]
- GUI name
Equivalence method
- Description
Method used to determine (and filter out) equivalent conformers. The CREST equivalence method relies on rotational constants comparisons. For this reason, conformers with the same rotational constants (such as mirror images) will be considered equivalent conformers. The AMS equivalence method uses a distance matrix and dihedrals to compare conformers. This equivalence method can be computationally expensive for large molecules. The TFD equivalence method uses the Torsion Fingerprint Difference as implemented in RDKit. The RMSD equivalence method uses the RDKit GetBestRMS implementation.
RMSD
- Type
Block
- Description
Options for the RMSD method of checking equivalence. This method uses the RDKit implementation of GetBestRMS, which enumerates over atomic permutations for pairs of geometries to detect duplicates based on the RMSD value.
EnergyThreshold
- Type
Float
- Default value
0.05
- Unit
kcal/mol
- Description
The energy difference beyond which two conformers are always considered distinct.
RMSDThreshold
- Type
Float
- Default value
0.125
- Description
Threshold on the RMSD difference to determine if two geometries represent the same conformer. This value is in Angstrom.
Reorder
- Type
Bool
- Default value
Yes
- Description
Reorder conformers based on energy, whenever a new conformer is added.
TFD
- Type
Block
- Description
Options for the TFD method of checking equivalence. This method uses the Torsion Finger Print method to determine if two conformer candidates are duplicates.
EnergyThreshold
- Type
Float
- Default value
0.05
- Unit
kcal/mol
- Description
The energy difference beyond which two conformers are always considered distinct.
TFDThreshold
- Type
Float
- Default value
0.05
- Description
Threshold on the torsion fingerprint difference to determine if two geometries represent the same conformer. This value is unit-less.
GeometryOptimization
- Type
Block
- Description
Some options / details regarding the optimization procedure.
ConvergenceQuality
- Type
Multiple Choice
- Default value
VeryGood
- Options
[Normal, Good, VeryGood, Excellent]
- GUI name
Convergence
- Description
The tightness of the convergence of the geometry optimizations. Lower quality levels may lead to badly converged geometries being classified as distinct conformers.
GeometryOptimization
- Type
Block
- Description
Configures details of the geometry optimization and transition state searches.
CalcPropertiesOnlyIfConverged
- Type
Bool
- Default value
Yes
- Description
Compute the properties requested in the ‘Properties’ block, e.g. Frequencies or Phonons, only if the optimization (or transition state search) converged. If False, the properties will be computed even if the optimization did not converge.
Convergence
- Type
Block
- Description
Convergence is monitored for up to 4 quantities: the energy change, the Cartesian gradients, the Cartesian step size, and for lattice optimizations the stress energy per atom. Convergence criteria can be specified separately for each of these items.
Energy
- Type
Float
- Default value
1e-05
- Unit
Hartree
- Value Range
value > 0
- GUI name
Energy convergence
- Description
The criterion for changes in the energy. The energy is considered converged when the change in energy is smaller than this threshold times the number of atoms.
Gradients
- Type
Float
- Default value
0.001
- Unit
Hartree/Angstrom
- Value Range
value > 0
- GUI name
Gradient convergence
- Description
Threshold for nuclear gradients.
Quality
- Type
Multiple Choice
- Default value
Custom
- Options
[VeryBasic, Basic, Normal, Good, VeryGood, Custom]
- GUI name
Convergence
- Description
A quick way to change convergence thresholds: ‘Good’ will reduce all thresholds by an order of magnitude from their default value. ‘VeryGood’ will tighten them by two orders of magnitude. ‘Basic’ and ‘VeryBasic’ will increase the thresholds by one or two orders of magnitude respectively.
Step
- Type
Float
- Default value
0.01
- Unit
Angstrom
- Value Range
value > 0
- GUI name
Step convergence
- Description
The maximum Cartesian step allowed for a converged geometry.
StressEnergyPerAtom
- Type
Float
- Default value
0.0005
- Unit
Hartree
- Value Range
value > 0
- Description
Threshold used when optimizing the lattice vectors. The stress is considered ‘converged’ when the maximum value of stress_tensor * cell_volume / number_of_atoms is smaller than this threshold (for 2D and 1D systems, the cell_volume is replaced by the cell_area and cell_length respectively).
CoordinateType
- Type
Multiple Choice
- Default value
Auto
- Options
[Auto, Delocalized, Cartesian]
- GUI name
Optimization space
- Description
Select the type of coordinates in which to perform the optimization. ‘Auto’ automatically selects the most appropriate CoordinateType for a given Method. If ‘Auto’ is selected, Delocalized coordinates will be used for the Quasi-Newton method, while Cartesian coordinates will be used for all other methods.
Dimer
- Type
Block
- Description
Options for the Dimer method for transition state search.
AngleThreshold
- Type
Float
- Default value
1.0
- Unit
Degree
- Description
The rotation is considered converged when the the rotation angle falls below the specified threshold.
DimerDelta
- Type
Float
- Default value
0.01
- Unit
Angstrom
- Description
Euclidian distance between the midpoint and the endpoint.
ExtrapolateForces
- Type
Bool
- Default value
Yes
- Description
Set to false to call engine to calculate forces at the extrapolated rotation angle instead of extrapolating them.
LBFGSMaxVectors
- Type
Integer
- Default value
10
- Description
Max number of vectors for the L-BFGS algorithm to save.
MaxRotationIterations
- Type
Integer
- Default value
10
- Description
Maximum number of rotation iterations for a single translation step.
Region
- Type
String
- Default value
*
- Description
Include only atoms of the specified region(s) in the rotations, which allows searching for a transition state involving selected atoms only.
RotationTrustRadius
- Type
Float
- Default value
0.1
- Unit
Angstrom
- Description
L-BFGS trust radius during rotation iterations.
TranslationTrustRadius
- Type
Float
- Default value
0.1
- Unit
Angstrom
- Description
L-BFGS trust radius during translation iterations.
EngineAutomations
- Type
Block
- Description
The optimizer can change some settings of the engine, based for instance on the error. The idea is to allow the engine to be a bit quicker at the start, and more accurate towards the end. Automations are always engine specific.
Enabled
- Type
Bool
- Default value
Yes
- Description
Whether or not automations are enabled at all.
Gradient
- Type
Block
- Recurring
True
- Description
A gradient-based automation.
FinalValue
- Type
Float
- Description
This value will be used whenever the gradient is less than GradientLow
HighGradient
- Type
Float
- Default value
1.0
- Unit
Hartree/Angstrom
- Description
Defines a large gradient. When the actual gradient is between GradientHigh and GradientLow a linear interpolation scheme is used for kT (on a log scale).
InitialValue
- Type
Float
- Description
This value will be used at the first geometry, and whenever the gradient is higher than GradientHigh
LowGradient
- Type
Float
- Default value
1.0
- Unit
Hartree/Angstrom
- Description
Defines a small gradient, see GradientHigh
UseLogInterpolation
- Type
Bool
- Default value
Yes
- Description
Whether to use interpolation on a log (y) scale or not
Variable
- Type
String
- Default value
- Description
variable to be tweaked for the engine.
Iteration
- Type
Block
- Recurring
True
- Description
Geometry step based automation.
FinalValue
- Type
Float
- Description
FirstIteration
- Type
Integer
- Default value
1
- Description
When the actual gradient is between the first and last iteration, a linear interpolation is used.
InitialValue
- Type
Float
- Description
This value will be used when the iteration number is smaller or equal to FirstIteration
LastIteration
- Type
Integer
- Default value
10
- Description
Where the automation should reach the FinalValue
UseLogInterpolation
- Type
Bool
- Default value
Yes
- Description
Whether to use interpolation on a log (y) scale or not
Variable
- Type
String
- Default value
- Description
variable to be tweaked for the engine.
FIRE
- Type
Block
- Description
This block configures the details of the FIRE optimizer. The keywords name correspond the the symbols used in the article describing the method, see PRL 97, 170201 (2006).
AllowOverallRotation
- Type
Bool
- Default value
Yes
- Description
Whether or not the system is allowed to freely rotate during the optimization. This is relevant when optimizing structures in the presence of external fields.
AllowOverallTranslation
- Type
Bool
- Default value
No
- Description
Whether or not the system is allowed to translate during the optimization. This is relevant when optimizing structures in the presence of external fields.
MapAtomsToUnitCell
- Type
Bool
- Default value
No
- Description
Map the atoms to the central cell at each geometry step.
NMin
- Type
Integer
- Default value
5
- Description
Number of steps after stopping before increasing the time step again.
alphaStart
- Type
Float
- Default value
0.1
- Description
Steering coefficient.
dtMax
- Type
Float
- Default value
1.0
- Unit
Femtoseconds
- Description
Maximum time step used for the integration. For ReaxFF and APPLE&P, this value is reduced by 50%.
dtStart
- Type
Float
- Default value
0.25
- Unit
Femtoseconds
- Description
Initial time step for the integration.
fAlpha
- Type
Float
- Default value
0.99
- Description
Reduction factor for the steering coefficient.
fDec
- Type
Float
- Default value
0.5
- Description
Reduction factor for reducing the time step in case of uphill movement.
fInc
- Type
Float
- Default value
1.1
- Description
Growth factor for the integration time step.
strainMass
- Type
Float
- Default value
0.5
- Description
Fictitious relative mass of the lattice degrees of freedom. This controls the stiffness of the lattice degrees of freedom relative to the atomic degrees of freedom, with smaller values resulting in a more aggressive optimization of the lattice.
HessianFree
- Type
Block
- Description
Configures details of the Hessian-free (conjugate gradients or L-BFGS) geometry optimizer.
Step
- Type
Block
- Description
MaxCartesianStep
- Type
Float
- Default value
0.1
- Unit
Angstrom
- Description
Limit on a single Cartesian component of the step.
MinRadius
- Type
Float
- Default value
0.0
- Unit
Angstrom
- Description
Minimum value for the trust radius.
TrialStep
- Type
Float
- Default value
0.0005
- Unit
Angstrom
- Description
Length of the finite-difference step when determining curvature. Should be smaller than the step convergence criterion.
TrustRadius
- Type
Float
- Default value
0.2
- Unit
Angstrom
- Description
Initial value of the trust radius.
InitialHessian
- Type
Block
- Description
Options for initial model Hessian when optimizing systems with the Quasi-Newton method.
File
- Type
String
- GUI name
Initial Hessian from
- Description
KF file containing the initial Hessian (or the results dir. containing it). This can be used to load a Hessian calculated in a previously with the [Properties%Hessian] keyword.
Type
- Type
Multiple Choice
- Default value
Auto
- Options
[Auto, UnitMatrix, Swart, FromFile, Calculate, CalculateWithFastEngine]
- GUI name
Initial Hessian
- Description
Select the type of initial Hessian. Auto: let the program pick an initial model Hessian. UnitMatrix: simplest initial model Hessian, just a unit matrix in the optimization coordinates. Swart: model Hessian from M. Swart. FromFile: load the Hessian from the results of a previous calculation (see InitialHessian%File). Calculate: compute the initial Hessian (this may be computationally expensive and it is mostly recommended for TransitionStateSearch calculations). CalculateWithFastEngine: compute the initial Hessian with a faster engine.
KeepIntermediateResults
- Type
Bool
- Default value
No
- Description
Whether the full engine result files of all intermediate steps are stored on disk. By default only the last step is kept, and only if the geometry optimization converged. This can easily lead to huge amounts of data being stored on disk, but it can sometimes be convenient to closely monitor a tricky optimization, e.g. excited state optimizations going through conical intersections, etc. …
MaxIterations
- Type
Integer
- Value Range
value >= 0
- GUI name
Maximum number of iterations
- Description
The maximum number of geometry iterations allowed to converge to the desired structure.
MaxRestarts
- Type
Integer
- Default value
0
- Description
If a geometry optimization of a system with no symmetry operators (or with explicitly disabled symmetry:
UseSymmetry False
) and enabled PES point characterization converges to a transition state (or higher order saddle point), it can be restarted automatically after a small displacement along the imaginary vibrational mode. In case the restarted optimization again does not find a minimum, this can happen multiple times in succession. This keyword sets the maximum number of restarts. The default value is 0, so the automatic restarting is disabled by default.
Method
- Type
Multiple Choice
- Default value
Auto
- Options
[Auto, Quasi-Newton, FIRE, L-BFGS, ConjugateGradients, Dimer]
- GUI name
Optimization method
- Description
Select the optimization algorithm employed for the geometry relaxation. Currently supported are: the Hessian-based Quasi-Newton-type BFGS algorithm, the fast inertial relaxation method (FIRE), the limited-memory BFGS method, and the conjugate gradients method. The default is to choose an appropriate method automatically based on the engine’s speed, the system size and the supported optimization options.
OptimizeLattice
- Type
Bool
- Default value
No
- Description
Whether to also optimize the lattice for periodic structures. This is currently supported with the Quasi-Newton, FIRE, and L-BFGS optimizers.
PretendConverged
- Type
Bool
- Default value
No
- Description
Normally a non-converged geometry optimization is considered an error. If this keyword is set to True, the optimizer will only produce a warning and still claim that the optimization is converged. (This is mostly useful for scripting applications, where one might want to consider non-converged optimizations still successful jobs.)
Quasi-Newton
- Type
Block
- Description
Configures details of the Quasi-Newton geometry optimizer.
MaxGDIISVectors
- Type
Integer
- Default value
0
- Description
Sets the maximum number of GDIIS vectors. Setting this to a number >0 enables the GDIIS method.
Step
- Type
Block
- Description
TrustRadius
- Type
Float
- Description
Initial value of the trust radius.
VaryTrustRadius
- Type
Bool
- Description
Whether to allow the trust radius to change during optimization. By default True during energy minimization and False during transition state search.
UpdateTSVectorEveryStep
- Type
Bool
- Default value
Yes
- GUI name
Update TSRC vector every step
- Description
Whether to update the TS reaction coordinate at each step with the current eigenvector.
RestartDisplacement
- Type
Float
- Default value
0.05
- Unit
Angstrom
- Description
If a geometry optimization of a system with no symmetry operators (or with explicitly disabled symmetry:
UseSymmetry False
) and enabled PES point characterization converges to a transition state (or higher order saddle point), it can be restarted automatically after a small displacement along the imaginary vibrational mode. This keywords sets the size of the displacement for the furthest moving atom.
Keep
- Type
Multiple Choice
- Default value
None
- Options
[None, all]
- Description
Keep all the output files of the geometry optimizations. If set to ‘all’, must be used in combination with Output%KeepWorkDir.
MaxConvergenceTime
- Type
Multiple Choice
- Default value
Default
- Options
[Default, High]
- Description
The number of iterations for the geometry optimization, based on the number of atoms in the system. The default value is the general AMS value for geometry optimization. Often, for conformer generation, it needs to be set higher.
MaxOptimizations
- Type
Integer
- Default value
1000
- Description
Set a maximum to the number of geometries accepted for optimization at once, per AMSWorker (so should be multiplied by the number of cores used). If not set, the disc size requirements can become too large.
OptimizationMethod
- Type
Multiple Choice
- Default value
Quasi-Newton
- Options
[Auto, Quasi-Newton, FIRE, L-BFGS, ConjugateGradients, Dimer]
- Description
Select the optimization algorithm employed for the geometry relaxation. Currently supported are: the Hessian-based Quasi-Newton-type BFGS algorithm, the fast inertial relaxation method (FIRE), the limited-memory BFGS method, and the conjugate gradients method. The default is Quasi-Newton, which gives the most reliable results for conformers. The Auto method leaves it to the AMS GeometryOptimization task to select a method.
UseAMSWorker
- Type
Bool
- Default value
Yes
- Description
Whether the set of optimizations should be run via the AMSWorkerPool or via regular AMSJobs.
WriteGeometries
- Type
Block
- Description
Determines if and where optimized geometries will be written to file during optimization. When the AMSWorker is used, then the write interval depends on MaxOptimizations. If enabled, must be used in combination with Output%KeepWorkDir.
Dirname
- Type
String
- Default value
conf_tmpdir
- Description
The name of the folder that should contain the optimized geometries.
Enabled
- Type
Bool
- Default value
No
- Description
Enables or disables the periodic writing of optimized geometries to file