Working with individual results#
With execution of your calculations completed,
we can now start looking at what has been produced.
The majority of Protocols will produce estimates of free energy differences between two or more ChemicalSystem
s
(the current exception being the PlainMDProtocol
which just simulates the dynamics of a single system).
Beyond this, the exact data produced by a given Protocol can vary significantly,
for example the RelativeHybridTopologyProtocol
protocol will produce graphs to assess the quality of the simulation, alongside trajectory data files.
By comparison, the PlainMDProtocol
will only produce the latter.
For exact details on what is produced consult the pages for each Protocol.
How you can inspect these results depends on whether you have executed your simulations from the command line or a Python script.
From command line execution#
If you had executed your calculation using the quickrun command,
then a .json
results log file as well as a directory of files will have been produced.
This directory will have various plots and results of analysis, the exact details of which are described
in the pages for each Protocol.
Most importantly, the .json
results file has estimate
and uncertainty
keys,
which serve the same purpose as the get_estimate()
and get_uncertainty()
methods described below.
The full json
results file can be reloaded into a Python session as:
>>> import gufe
>>> import json
>>>
>>> with open('././Transformation-97d7223f918bbdb0570edc2a49bbc43e_results.json', 'r') as f:
... results = json.load(f, cls=gufe.tokenization.JSON_HANDLER.decoder)
>>> results['estimate']
-19.889719513104342 <Unit('kilocalorie_per_mole')>
>>> results['uncertainty']
0.574685524681712 <Unit('kilocalorie_per_mole')>
From Python execution#
Executing a ProtocolDAG
using openfe.execute_DAG()
will produce a ProtocolDAGResult
,
representing a single iteration of estimating the free energy difference.
One or more of these can be put into the .gather()
method of the Protocol
to form a ProtocolResult
,
this class takes care of the averaging and concatenation of different iterations of the estimation process.
This ProtocolResult
class has .get_estimate()
and .get_uncertainty()
methods which return the estimates
of free energy difference along with its uncertainty.
See Also#
For how to deal with multiple results forming a network consult the working with networks page.