OpenFF Evaluator

Description

A scalable, automated framework for curating data sets of condensed phase physical properties, and evaluating such data sets using molecular simulation and molecular simulation data.

Lead Maintainer

@Simon Boothroyd  

Documentation

https://openff-evaluator.readthedocs.io/en/latest/

Open Projects

Migrate the internal structure of the PhysicalPropertyDataSet class to use a pandas data frame.

While the current object has been sufficient for handling smaller data sets, the object is not performant enough when dealing with larger sets of properties.

The class should:

  • still allow users to add new properties and retrieve existing properties as PhysicalProperty objects.

  • be fully JSON serializable.

  • should still allow users to interact with it using the Substance, PropertyPhase and ThermodynamicStateobjects (e.g. via queries).

Replace the internal AttributeXXX classes with attrs

The current AttributeClass and Attribute classes where mainly created to be flexible representations of data classes to be used when speccing out the new class designs as part of the openff-evaluator refactoring.

While these classes are flexible, extensible and allow new classes to be specced out easily, complete with automatic serialization support, automatic docstrings and a degree of automatic validation, they are not particularly performant and could (and should) likely be replace with / built on top of the existing attrs library.

Any replacement solution must provide the same level of flexibility, extensibility and automation, as well as being able to readily support polymorphic class designs.

Expand the functionality of the EvaluatorServer/ EvaluatorClient

Currently the evaluator client can only be used to submit estimation requests, and query the state of submitted requests. It would be useful to expand the queries which can be made, including pulling down force fields from the server by their unique id, pulling down provenance about previous requests etc.

The server is also not currently resilient - i.e if the server goes down, all information about previous and current requests is lost, and current requests can not / are not restarted. This should be remedied.