OpenMMGradientPotentials¶
-
class
openff.evaluator.protocols.openmm.
OpenMMGradientPotentials
(protocol_id)[source]¶ A protocol to estimates the the reduced potential of the configurations of a trajectory using reverse and forward perturbed simulation parameters for use with estimating reweighted gradients using the central difference method.
-
__init__
(protocol_id)¶ Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(protocol_id)Initialize self.
apply_replicator
(replicator, template_values)Applies a ProtocolReplicator to this protocol.
can_merge
(other[, path_replacements])Determines whether this protocol can be merged with another.
execute
([directory, available_resources])Execute the protocol.
from_json
(file_path)Create this object from a JSON file.
from_schema
(schema)Initializes a protocol from it’s schema definition.
get_attributes
([attribute_type])Returns all attributes of a specific attribute_type.
get_class_attribute
(reference_path)Returns one of this protocols, or any of its children’s, attributes directly (rather than its value).
get_value
(reference_path)Returns the value of one of this protocols inputs / outputs.
get_value_references
(input_path)Returns a dictionary of references to the protocols which one of this protocols inputs (specified by input_path) takes its value from.
json
([file_path, format])Creates a JSON representation of this class.
merge
(other)Merges another Protocol with this one.
parse_json
(string_contents[, encoding])Parses a typed json string into the corresponding class structure.
replace_protocol
(old_id, new_id)Finds each input which came from a given protocol
set_uuid
(value)Prepend a unique identifier to this protocols id.
set_value
(reference_path, value)Sets the value of one of this protocols inputs.
validate
([attribute_type])Validate the values of the attributes.
Attributes
Input - Defines whether this protocols is allowed to merge with other protocols.
Input - A path to a PDB coordinate file which describes the topology of the system.
A list of pointers to the protocols which this protocol takes input from.
Input - This a placeholder input which is not currently implemented.
Input - If true, periodic boundary conditions will be enabled when re-evaluating the reduced potentials.
Input - The path to the force field which contains the parameters to differentiate the observable with respect to.
Output - The value of the parameter perturbed in the forward direction.
Output - A file path to the energies evaluated using the parametersperturbed in the forward direction.
The unique id of this protocol.
A dictionary of the outputs of this property.
Input - The key of the parameter to differentiate with respect to.
Input - The amount to perturb the parameter by, such that p_new = p_old * (1 +/- perturbation_scale) The default value of this attribute is
0.0001
.The inputs which must be set on this protocol.
Output - The value of the parameter perturbed in the reverse direction.
Output - A file path to the energies evaluated using the parametersperturbed in the reverse direction.
A serializable schema for this object.
Input - The path to a statistics array containing potentials evaluated at each frame of the trajectory using the input force_field_path and at the input thermodynamic_state.
Input - The substance which describes the composition of the system.
Input - The thermodynamic state to estimate the gradients at.
Input - A path to the trajectory of configurations The default value of this attribute is not set and must be set by the user..
Input - If true, the reduced potentials will be estimated using a system which only contains the parameters of interest, e.g.
-
allow_merging
¶ Input - Defines whether this protocols is allowed to merge with other protocols. The default value of this attribute is
True
.- Type
-
apply_replicator
(replicator, template_values, template_index=- 1, template_value=None, update_input_references=False)¶ Applies a ProtocolReplicator to this protocol. This method should clone any protocols whose id contains the id of the replicator (in the format $(replicator.id)).
- Parameters
replicator (ProtocolReplicator) – The replicator to apply.
template_values (list of Any) –
A list of the values which will be inserted into the newly replicated protocols.
This parameter is mutually exclusive with template_index and template_value
template_index (int, optional) –
A specific value which should be used for any protocols flagged as to be replicated by the replicator. This option is mainly used when replicating children of an already replicated protocol.
This parameter is mutually exclusive with template_values and must be set along with a template_value.
template_value (Any, optional) –
A specific index which should be used for any protocols flagged as to be replicated by the replicator. This option is mainly used when replicating children of an already replicated protocol.
This parameter is mutually exclusive with template_values and must be set along with a template_index.
update_input_references (bool) –
If true, any protocols which take their input from a protocol which was flagged for replication will be updated to take input from the actually replicated protocol. This should only be set to true if this protocol is not nested within a workflow or a protocol group.
This option cannot be used when a specific template_index or template_value is providied.
- Returns
A dictionary of references to all of the protocols which have been replicated, with keys of original protocol ids. Each value is comprised of a list of the replicated protocol ids, and their index into the template_values array.
- Return type
dict of ProtocolPath and list of tuple of ProtocolPath and int
-
can_merge
(other, path_replacements=None)¶ Determines whether this protocol can be merged with another.
- Parameters
other (
Protocol
) – The protocol to compare against.path_replacements (list of tuple of str, optional) – Replacements to make in any value reference protocol paths before comparing for equality.
- Returns
True if the two protocols are safe to merge.
- Return type
-
coordinate_file_path
¶ Input - A path to a PDB coordinate file which describes the topology of the system. The default value of this attribute is not set and must be set by the user..
- Type
-
property
dependencies
¶ A list of pointers to the protocols which this protocol takes input from.
- Type
list of ProtocolPath
-
effective_sample_indices
¶ Input - This a placeholder input which is not currently implemented. The default value of this attribute is not set. This attribute is optional.
- Type
-
enable_pbc
¶ Input - If true, periodic boundary conditions will be enabled when re-evaluating the reduced potentials. The default value of this attribute is
True
.- Type
-
execute
(directory='', available_resources=None)¶ Execute the protocol.
- Parameters
directory (str) – The directory to store output data in.
available_resources (ComputeResources) – The resources available to execute on. If None, the protocol will be executed on a single CPU.
-
force_field_path
¶ Input - The path to the force field which contains the parameters to differentiate the observable with respect to. When reweighting observables, this should be the target force field. The default value of this attribute is not set and must be set by the user..
- Type
-
forward_parameter_value
¶ Output - The value of the parameter perturbed in the forward direction. The default value of this attribute is not set and must be set by the user..
- Type
Quantity
-
forward_potentials_path
¶ Output - A file path to the energies evaluated using the parametersperturbed in the forward direction. The default value of this attribute is not set and must be set by the user..
- Type
-
classmethod
from_json
(file_path)¶ Create this object from a JSON file.
- Parameters
file_path (str) – The path to load the JSON from.
- Returns
The parsed class.
- Return type
cls
-
classmethod
from_schema
(schema)¶ Initializes a protocol from it’s schema definition.
- Parameters
schema (ProtocolSchema) – The schema to initialize the protocol using.
- Returns
The initialized protocol.
- Return type
cls
-
classmethod
get_attributes
(attribute_type=None)¶ Returns all attributes of a specific attribute_type.
- Parameters
attribute_type (type of Attribute, optional) – The type of attribute to search for.
- Returns
The names of the attributes of the specified type.
- Return type
list of str
-
get_class_attribute
(reference_path)¶ Returns one of this protocols, or any of its children’s, attributes directly (rather than its value).
- Parameters
reference_path (ProtocolPath) – The path pointing to the attribute to return.
- Returns
The class attribute.
- Return type
-
get_value
(reference_path)¶ Returns the value of one of this protocols inputs / outputs.
- Parameters
reference_path (ProtocolPath) – The path pointing to the value to return.
- Returns
The value of the input / output
- Return type
Any
-
get_value_references
(input_path)¶ Returns a dictionary of references to the protocols which one of this protocols inputs (specified by input_path) takes its value from.
Notes
Currently this method only functions correctly for an input value which is either currently a
ProtocolPath
, or a list / dict which contains at least oneProtocolPath
.- Parameters
input_path (ProtocolPath) – The input value to check.
- Returns
A dictionary of the protocol paths that the input targeted by input_path depends upon.
- Return type
dict of ProtocolPath and ProtocolPath
-
id
¶ The unique id of this protocol. The default value of this attribute is not set and must be set by the user..
- Type
-
json
(file_path=None, format=False)¶ Creates a JSON representation of this class.
-
merge
(other)¶ Merges another Protocol with this one. The id of this protocol will remain unchanged.
-
property
outputs
¶ A dictionary of the outputs of this property.
- Type
dict of ProtocolPath and Any
-
parameter_key
¶ Input - The key of the parameter to differentiate with respect to. The default value of this attribute is not set and must be set by the user..
- Type
-
classmethod
parse_json
(string_contents, encoding='utf8')¶ Parses a typed json string into the corresponding class structure.
-
perturbation_scale
¶ Input - The amount to perturb the parameter by, such that p_new = p_old * (1 +/- perturbation_scale) The default value of this attribute is
0.0001
.- Type
-
replace_protocol
(old_id, new_id)¶ - Finds each input which came from a given protocol
and redirects it to instead take input from a new one.
Notes
This method is mainly intended to be used only when merging multiple protocols into one.
-
property
required_inputs
¶ The inputs which must be set on this protocol.
- Type
list of ProtocolPath
-
reverse_parameter_value
¶ Output - The value of the parameter perturbed in the reverse direction. The default value of this attribute is not set and must be set by the user..
- Type
Quantity
-
reverse_potentials_path
¶ Output - A file path to the energies evaluated using the parametersperturbed in the reverse direction. The default value of this attribute is not set and must be set by the user..
- Type
-
property
schema
¶ A serializable schema for this object.
- Type
-
set_uuid
(value)¶ Prepend a unique identifier to this protocols id. If the id already has a prepended uuid, it will be overwritten by this value.
- Parameters
value (str) – The uuid to prepend.
-
set_value
(reference_path, value)¶ Sets the value of one of this protocols inputs.
- Parameters
reference_path (ProtocolPath) – The path pointing to the value to return.
value (Any) – The value to set.
-
statistics_path
¶ Input - The path to a statistics array containing potentials evaluated at each frame of the trajectory using the input force_field_path and at the input thermodynamic_state. The default value of this attribute is not set and must be set by the user..
- Type
-
substance
¶ Input - The substance which describes the composition of the system. The default value of this attribute is not set and must be set by the user..
- Type
-
thermodynamic_state
¶ Input - The thermodynamic state to estimate the gradients at. When reweighting observables, this should be the target state. The default value of this attribute is not set and must be set by the user..
- Type
-
trajectory_file_path
¶ Input - A path to the trajectory of configurations The default value of this attribute is not set and must be set by the user..
- Type
-
use_subset_of_force_field
¶ Input - If true, the reduced potentials will be estimated using a system which only contains the parameters of interest, e.g. if the gradient of interest is with respect to the VdW epsilon parameter, then all valence / electrostatic terms will be ignored. The default value of this attribute is
True
.- Type
-
validate
(attribute_type=None)¶ Validate the values of the attributes. If attribute_type is set, only attributes of that type will be validated.
- Parameters
attribute_type (type of Attribute, optional) – The type of attribute to validate.
- Raises
ValueError or AssertionError –
-