ProtocolReplicator
- class openff.evaluator.workflow.schemas.ProtocolReplicator(replicator_id='')[source]
A protocol replicator contains the information necessary to replicate parts of a property estimation workflow.
Any protocol whose id includes $(replicator.id) (where replicator.id is the id of a replicator) will be cloned for each value present in template_values. Protocols that are being replicated will also have any ReplicatorValue inputs replaced with the actual value taken from template_values.
When the protocol is replicated, the $(replicator.id) placeholder in the protocol id will be replaced an integer which corresponds to the index of a value in the template_values array.
Any protocols which take input from a replicated protocol will be updated to instead take a list of value, populated by the outputs of the replicated protocols.
Notes
The template_values property must be a list of either constant values, or ProtocolPath objects which take their value from the global scope.
If children of replicated protocols are also flagged as to be replicated, they will only have their ids changed to match the index of the parent protocol, as opposed to being fully replicated.
- __init__(replicator_id='')[source]
Constructs a new ProtocolReplicator object.
- Parameters
replicator_id (str) – The id of this replicator.
Methods
__init__
([replicator_id])Constructs a new ProtocolReplicator object.
apply
(protocols[, template_values, ...])Applies this replicator to the provided set of protocols and any of their children.
from_json
(file_path)Create this object from a JSON file.
json
([file_path, format])Creates a JSON representation of this class.
parse_json
(string_contents)Parses a typed json string into the corresponding class structure.
update_references
(protocols, ...)Redirects the input references of protocols to the replicated versions.
Attributes
The string which protocols to be replicated should include in their ids.
- apply(protocols, template_values=None, template_index=- 1, template_value=None)[source]
Applies this replicator to the provided set of protocols and any of their children.
This protocol should be followed by a call to update_references to ensure that all protocols which take their input from a replicated protocol get correctly updated.
- Parameters
protocols (dict of str and Protocol) – The protocols to apply the replicator to.
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 this 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 this 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.
- Returns
dict of str and Protocol – The replicated protocols.
dict of ProtocolPath and list of tuple of ProtocolPath and int – 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.
- update_references(protocols, replication_map, template_values)[source]
Redirects the input references of protocols to the replicated versions.
- Parameters
protocols (dict of str and Protocol) – The protocols which have had this replicator applied to them.
replication_map (dict of ProtocolPath and list of tuple of ProtocolPath and int) – 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.
template_values (List of Any) – A list of the values which will be inserted into the newly replicated protocols.
- 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