class openfe.protocols.openmm_afe.equil_solvation_afe_method.AbsoluteSolvationProtocolResult(**data)#

Dict-like container for the output of a AbsoluteSolvationProtocol

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

Get the individual estimate of the free energies.

Returns:

dGs – A dictionary, keyed solvent and vacuum for each leg of the thermodynamic cycle, with lists of tuples containing the individual free energy estimates and associated MBAR uncertainties for each repeat of that simulation type.

Return type:

dict[str, list[tuple[unit.Quantity, unit.Quantity]]]

get_estimate()#

Get the solvation free energy estimate for this calculation.

Returns:

dG – The solvation free energy. This is a Quantity defined with units.

Return type:

unit.Quantity

get_uncertainty()#

Get the solvation free energy error for this calculation.

Returns:

err – The standard deviation between estimates of the solvation free energy. This is a Quantity defined with units.

Return type:

unit.Quantity

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

Get the reverse and forward analysis of the free energies.

Returns:

forward_reverse – A dictionary, keyed solvent and vacuum for each leg of the thermodynamic cycle which each contain a list of dictionaries containing the forward and reverse analysis of each repeat of that simulation type.

The forward and reverse analysis dictionaries contain:
  • fractions: npt.NDArray

    The fractions of data used for the estimates

  • forward_DGs, reverse_DGs: unit.Quantity

    The forward and reverse estimates for each fraction of data

  • forward_dDGs, reverse_dDGs: unit.Quantity

    The forward and reverse estimate uncertainty for each fraction of data.

If one of the cycle leg list entries is None, 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.

Return type:

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

Raises:

UserWarning

  • If any of the forward and reverse dictionaries are None in a given thermodynamic cycle leg.

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

Get a the MBAR overlap estimates for all legs of the simulation.

Returns:

overlap_stats – A dictionary with keys solvent and vacuum for each leg of the thermodynamic cycle, which each containing a list of dictionaries with the MBAR overlap estimates of each repeat of that simulation type.

The underlying MBAR dictionaries contain 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:

dict[str, list[dict[str, npt.NDArray]]]

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

Get the replica exchange transition statistics for all legs of the simulation.

Note

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

Returns:

repex_stats – A dictionary with keys solvent and vacuum for each leg of the thermodynamic cycle, which each containing a list of dictionaries containing the replica transition statistics for each repeat of that simulation type.

The replica transition statistics dictionaries contain 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:

dict[str, list[dict[str, npt.NDArray]]]

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

Get the timeseries of replica states for all simulation legs.

Returns:

replica_states – Dictionary keyed solvent and vacuum for each leg of the thermodynamic cycle, with lists of replica states timeseries for each repeat of that simulation type.

Return type:

dict[str, list[npt.NDArray]]

equilibration_iterations() dict[str, list[float]]#

Get the number of equilibration iterations for each simulation.

Returns:

equilibration_lengths – Dictionary keyed solvent and vacuum for each leg of the thermodynamic cycle, with lists containing the number of equilibration iterations for each repeat of that simulation type.

Return type:

dict[str, list[float]]

production_iterations() dict[str, list[float]]#

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

Returns:

production_lengths – Dictionary keyed solvent and vacuum for each leg of the thermodynamic cycle, with lists with the number of production iterations for each repeat of that simulation type.

Return type:

dict[str, 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.