class openfe.ProtocolDAGResult(*, protocol_units: list[ProtocolUnit], protocol_unit_results: list[ProtocolUnitResult], transformation_key: GufeKey | None, extends_key: GufeKey | None = None, name: str | None = None)#

Result for a single execution of an entire ProtocolDAG.

There may be many of these for a given Transformation. Data elements from these objects are combined by Protocol.gather into a ProtocolResult.

property result_graph: DiGraph#

DAG of ProtocolUnitResult nodes with edges denoting dependencies.

Each edge is directed from a task towards its dependencies; for example, an edge between a production run and its equilibration would point towards the equilibration unit.

property protocol_unit_results: list[ProtocolUnitResult]#

ProtocolUnitResults for each ProtocolUnit used to compute this object.

Results are given in DAG-dependency order. In this order, tasks are always listed after their dependencies.

property protocol_unit_failures: list[ProtocolUnitFailure]#

A list of all failed ProtocolUnits.

Note

These are returned in DAG order, with tasks listed after their dependencies.

property protocol_unit_successes: list[ProtocolUnitResult]#

A list of only successful ProtocolUnit results.

Note

These are returned in DAG order, with tasks listed after their dependencies.

unit_to_result(protocol_unit: ProtocolUnit) ProtocolUnitResult#

Return the successful ProtocolUnitResult for a given ProtocolUnit, if it exists.

Returns:

success – the successful ProtocolUnitResult for this ProtocolUnit

Return type:

ProtocolUnitResult

Raises:
  • MissingUnitResultError: – if there are no results for that ProtocolUnit

  • ProtocolUnitFailureError: – if there are only failures for that ProtocolUnit

unit_to_all_results(protocol_unit: ProtocolUnit) list[ProtocolUnitResult]#

Return all ProtocolUnitResults (success and failure) for a given ProtocolUnit.

Returns:

resultsProtocolUnitResults for the given ProtocolUnit

Return type:

list[ProtocolUnitResult]

Raises:

MissingUnitResultError – if no ProtocolUnitResults present for the given ProtocolUnit

result_to_unit(protocol_unit_result: ProtocolUnitResult) ProtocolUnit#

Return the ProtocolUnit corresponding to the given ProtocolUnitResult.

Returns:

the ProtocolUnit corresponding to the given ProtocolUnitResult

Return type:

ProtocolUnit

Raises:

MissingUnitResultError – if the given ProtocolUnitResult isn’t present

ok() bool#

Check if this ProtocolDAGResult succeeded or failed.

Returns True if there is at least one successful ProtocolUnitResult for each ProtocolUnit, and False otherwise.

property terminal_protocol_unit_results: list[ProtocolUnitResult]#

Get ProtocolUnitResults that terminate the DAG.

Returns:

All ProtocolUnitResults which do not have a ProtocolUnitResult that follows on (depends) on them.

Return type:

list[ProtocolUnitResult]