OpenFreeEnergy / gufe

grand unified free energy by OpenFE
https://gufe.readthedocs.io
MIT License
28 stars 7 forks source link

Define `AlchemicalArchive` object for use as archival artifact #323

Open dotsdl opened 1 month ago

dotsdl commented 1 month ago

In https://github.com/openforcefield/alchemiscale/issues/246, we identified the need to easily produce archival-quality extracts from alchemiscale. The proposed solution would package up AlchemicalNetworks, ProtocolDAGResults, and user metadata into an AlchemicalArchive object, which could itself be easily serialized into a form that is archivable on FAIR data repositories, such as Zenodo.

So that other tools in the OpenFE ecosystem can produce and process AlchemicalArchives, it makes most sense to define this object in gufe. At its most basic, this object is effectively a tuple of the form:

Tuple[AlchemicalNetwork, Dict[Transformation, List[ProtocolDAGResult]], Dict[str, Any]]

where the second element is a dict with Transformations as keys, a list of ProtocolDAGResults as values, and the third element a metadata dict that is user-defined.