Releases: openforcefield/openff-evaluator
0.3.2
This release exposes the option to disable caching of simulation data by an evaluator server. The performance of the local storage backend is currently poor when dealing with large amounts of cached data and hence it may be preferable to disable caching in such cases.
New Features
- PR #337: Expose server option to dis/enable data caching.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.3.1
This release fixes a bug introduced in version 0.3.0 of this framework,
whereby the default workflows for computing excess properties could in
rare cases be incorrectly merged leading to downstream protocols taking
their inputs from the wrong upstream protocol outputs.
While this bug should not affect most calculations, it is recommended
that any production calculations performed using version 0.3.0 of this
framework be repeated using version 0.3.1.
Bugfixes
- PR #331: Fixes merging excess properties.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.3.0
The main feature of this release is the overhauling of how the framework computes the gradients of observables with respect to force field parameters.
In particular, from this release onwards all gradients will be computed using the fluctuation formula (also referred to as the thermodynamic gradient), rather than calculation be the re-weighted finite difference approach (PR #280). In general the two methods produce gradients which are numerically indistinguishable, and so this should not markedly change any scientific output of this framework.
The change was made to, in future, enable better integration with automatic differentiation libraries such as jax, and differentiable simulation engines such as timemachine which readily and rapidly give access to dU/dθ.
Additionally, as of version 0.3.0 'known' charges (i.e. those assigned to TIP3P water and ions) are no longer automatically applied when using a SMIRNOFF based force field. This feature was originally included in the framework as the OpenFF toolkit did not support defining charges on specific molecules in the force field itself. This is now fully supported through the LibraryCharges
section of a SMIRNOFF force field and hence this workaround is no longer required. From now on all ion and water charges must be specified in the SMIRNOFF force field.
Finally, this release includes beta support for computing host-guest binding affinities using the attach-pull-release (APR) method through integration with the pAPRika and taproom packages. This support was largely facilitated by the efforts of the paprika
authors - David R. Slochower and Jeffry Setiadi.
Bugfixes
- PR #285: Use merged protocols in workflow provenance.
- PR #287: Fix merging of nested protocol inputs
New Features
- PR #262: Initial host-guest binding affinity support via
paprika
andtaproom
. - PR #280: Switch to computing thermodynamic gradients.
- PR #309: Add a date to the timestamp logging output.
- PR #311: Initial solvation free energy gradient support.
- PR #312: Support caching free energy data.
- PR #324: Adds new miscellaneous
DummyProtocol
protocol.
Behaviour Changes
- PR #280: Migrate to thermodynamic gradients.
- PR #310: The SMIRNOFF protocol no longer applies 'known' charges (i.e. water and ions).
- PR #316: Add library charges to the TIP3P test data file.
- PR #328: Store workflow provenance as serialized string.
Breaking Changes
-
The
StatisticsArray
array has been completely removed and replaced with a new set of observable (Observable
,ObservableArray
,ObservableFrame
objects (#279, #286). -
The following protocol inputs / outputs have been renamed:
SolvationYankProtocol.solvent_X_system
->SolvationYankProtocol.solution_X_system
SolvationYankProtocol.solvent_X_coordinates
->SolvationYankProtocol.solution_X_coordinates
SolvationYankProtocol.estimated_free_energy
->SolvationYankProtocol.free_energy_difference
-
The following classes have been renamed:
OpenMMReducedPotentials
->OpenMMEvaluateEnergies
.AveragePropertyProtocol
->BaseAverageObservable
,ExtractAverageStatistic
->AverageObservable
,ExtractUncorrelatedData
->BaseDecorrelateProtocol
,ExtractUncorrelatedTrajectoryData
->DecorrelateTrajectory
,ExtractUncorrelatedStatisticsData
->DecorrelateObservables
ConcatenateStatistics
->ConcatenateObservables
,BaseReducedPotentials
->BaseEvaluateEnergies
,ReweightStatistics -> ReweightObservable
-
The following classes have been removed:
OpenMMGradientPotentials
,BaseGradientPotentials
,CentralDifferenceGradient
-
The final value estimated by a workflow must now be an
Observable
object which contains any gradient information to return. (#296).
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.2.2
This release adds documentation for how physical properties are computed within the framework (both for this, and for previous releases).
Documentation
- PR #281: Initial pass at physical property documentation.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.2.1
A patch release offering minor bug fixes and quality of life improvements.
Bugfixes
- PR #259: Adds
is_file_and_not_empty
and addresses OpenMM failure modes. - PR #275: Workaround for N substance molecules > user specified maximum.
New Features
- PR #267: Adds workflow protocol to Boltzmann average free energies.
- PR #269: Expose exclude exact amount from max molecule cap.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.2.0
This release overhauls the frameworks data curation abilities. In particular, it adds
- a significant amount of data filters, including to filter by state, substance composition and chemical functionalities.
and components to
- easily import all of the ThermoML and FreeSolv archives.
- convert between property types (currently density <-> excess molar volume).
- select data points close to a set of target states, and substances which contain specific functionalities (i.e.select only data points measured for ketones, alcohols or alkanes).
More information about the new curation abilities can be found in the documentation.
New Features
Breaking Changes
- All of the
PhysicalPropertyDataSet.filter_by_XXX
functions have now been removed in favor of the new curation components. See the documentation for information about the newly available filters and more.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.1.2
A patch release offering minor bug fixes and quality of life improvements.
Bugfixes
- PR #254 : Fix incompatible protocols being merged due to an id replacement bug.
- PR #255 : Fix recursive
ThermodynamicState
string representation. - PR #256 : Fix incorrect version when installing from tarballs.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.1.1
A patch release offering minor bug fixes and quality of life improvements.
Bugfixes
- PR #249 : Fix replacing protocols of non-existent workflow schema.
- PR #253 : Fix
antechamber
truncating charge file.
Documentation
- PR #252 : Use
conda-forge
forambertools
installation.
See our installation instructions to get started with the new release!
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.1.0 OpenFF Evaluator
Introducing the OpenFF Evaluator! The release marks a significant milestone in the development of this project, and constitutes an almost full redesign of the framework with a focus on stability and ease of use.
See our installation instructions to get started with the new release!
Note: because of the extensive changes made throughout the entire framework, this release should almost be considered as an entirely new package. No files produced by previous versions of this will work with this new release.
Clearer Branding
First and foremost, this release marks the complete rebranding from the previously named propertyestimator to the new openff-evaluator package. This change is accompanied by the introduction of a new openff
namespace for the package, signifying it's position in the larger Open Force Field infrastructure and piplelines.
What was previously
import propertyestimator
now becomes
import openff.evaluator
The rebranded package is now shipped on conda
under the new name of openff-evaluator
:
conda install -c conda-forge -c omnia openff-evaluator
Markedly Improved Documentation
In addition, the release includes for the first time a significant amount of documentation for using the framework and it's features as well as a collection of user focused tutorials which can be run directly in the browser:
Beginner Tutorials:
- Tutorial 01 - Loading Data Sets
- Tutorial 02 - Estimating Data Sets
- Tutorial 03 - Analysing Data Sets
Intermediate Tutorials:
Support for RDKit
This release almost entirely removes the dependence on OpenEye thanks to support for RDKit almost universally across the framework.
The only remaining instance where OpenEye is still required is for host-guest binding affinity calculations where it is used to perform docking.
Model Validation
Starting with this release almost all models, ranging from PhysicalProperty
entries to ProtocolSchema
objects, are now heavily validated to help catch any typos or errors early on.
Batching of Similar Properties
The EvaluatorServer
now more intelligently attempts to batch properties which may be computed using the same simulations into a single batch to be estimated. While the behaviour was already supported for pure properties in previous, this has now been significantly expanded to work well with mixture properties.
For more information on the batching, see the documentation.
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
0.0.9 Multi-state Reweighting Fix
This release implements a fix for calculating the gradients of properties being estimated by reweighting data cached from multiple independant simulations.
A richer version of these release notes with live links to API documentation is available on our ReadTheDocs page
See our installation instructions.
Please report bugs, request features, or ask questions through our issue tracker.
Please note that this is a pre-alpha release and there will still be major changes to the API prior to a stable 1.0.0 release.
Bugfixes
- PR #143: Fix for multi-state gradient calculations.