class openfe.protocols.openmm_septop.equil_septop_method.SepTopSolventSetupUnit(*, protocol: Protocol, stateA: ChemicalSystem, stateB: ChemicalSystem, alchemical_components: dict[str, list[Component]], generation: int = 0, repeat_id: int = 0, name: str | None = None)#

Protocol Unit for the solvent phase of a relative SepTop free energy

Parameters:
  • protocol (gufe.Protocol) – protocol used to create this Unit. Contains key information such as the settings.

  • stateA (ChemicalSystem) – ChemicalSystem containing the components defining the state at lambda 0.

  • stateB (ChemicalSystem) – ChemicalSystem containing the components defining the state at lambda 1.

  • alchemical_components (dict[str, Component]) – the alchemical components for each state in this Unit

  • name (str, optional) – Human-readable identifier for this Unit

  • repeat_id (int, optional) – Identifier for which repeat (aka replica/clone) this Unit is, default 0

  • generation (int, optional) – Generation counter which keeps track of how many times this repeat has been extended, default 0.

run(dry=False, verbose=True, scratch_basepath=None, shared_basepath=None) dict[str, Any]#

Run the SepTop free energy calculation.

Parameters:
  • dry (bool) – Do a dry run of the calculation, creating all necessary alchemical system components (topology, system, sampler, etc…) but without running the simulation, default False

  • verbose (bool) – Verbose output of the simulation progress. Output is provided via INFO level logging, default True

  • scratch_basepath (pathlib.Path) – Path to the scratch (temporary) directory space.

  • shared_basepath (pathlib.Path) – Path to the shared (persistent) directory space.

Returns:

Outputs created in the basepath directory or the debug objects (i.e. sampler) if dry==True.

Return type:

dict

static check_assign_velocities_with_virtual_site(system: System, integrator_settings: IntegratorSettings)#

Virtual sites sanity check - ensure we restart velocities when there are virtual sites in the system

Parameters:
  • system (openmm.System) – The OpenMM System being checked.

  • integrator_settings (IntegratorSettings) – Multistate sampler integrator settings.

Raises:
  • ValueError

  • * If the system has a virtual site but the integrator settings specify – that velocities are not reassigned.

property dependencies: list[ProtocolUnit]#

All units that this unit is dependent on (parents)

execute(*, context: Context, raise_error: bool = False, **inputs) ProtocolUnitResult | ProtocolUnitFailure#

Given ProtocolUnitResult s from dependencies, execute this ProtocolUnit.

Parameters:
  • context (Context) – Execution context for this ProtocolUnit; includes e.g. shared and scratch Path s.

  • raise_error (bool) – If True, raise any errors instead of catching and returning a ProtocolUnitFailure default False

  • **inputs – Keyword arguments giving the named inputs to _execute. These can include ProtocolUnitResult objects from ProtocolUnit objects this unit is dependent on.

static get_smc_comps(alchem_comps: dict[str, list[Component]], smc_comps: dict[SmallMoleculeComponent, Molecule]) tuple[dict[SmallMoleculeComponent, Molecule], dict[SmallMoleculeComponent, Molecule], dict[SmallMoleculeComponent, Molecule]]#
get_system(solv_comp: SolventComponent, prot_comp: ProteinComponent, smc_comp: dict[SmallMoleculeComponent, Molecule], settings: dict[str, SettingsBaseModel])#

Creates an OpenMM system, topology, positions, modeller and also residue IDs of the different components

Parameters:
Returns:

  • omm_system (openmm.app.System)

  • omm_topology (openmm.app.Topology)

  • positions (openmm.unit.Quantity)

  • system_modeller (openmm.app.Modeller)

  • comp_resids (dict[Component, npt.NDArray]) – A dictionary of residues for each component in the System.

property inputs: dict[str, Any]#

Inputs to the ProtocolUnit.

Includes any ProtocolUnit instances this ProtocolUnit depends on.

property name: str | None#

Optional name for the ProtocolUnit.