config
#
Common configuration models.
Classes:
-
FlatBottomRestraint–Configuration for a flat bottom restraint.
-
BoreschRestraint–Configuration for a Boresch style restraint between three receptor atoms
-
Solvent–Configuration for solvating a system.
-
LangevinIntegrator–Configuration for a Langevin integrator.
-
REST–Configure REST2 setup.
-
Minimization–Configuration for a minimization.
-
Simulation–Configuration for an MD simulation.
-
Anneal–Configuration for a temperature annealing NVT MD simulation.
-
HREMDSwapMode–The mode in which to propose state swaps between replicas.
-
HREMD–Configuration for Hamiltonian replica exchange sampling
Functions:
-
merge_configs–Merge multiple configurations together.
Attributes:
-
DEFAULT_TEMPERATURE–The default temperature to simulate at
-
DEFAULT_PRESSURE–The default pressure to simulate at
-
DEFAULT_TLEAP_SOURCES–The default Leap parameter files to load when parameterizing the solvent /
DEFAULT_TEMPERATURE
module-attribute
#
The default temperature to simulate at
DEFAULT_PRESSURE
module-attribute
#
The default pressure to simulate at
DEFAULT_TLEAP_SOURCES
module-attribute
#
The default Leap parameter files to load when parameterizing the solvent / receptor
FlatBottomRestraint
pydantic-model
#
Bases: BaseModel
Configuration for a flat bottom restraint.
Fields:
-
type(Literal['flat-bottom']) -
k(OpenMMQuantity[_KCAL_PER_ANG_SQR]) -
radius(OpenMMQuantity[_ANGSTROM])
k
pydantic-field
#
k: OpenMMQuantity[_KCAL_PER_ANG_SQR]
Force constant [kcal/mol/Å^2] of the restraint.
BoreschRestraint
pydantic-model
#
Bases: BaseModel
Configuration for a Boresch style restraint between three receptor atoms (r1, r2, r3) and three ligand atoms (l1, l2, l3).
Fields:
-
type(Literal['boresch']) -
k_distance(OpenMMQuantity[_KCAL_PER_ANG_SQR]) -
k_angle_a(OpenMMQuantity[_KCAL_PER_RAD_SQR]) -
k_angle_b(OpenMMQuantity[_KCAL_PER_RAD_SQR]) -
k_dihedral_a(OpenMMQuantity[_KCAL_PER_RAD_SQR]) -
k_dihedral_b(OpenMMQuantity[_KCAL_PER_RAD_SQR]) -
k_dihedral_c(OpenMMQuantity[_KCAL_PER_RAD_SQR])
k_distance
pydantic-field
#
k_distance: OpenMMQuantity[_KCAL_PER_ANG_SQR]
Force constant [kcal/mol/Å^2] of the harmonic distance restraint between r3 and l1.
k_angle_a
pydantic-field
#
k_angle_a: OpenMMQuantity[_KCAL_PER_RAD_SQR]
Force constant [kcal/mol/rad^2] of the harmonic angle restraint on the angle formed by r2, r3, and l1.
k_angle_b
pydantic-field
#
k_angle_b: OpenMMQuantity[_KCAL_PER_RAD_SQR]
Force constant [kcal/mol/rad^2] of the harmonic angle restraint on the angle formed by r3, l1, and l2.
k_dihedral_a
pydantic-field
#
k_dihedral_a: OpenMMQuantity[_KCAL_PER_RAD_SQR]
Force constant [kcal/mol/rad^2] of the harmonic dihedral restraint on the dihedral angle formed by r1, r2, r3, and l1.
k_dihedral_b
pydantic-field
#
k_dihedral_b: OpenMMQuantity[_KCAL_PER_RAD_SQR]
Force constant [kcal/mol/rad^2] of the harmonic dihedral restraint on the dihedral angle formed by r2, r3, l1, and l2.
k_dihedral_c
pydantic-field
#
k_dihedral_c: OpenMMQuantity[_KCAL_PER_RAD_SQR]
Force constant [kcal/mol/rad^2] of the harmonic dihedral restraint on the dihedral angle formed by r3, l1, l2, and l3.
Solvent
pydantic-model
#
Bases: BaseModel
Configuration for solvating a system.
Fields:
-
ionic_strength(OpenMMQuantity[molar]) -
neutralize(bool) -
cation(Literal['Na+', 'K+']) -
anion(Literal['Cl-']) -
water_model(Literal['tip3p']) -
tleap_sources(list[str]) -
box_padding(OpenMMQuantity[_ANGSTROM] | None) -
n_waters(int | None)
ionic_strength
pydantic-field
#
ionic_strength: OpenMMQuantity[molar] = 0.0 * molar
The total concentration of ions pairs (anion and cation) to add to approximate an ionic strength. This does not include ions that are added to neutralize the system.
neutralize
pydantic-field
#
Whether to add counter ions to neutralize the system.
cation
pydantic-field
#
The cation to use when neutralizing the system.
tleap_sources
pydantic-field
#
tleap_sources: list[str] = [*DEFAULT_TLEAP_SOURCES]
The tLeap parameters to source when parameterizing the system minus any ligands (and possibly receptors) which should be handled separately
box_padding
pydantic-field
#
box_padding: OpenMMQuantity[_ANGSTROM] | None = (
10.0 * _ANGSTROM
)
The minimum distance between any complex atom (including any offset ligands) and the box wall. This option is mutually exclusive with n_waters.
n_waters
pydantic-field
#
The number of extra waters to solvate the complex using. This option is mutually exclusive with box_padding.
LangevinIntegrator
pydantic-model
#
Bases: BaseModel
Configuration for a Langevin integrator.
Fields:
-
type(Literal['langevin']) -
timestep(OpenMMQuantity[picosecond]) -
friction(OpenMMQuantity[picosecond ** -1]) -
constraint_tolerance(float)
constraint_tolerance
pydantic-field
#
The tolerance with which constraints are maintained.
REST
pydantic-model
#
Bases: BaseModel
Configure REST2 setup.
Fields:
-
scale_bonds(bool) -
scale_angles(bool) -
scale_torsions(bool) -
scale_nonbonded(bool)
scale_bonds
pydantic-field
#
Whether to scale bond force constants by beta_m / beta_0.
scale_angles
pydantic-field
#
Whether to scale angle force constants by beta_m / beta_0.
scale_torsions
pydantic-field
#
Whether to scale torsion barrier heights by beta_m / beta_0.
scale_nonbonded
pydantic-field
#
Whether to scale non-bonded epsilons by beta_m / beta_0 and charges by sqrt(beta_m / beta_0).
Minimization
pydantic-model
#
Bases: BaseModel
Configuration for a minimization.
Fields:
-
type(Literal['minimization']) -
restraints(dict[str, FlatBottomRestraint]) -
tolerance(OpenMMQuantity[_KCAL_PER_MOL / _ANGSTROM]) -
max_iterations(int)
restraints
pydantic-field
#
restraints: dict[str, FlatBottomRestraint] = {}
The position restraints to apply during the minimization. The keys should be AMBER style selection masks.
tolerance
pydantic-field
#
tolerance: OpenMMQuantity[_KCAL_PER_MOL / _ANGSTROM] = (
10.0 * _KCAL_PER_MOL / _ANGSTROM
)
Minimization will be halted once the root-mean-square value of all force components reaches this tolerance.
max_iterations
pydantic-field
#
The maximum number of iterations to perform. If 0, minimization will continue until the tolerance is met.
Simulation
pydantic-model
#
Bases: _SimulationStep
Configuration for an MD simulation.
Fields:
-
type(Literal['simulation']) -
temperature(OpenMMQuantity[kelvin]) -
pressure(OpenMMQuantity[atmospheres] | None) -
barostat_frequency(int) -
n_steps(int)
integrator
pydantic-field
#
integrator: LangevinIntegrator
The integrator to use during the simulation.
restraints
pydantic-field
#
restraints: dict[str, FlatBottomRestraint] = {}
The position restraints to apply during the minimization. The keys should be AMBER style selection masks.
pressure
pydantic-field
#
pressure: OpenMMQuantity[atmospheres] | None
The pressure to simulate at, or none to run in NVT.
barostat_frequency
pydantic-field
#
The frequency at which to apply the barostat. This is ignored if pressure is None.
Anneal
pydantic-model
#
Bases: _SimulationStep
Configuration for a temperature annealing NVT MD simulation.
Fields:
-
type(Literal['anneal']) -
temperature_initial(OpenMMQuantity[kelvin]) -
temperature_final(OpenMMQuantity[kelvin]) -
n_steps(int) -
frequency(int)
integrator
pydantic-field
#
integrator: LangevinIntegrator
The integrator to use during the simulation.
restraints
pydantic-field
#
restraints: dict[str, FlatBottomRestraint] = {}
The position restraints to apply during the minimization. The keys should be AMBER style selection masks.
temperature_initial
pydantic-field
#
temperature_initial: OpenMMQuantity[kelvin]
The starting temperature to simulate at.
temperature_final
pydantic-field
#
temperature_final: OpenMMQuantity[kelvin]
The final temperature to simulate at.
HREMDSwapMode
#
Bases: str, Enum
The mode in which to propose state swaps between replicas.
NEIGHBOURS: Only allow swapping the current state with neighbouring states.ALL: Allow swapping the current state with any other state.
HREMD
pydantic-model
#
Bases: BaseModel
Configuration for Hamiltonian replica exchange sampling
Fields:
-
temperature(OpenMMQuantity[kelvin]) -
n_warmup_steps(int) -
n_steps_per_cycle(int) -
n_cycles(int) -
max_step_retries(int) -
swap_mode(HREMDSwapModeLiteral | None) -
max_swaps(int | None) -
trajectory_interval(int | None)
temperature
pydantic-field
#
temperature: OpenMMQuantity[kelvin] = DEFAULT_TEMPERATURE
The temperature to sample at.
n_warmup_steps
pydantic-field
#
The number of steps to run each replica for before starting hremd trials. All energies gathered during this period will be discarded.
n_steps_per_cycle
pydantic-field
#
The number of steps to propagate the system by before attempting an exchange.
n_cycles
pydantic-field
#
The number of cycles of 'propagate the system' -> 'exchange replicas' to run.
max_step_retries
pydantic-field
#
The maximum number of times to attempt to step if a NaN is encountered before raising an exception
swap_mode
pydantic-field
#
The mode in which to propose state swaps between replicas. This can either be: 'neighbours', only try and swap adjacent states or ii. 'all', try and swap all states stochastically. If None, no replica exchanges will be attempted.
max_swaps
pydantic-field
#
The maximum number of swap proposals to make if running in 'all' mode. This variable does nothing when running in 'neighbours' mode.
trajectory_interval
pydantic-field
#
The number of cycles to run before saving the current replica states to DCD trajectory files. If None, no trajectories will be saved.
merge_configs
#
Merge multiple configurations together.
Parameters:
-
configs(_T, default:()) –The configurations to merge. These should either be dataclasses or plain dictionaries. Values in subsequent configs will overwrite values in previous ones.
Returns:
-
dict[str, Any]–The merged configuration.