Options for YAML files¶
These are all the simulation, alchemy, and file I/O options controlled by the options
header in the YAML files for
YANK. We have subdivided the categories below, but all settings on this page go under the options
header in the YAML file:
General Options:¶
resume_setup¶
options:
resume_setup: no
Choose to resume a setup procedure. YANK will raise an error when it detects that it will overwrite an existing file in the directory specified by setup_dir.
Valid Options: [no]/yes
resume_simulation¶
options:
resume_simulation: no
Choose to resume simulations. YANK will raise an error when it detects that it will overwrite an existing file in the directory specified by experiments_dir.
Valid Options: [no]/yes
output_dir¶
options:
output_dir: output
The main output folder of YANK simulations. A folder will be created if none exists. Path is relative to the YAML script path
Valid Options (output): <Path String>
setup_dir¶
options:
setup_dir: setup
The folder where all generate simulation setup files are stored. A folder will be created if none exists. Path is relative to the output_dir folder.
Valid Options (setup): <Path String>
experiments_dir¶
options:
experiments_dir: experiments
The folder where all generate simulation setup files are stored. A folder will be created if none exists. Path is relative to to the output_dir folder.
Valid Options (experiments): <Path String>
platform¶
options:
platform: fastest
The OpenMM platform used to run the calculations. The default value (fastest
) automatically selects the fastest
available platform. Some platforms (especially CUDA
and OpenCL
) may not be available on all systems.
Valid options: [fastest]/CUDA/OpenCL/CPU/Reference
precision¶
options:
precision: auto
Floating point precision to use during the simulation. It can be set for OpenCL and CUDA platforms only. The default
value (auto
) is equivalent to mixed
when the device support this precision, and single
otherwise.
Valid options: [auto]/double/mixed/single
System and Simulation Prepartion:¶
randomize_ligand¶
options:
randomize_ligand: no
Randomize the position of the ligand before starting the simulation. Only works in Implicit Solvent. The ligand will be randomly rotated and displaced by a vector with magnitude proportional to randomize_ligand_sigma_multiplier with the constraint of being at a distance greater than randomize_ligand_close_cutoff from the receptor.
Valid options: [no]/yes
randomize_ligand_sigma_multiplier¶
options:
randomize_ligand_sigma_multiplier: 2.0
See randomize_ligand.
Valid options (2.0): <float>
randomize_ligand_close_cutoff¶
options:
randomize_ligand_close_cutoff: 1.5 * angstrom
See randomize_ligand.
Valid options (1.5 * angstrom): <Quantity Length> [1]
temperature¶
options:
temperature: 298 * kelvin
Temperature of the system.
Valid options (298 * kelvin): <Quantity Temperature> [1]
pressure¶
options:
pressure: 1.0 * atmosphere
Pressure of the system. If set to null
, the simulation samples as an NVT ensemble.
Valid options (1 * atmosphere): null / <Quantity Pressure> [1]
hydrogen_mass¶
options:
hydrogen_mass: 1.0 * amu
Hydrogen mass for HMR simulations.
Valid options (1*amu): <Quantity Mass> [1]
constraints¶
options:
constraints: HBonds
Constrain bond lengths and angles. See OpenMM createSystem()
documentation for more details.
Valid options: [Hbonds]/AllBonds/HAngles
Simulation Parameters¶
online_analysis¶
options:
online_analysis: no
Analysis will occur at each iteration of the simulations if set. WARNING: This can be a slow process!
Valid options: [no]/yes
online_analysis_min_iterations¶
options:
online_analysis_min_iterations: 20
The minimum number of iterations that must pass before online analysis begins.
Valid options (20): <Integer>
show_energies¶
options:
show_energies: yes
If yes
, will print out the energies at each iteration.
Valid options: [yes]/no
show_mixing_statistics¶
options:
show_mixing_statistics: yes
If yes
, will print the Hamiltonian Replica Exchange swapping statistics at each iteration. This process adds a small
amount of overhead to each iteration.
Valid options: [yes]/no
minimize¶
options:
minimize: yes
Minimize the input configuration before starting simulation. Highly recommended if a pre-minimized structure is provided, or if explicit solvent generation is left to YANK.
Valid Options: [yes]/no
minimize_max_iterations¶
options:
minimize_max_iterations: 0
Set the maximum number of iterations the energy minimization process attempts to converge to given tolerance energy. 0 steps indicate unlimited.
Valid Options (0): <Integer>
minimize_tolerance¶
options:
minimize_tolerance: 1.0 * kilojoules_per_mole / nanometers
Set the tolerance of the energy minimization process. System is considered minimized when the energy does not change by the given tolerance in subsequent iterations.
Valid Options (1.0 * kilojoules_per_mole / nanometers): <Quantity (Molar Energy)/(Length)> [1]
number_of_equilibration_iterations¶
options:
number_of_equilibration_iterations: 1
Number of iterations used for equilibration before production run. Iterations written to file are post-equilibration.
Valid Options (1): <Integer>
equilibration_timestep¶
options:
equilibration_timestep: 1.0 * femtosecond
Timestep of the equilibration timestep (not production).
Valid Options (1.0 * femtosecond): <Quantity Time> [1]
number_of_iterations¶
options:
number_of_iterations: 1
Number of iterations for production simulation. Note: If resume_simulation is set, this option can be used to extend previous simulations past their original number of iterations.
Valid Options (1): <Integer>
extend_simulation¶
options:
extend_simulation: False
Special modification of number_of_iterations which allows extending a simulation by
number_of_iterations instead of running for a maximum. If set to True
,
the simulation will run the additional specified number of iterations, even if a simulation already has
run for a length of time. For fresh simulations, the resulting simulation is identical to not setting this flag.
This is helpful for running consecutive batches of simulations for time lengths that are unknown.
Recommended: Also set resume_setup and resume_simulation to allow resuming simulations.
Example: You have a simulation that ran for 500 iterations, you wish to add an additional 1000 iterations. You would
set number_of_iterations: 1000
and extend_simulation: True
in your YAML file and rerun. The simulation would
then resume at iteration 500, then continue to iteration 1500. The same behavior would be achieved if you set
number_of_iterations: 1500
, but the extend_simulation
has the advantage that it can be run multiple times to
keep extending the simulation without modifying the YAML file.
WARNING: Extending simulations affects ALL simulations for Combinatorial. You cannot extend a subset of simulations from a combinatorial setup; all simulations will be extended if this option is set.
OPTIONAL and MODIFIES number_of_iterations
Valid Options: True/[False]
nsteps_per_iteration¶
options:
nsteps_per_iteration: 500
Number of timesteps between each iteration. We highly recommend using a number greater than 1 to improve decorrelation between iterations. Hamiltonian Replica Exchange swaps are attempted after each iteration.
Valid Options (500): <Integer>
timestep¶
options:
timestep: 2.0 * femtosecond
Timestep of Langevin Dynamics production runs.
Valid Options (2.0 * femtosecond): <Quantity Time> [1]
replica_mixing_scheme¶
options:
replica_mixing_scheme: swap-all
Specifies how the Hamiltonian Replica Exchange attempts swaps between replicas.
swap-all
will attempt to exchange every state with every other state. swap-neighbors
will attempt only
exchanges between adjacent states.
Valid Options: [swap-all]/swap-neighbors
collision_rate¶
options:
collision_rate: 5.0 / picosecond
The collision rate used for Langevin dynamics. Default quantity of 5.0 / picosecond works well for explicit solvent. Implicit solvent will require a different collision rate, e.g. 91 / picosecond works well for TIP3P water.
Collision rates (or friction coefficients) appear in the Langevin dynamics equation as either inverse time, or one over some time constant, \(1/\tau\). When comparing collision rates, double check if the collision rate is in units of inverse time, or just time. For example: a collision rate of 5.0/ps -> \(\tau = 0.2 \, ps\).
Valid Options (5.0 / picosecond): <Quantity Inverse Time> [1]
constraint_tolerance¶
options:
constraint_tolerance: 1.0e-6
Relative tolerance on the constraints of the system.
Valid Options (1.0e-6): <Scientific Notation Float>
Alchemy Parameters¶
annihilate_electrostatics¶
options:
annihilate_electrostatics: yes
Annihilate electrostatics rather than decouple them. This means that ligand-ligand (alchemical-alchemical) nonbonded electrostatics will be turned off as well as ligand-nonligand nonbonded electrostatics.
Valid Options: [yes]/no
annihilate_sterics¶
options:
annihilate_sterics: no
Annihilate sterics (Lennad-Jones or Halgren potential) rather than decouple them. This means that ligand-ligand
(alchemical-alchemical) nonbonded sterics will be turned off as well as ligand-nonligand nonbonded sterics.
WARNING: Do not set this option if annihilate_electrostatics
is “no”.
Valid Options: [no]/yes
Steric Alchemical Options¶
options:
softcore_alpha: 0.5
softcore_a: 1
softcore_b: 1
softcore_c: 6
The options that control the soft core energy function for decoupling/annihilating steric interactions. Setting
softcore_alpha = 0
with softcore_a = 1
gives linear scaling of the Lennard-Jones energy function.
Valid Options for softcore_alpha
(0.5): <Float>
Valid Options for softcore_[a,b,c]
(1,1,6): <Integer preferred, Float accepted>
Electrostatic Alchemical Options¶
options:
softcore_beta: 0.0
softcore_d: 1
softcore_e: 1
softcore_f: 2
The options that control the soft core energy functnon for decoupling/annihilating electrostatic interactions.
Setting softcore_beta = 0
with softcore_d = 1
gives linear scaling of Coulomb’s law.
Valid Options for softcore_beta
(0.0): <Float>
Valid Options for softcore_[d,e,f]
(1,1,2): <Integer preferred, Float accepted>
[1] | (1, 2, 3, 4, 5, 6, 7, 8, 9) Quantity strings are of the format: <float> * <unit> where <unit> is any valid unit specified in the “Valid Options” for an option. e.g. “<Quantity Length>” indicates any measure of length may be used for <unit> such as nanometer or angstrom.
Compound units are also parsed such as kilogram / meter**3 for density.
Only full unit names as they appear in the simtk.unit package (part of OpenMM) are allowed; so “nm” and “A” will be rejected. |