OpenMM Absolute Solvation Free Energy Protocol#
This section provides details about the OpenMM Absolute Solvation Free Energy Protocol implemented in OpenFE.
Protocol API specification#
Absolute solvation free energy calculations using OpenMM and OpenMMTools. |
|
Protocol Unit for the vacuum phase of an absolute solvation free energy |
|
Protocol Unit for the solvent phase of an absolute solvation free energy |
|
Dict-like container for the output of a AbsoluteSolvationProtocol |
Protocol Settings#
Below are the settings which can be tweaked in the protocol. The default settings (accessed using AbsoluteSolvationProtocol.default_settings()
) will automatically populate settings which we have found to be useful for running solvation free energy calculations. There will however be some cases (such as when calculating difficult to converge systems) where you will need to tweak some of the following settings.
- pydantic model openfe.protocols.openmm_afe.equil_afe_settings.AbsoluteSolvationSettings#
Configuration object for
AbsoluteSolvationProtocol
.See also
openfe.protocols.openmm_afe.AbsoluteSolvationProtocol
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- field protocol_repeats: int [Required]#
The number of completely independent repeats of the entire sampling process. The mean of the repeats defines the final estimate of FE difference, while the variance between repeats is used as the uncertainty.
- field solvent_forcefield_settings: OpenMMSystemGeneratorFFSettings [Required]#
- field vacuum_forcefield_settings: OpenMMSystemGeneratorFFSettings [Required]#
Parameters to set up the force field with OpenMM Force Fields
- field thermo_settings: ThermoSettings [Required]#
Settings for thermodynamic parameters
- field solvation_settings: OpenMMSolvationSettings [Required]#
Settings for solvating the system.
- field alchemical_settings: AlchemicalSettings [Required]#
Alchemical protocol settings.
- field lambda_settings: LambdaSettings [Required]#
Settings for controlling the lambda schedule for the different components (vdw, elec, restraints).
- field vacuum_engine_settings: OpenMMEngineSettings [Required]#
Settings specific to the OpenMM engine, such as the compute platform for the vacuum transformation.
- field solvent_engine_settings: OpenMMEngineSettings [Required]#
Settings specific to the OpenMM engine, such as the compute platform for the solvent transformation.
- field integrator_settings: IntegratorSettings [Required]#
Settings for controlling the integrator, such as the timestep and barostat settings.
- field vacuum_equil_simulation_settings: MDSimulationSettings [Required]#
Pre-alchemical vacuum simulation control settings.
Notes
The NVT equilibration should be set to 0 * unit.nanosecond as it will not be run.
- field vacuum_simulation_settings: MultiStateSimulationSettings [Required]#
Simulation control settings, including simulation lengths for the vacuum transformation.
- field solvent_equil_simulation_settings: MDSimulationSettings [Required]#
Pre-alchemical solvent simulation control settings.
- field solvent_simulation_settings: MultiStateSimulationSettings [Required]#
Simulation control settings, including simulation lengths for the solvent transformation.
- field vacuum_equil_output_settings: MDOutputSettings [Required]#
Simulation output settings for the vacuum non-alchemical equilibration.
- field vacuum_output_settings: MultiStateOutputSettings [Required]#
Simulation output settings for the vacuum transformation.
- field solvent_equil_output_settings: MDOutputSettings [Required]#
Simulation output settings for the solvent non-alchemical equilibration.
- field solvent_output_settings: MultiStateOutputSettings [Required]#
Simulation output settings for the solvent transformation.
- field partial_charge_settings: OpenFFPartialChargeSettings [Required]#
Settings for controlling how to assign partial charges, including the partial charge assignment method, and the number of conformers used to generate the partial charges.
Protocol Specific Settings Classes#
Below are Settings classes which are unique to the AbsoluteSolvationProtocol.
- pydantic model openfe.protocols.openmm_afe.equil_afe_settings.AlchemicalSettings#
Settings for the alchemical protocol
Empty place holder for right now.
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- pydantic model openfe.protocols.openmm_afe.equil_afe_settings.LambdaSettings#
Lambda schedule settings.
Defines lists of floats to control various aspects of the alchemical transformation.
Notes
In all cases a lambda value of 0 defines a fully interacting state A and a non-interacting state B, whilst a value of 1 defines a fully interacting state B and a non-interacting state A.
lambda_elec
, lambda_vdw`, andlambda_restraints
must all be of the same length, defining all the windows of the transformation.
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- field lambda_elec: list[float] = [0.0, 0.25, 0.5, 0.75, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]#
List of floats of lambda values for the electrostatics. Zero means state A and 1 means state B. Length of this list needs to match length of lambda_vdw and lambda_restraints.
- field lambda_vdw: list[float] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0]#
List of floats of lambda values for the van der Waals. Zero means state A and 1 means state B. Length of this list needs to match length of lambda_elec and lambda_restraints.
- field lambda_restraints: list[float] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]#
List of floats of lambda values for the restraints. Zero means state A and 1 means state B. Length of this list needs to match length of lambda_vdw and lambda_elec.