class openfe.protocols.openmm_rfe.RelativeHybridTopologyProtocolResult(**data)#

Dict-like container for the output of a RelativeHybridTopologyProtocol

get_estimate() Quantity#

Average free energy difference of this transformation

Returns:

dG – The free energy difference between the first and last states. This is a Quantity defined with units.

Return type:

unit.Quantity

get_uncertainty() Quantity#

The uncertainty/error in the dG value: The std of the estimates of each independent repeat

get_individual_estimates() list[tuple[pint.Quantity, pint.Quantity]]#

Return a list of tuples containing the individual free energy estimates and associated MBAR errors for each repeat.

Returns:

dGs – n_replicate simulation list of tuples containing the free energy estimates (first entry) and associated MBAR estimate errors (second entry).

Return type:

list[tuple[unit.Quantity]]

get_forward_and_reverse_energy_analysis() list[typing.Optional[dict[str, typing.Union[numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]], pint.Quantity]]]]#

Get a list of forward and reverse analysis of the free energies for each repeat using uncorrelated production samples.

The returned dicts have keys: ‘fractions’ - the fraction of data used for this estimate ‘forward_DGs’, ‘reverse_DGs’ - for each fraction of data, the estimate ‘forward_dDGs’, ‘reverse_dDGs’ - for each estimate, the uncertainty

The ‘fractions’ values are a numpy array, while the other arrays are Quantity arrays, with units attached.

If the list entry is None instead of a dictionary, this indicates that the analysis could not be carried out for that repeat. This is most likely caused by MBAR convergence issues when attempting to calculate free energies from too few samples.

Returns:

forward_reverse

Return type:

list[Optional[dict[str, Union[npt.NDArray, unit.Quantity]]]]

Raises:

UserWarning – If any of the forward and reverse entries are None.

get_overlap_matrices() list[dict[str, numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]]]]#

Return a list of dictionary containing the MBAR overlap estimates calculated for each repeat.

Returns:

overlap_stats

A list of dictionaries containing the following keys:
  • scalar: One minus the largest nontrivial eigenvalue

  • eigenvalues: The sorted (descending) eigenvalues of the overlap matrix

  • matrix: Estimated overlap matrix of observing a sample from state i in state j

Return type:

list[dict[str, npt.NDArray]]

get_replica_transition_statistics() list[dict[str, numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]]]]#

The replica lambda state transition statistics for each repeat.

Note

This is currently only available in cases where a replica exchange simulation was run.

Returns:

repex_stats

A list of dictionaries containing the following:
  • eigenvalues: The sorted (descending) eigenvalues of the lambda state transition matrix

  • matrix: The transition matrix estimate of a replica switching from state i to state j.

Return type:

list[dict[str, npt.NDArray]]

get_replica_states() list[numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]]]#

Returns the timeseries of replica states for each repeat.

Returns:

replica_states – List of replica states for each repeat

Return type:

List[npt.NDArray]

equilibration_iterations() list[float]#

Returns the number of equilibration iterations for each repeat of the calculation.

Returns:

equilibration_lengths

Return type:

list[float]

production_iterations() list[float]#

Returns the number of uncorrelated production samples for each repeat of the calculation.

Returns:

production_lengths

Return type:

list[float]

property data: dict[str, Any]#

Aggregated data contents from multiple ProtocolDAGResult instances.

The structure of this data is specific to the Protocol subclass each ProtocolResult subclass corresponds to.