ProtocolGraph
- class openff.evaluator.workflow.ProtocolGraph[source]
A graph of connected protocols which may be executed together.
- __init__()[source]
Methods
__init__
()add_protocols
(*protocols[, ...])Adds a set of protocols to the graph.
execute
([root_directory, ...])Execute the protocol graph in the specified directory, and either using a CalculationBackend, or using a specified set of compute resources.
Attributes
The protocols in this graph.
The ids of the protocols in the group which do not take input from the other grouped protocols.
- property root_protocols
The ids of the protocols in the group which do not take input from the other grouped protocols.
- Type
list of str
- add_protocols(*protocols, allow_external_dependencies=False)[source]
Adds a set of protocols to the graph.
- Parameters
protocols (tuple of Protocol) – The protocols to add.
allow_external_dependencies (bool) – If False, an exception will be raised if a protocol has a dependency outside of this graph.
- Returns
A mapping between the original protocols and protocols which were merged over the course of adding the new protocols.
- Return type
dict of str and str
- execute(root_directory='', calculation_backend=None, compute_resources=None, enable_checkpointing=True, safe_exceptions=True)[source]
Execute the protocol graph in the specified directory, and either using a CalculationBackend, or using a specified set of compute resources.
- Parameters
root_directory (str) – The directory to execute the graph in.
calculation_backend (CalculationBackend, optional.) – The backend to execute the graph on. This parameter is mutually exclusive with compute_resources.
compute_resources (CalculationBackend, optional.) – The compute resources to run using. This parameter is mutually exclusive with calculation_backend.
enable_checkpointing (bool) – If enabled, protocols will not be executed more than once if the output from their previous execution is found.
safe_exceptions (bool) – If true, exceptions will be serialized into the results file rather than directly raised, otherwise, the exception will be raised as normal.
- Returns
The paths to the JSON serialized outputs of the executed protocols. If executed using a calculation backend, these will be Future objects which will return the output paths on calling future.result().
- Return type
dict of str and str or Future