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:

  1. Call to RDKit ETKGD method for initial conformer generation

  2. 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:

  1. Generate a set of conformers using Task Generate with the fast but approximate ForceField engine

  2. Re-optimize the geometries generated in the previous step using Task Optimize with a more accurate engine (e.g. DFTB)

  3. 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