OpenMM Absolute Binding Free Energy Protocol#
This section provides details about the OpenMM Absolute Binding Free Energy Protocol implemented in OpenFE.
Protocol API specification#
Absolute binding free energy calculations using OpenMM and OpenMMTools. |
|
Analysis unit for multi-state simulations with the complex phase of absolute binding free energy transformations. |
|
Setup unit for the complex phase of absolute binding free energy transformations. |
|
Multi-state simulation (e.g. multi replica methods like Hamiltonian replica exchange) unit for the complex phase of absolute binding free energy transformations. |
|
Analysis unit for multi-state simulations with the solvent phase of absolute binding free energy transformations. |
|
Setup unit for the solvent phase of absolute binding free energy transformations. |
|
Multi-state simulation (e.g. multi replica methods like Hamiltonian replica exchange) unit for the solvent phase of absolute binding free energy transformations. |
|
Protocol results with the output of a AbsoluteBindingProtocol. |
Protocol Settings#
Below are the settings which can be tweaked in the protocol. The default settings (accessed using AbsoluteBindingProtocol.default_settings()) will automatically populate settings which we have found to be useful for running binding 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.AlchemicalSettings#
Alchemical settings for Protocols which use the AbsoluteAlchemicalFactory.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- field disable_alchemical_dispersion_correction: bool = False#
If True, the long-range dispersion correction will not be included for the alchemical region, avoiding the need to recompute the correction. This can improve performance, at the cost of accuracy. Default is False.
- field annihilate_sterics: bool = False#
If True, sterics (Lennard-Jones) will be annihilated instead of decoupled. Default is False.
- field softcore_alpha: float = 0.5#
Alchemical softcore parameter for the Lennard-Jones interactions (default is 0.5).
The generalized softcore potential formalism introduced by Pham and Shirts, J. Chem. Phys. 135, 034114 (2011), equation 13, is used here. The
softcore_a,softcore_b, andsoftcore_cparameters are used alongsidesoftcore_alphato control how the potential is scaled.
- field softcore_a: float = 1.0#
Scaling constant
ain Eq. 13 from Pham and Shirts, J. Chem. Phys. 135, 034114 (2011).
- 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 the system in state A, whilst a value of 1 defines the system in state B. In an absolute transformation, state A means a fully interacting ligand without any restraints applied, and state B means a fully non-interacting ligand, with optional restraints applied.
lambda_elec,lambda_vdw, andlambda_restraintsmust 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][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- 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 fully interacting (state A), and one means annihilated (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 full interacting (state A) and one means decoupled (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 no restraints are applied (state A), and one means restraints are fully applied (state B).
Note: The length of this list needs to match length of lambda_vdw and lambda_elec.
- pydantic model openfe.protocols.openmm_afe.equil_afe_settings.ABFEPreEquilOutputSettings#
Settings controlling the pre-alchemical equilibration MD simulations.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- field output_indices: str = 'all'#
Selection string for which part of the system to write coordinates for. For now, must be “all”.
- field equil_nvt_structure: str | None = 'equil_nvt_structure.pdb'#
Name of the PDB file containing the system after NVT pre-equilibration. Only the atom subset specified by output_indices is saved. Default ‘equil_nvt_structure.pdb’.
- field equil_npt_structure: str | None = 'equil_npt_structure.pdb'#
Name of the PDB file containing the system after NPT pre-equilibration. Only the atom subset specified by output_indices is saved. Default ‘equil_npt_structure.pdb’.
- field production_trajectory_filename: str | None = 'production_equil.xtc'#
Name pre-equilibration “production” (i.e. extended NPT) trajectory file. Only the atom subset specified by output_indices is saved. Default production_equil.xtc.
- field log_output: str | None = 'production_equil_simulation.log'#
Filename for writing the pre-equilibration extended NPT MD simulation log file. This includes ns/day, timesteps, energies, density, etc. Default ‘production_equil_simulation.log’
- field trajectory_write_interval: PicosecondQuantity = <Quantity(20.0, 'picosecond')>#
Frequency to write the xtc file. Default 5000 * unit.timestep.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x7f8e98a92ca0>, unit=’picosecond’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- field preminimized_structure: str | None = 'system.pdb'#
Path to the pdb file of the full pre-minimized system. Default ‘system.pdb’.
- field minimized_structure: str | None = 'minimized.pdb'#
Path to the pdb file of the system after minimization. Only the specified atom subset is saved. Default ‘minimized.pdb’.
- field checkpoint_interval: NanosecondQuantity = <Quantity(1.0, 'nanosecond')>#
Frequency to write the checkpoint file. Default 1 * unit.nanosecond.
- Constraints:
func = functools.partial(<function _has_compatible_dimensionality at 0x7f8e98a92ca0>, unit=’nanosecond’, convert=True)
json_schema_input_type = typing.Any
json_schema = {‘type’: ‘number’}
return_type = PydanticUndefined
when_used = always
- pydantic model openfe.protocols.openmm_afe.equil_afe_settings.AbsoluteBindingSettings#
Configuration object for
AbsoluteBindingPProtocolSee also
openfe.protocols.openmm_afe.AbsoluteBindingProtocolCreate a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- 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 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 solvent_solvation_settings: OpenMMSolvationSettings [Required]#
Settings for solvating the system in the solvent.
- field complex_solvation_settings: OpenMMSolvationSettings [Required]#
Settings for solvating the system in the complex.
- field alchemical_settings: AlchemicalSettings [Required]#
Alchemical protocol settings.
- field complex_lambda_settings: LambdaSettings [Required]#
Settings for controlling the complex transformation leg lambda schedule for the different components (vdw, elec, restraints).
- field solvent_lambda_settings: LambdaSettings [Required]#
Settings for controlling the solvent transformation leg lambda schedule for the different components (vdw, elec, restraints).
Notes
The restraints entry of the lambda settings will be ignored in the solvent leg.
- field engine_settings: OpenMMEngineSettings [Required]#
Settings specific to the OpenMM engine, such as the compute platform.
- field solvent_integrator_settings: IntegratorSettings [Required]#
Settings for controlling the integrator, such as the timestep and barostat settings in the solvent.
- field complex_integrator_settings: IntegratorSettings [Required]#
Settings for controlling the integrator, such as the timestep and barostat settings in the complex.
- field complex_equil_simulation_settings: MDSimulationSettings [Required]#
Pre-alchemical complex simulation control settings.
- field complex_simulation_settings: MultiStateSimulationSettings [Required]#
Simulation control settings, including simulation lengths for the complex 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 complex_equil_output_settings: ABFEPreEquilOutputSettings [Required]#
Simulation output settings for the complex non-alchemical equilibration.
- field complex_output_settings: MultiStateOutputSettings [Required]#
Simulation output settings for the complex transformation.
- field solvent_equil_output_settings: ABFEPreEquilOutputSettings [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.
- field restraint_settings: BaseRestraintSettings [Required]#
Settings controlling how restraints are added to the system in the complex simulation.
- field analysis_settings: MultiStateAnalysisSettings [Optional]#
Settings for the structural analysis of the multistate trajectories