0.3.0
Pre-releaseThe 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.