0.10.0
New command line interface (CLI), many enhancements for the API (especially the PointMutationExecutor
) and improved testing.
Bugfixes
- Bug in geometry engine's
_determine_extra_torsions
: whentopology_index_map
, which contains the atom indices involved in a particular torsion, is None -- fixed by not trying to add that torsion whentopology_index_map
isNone
. (#855) - Bug generated by changes upstream in the
openmm
package -- default method for calculating solvent padding changed, which resulted in smaller boxes. Fixed by adding more padding to the simulation box, it is now 1.1 nm. Openmm issue #3502. Perses issue #949 (#953) - Fixed energy bookkeeping in test of
HybridTopologyFactory
when a ring amino acid is involved in transformation. (#969) - Avoid changing the global context cache behavior on module imports. Issue #968 (#977).
- Benchmark free energy plots now shift data to experimental mean. (#981)
- Skip introduction of counterion for charge changing mutations in vacuum and fix typo in the phase name in
test_resume_protein_mutation_no_checkpoint
(#991). - Recovered logging capabilities respecting the
LOGLEVEL
environment variable. Issue #1018 (#1032).
Enhancements
- Improved continuous integration (CI) performance. (#961)
PointMutationExecutor
now accepts both solute and solvated PDBs (previously only accepted solute PDBs). (#967)- Tests and examples are now using
openff-2.0.0
force field instead ofopenff-1.0.0
. (#971) - Use names (instead of indices) for fetching the force components of a system, avoiding issues with force reordering upstream in
openmm
. Issue #993 (#976 and #1007) - Increase stability of simulations by decreasing the default hydrogen mass to 3 amu in the
PointMutationExecutor
. Issue #982 (#983). - Improved CI tests on both CPU and GPU. Better handling of temporary directories, closing opened reporter files when tests are finished, and using same environments for CPU and GPU (#985 #989 #1012)
- Performance increase when retrieving the old or new positions from the hybrid positions. Issue #1005 (#1020)
- Use of unique names for force components in
HybridTopologyFactory
(#1022). - New function
create_endstates_from_real_systems()
for creating unsampled endstates for currently supported hybrid topology factories (#1023). - Improve the readability and usability of
PointMutationExecutor
and updates how parameters are specified for solvation (#1024).
New features
- Introduce
RESTCapableHybridTopologyFactory
. Hybrid factory that allows for REST scaling, alchemical scaling, and 4th dimension softcore. So far, only working for protein mutations (#848 #992). - New perses command line interface (CLI)
perses-cli
usingclick
. Allowing a more friendly interface for users. It tests the running environment, sets the platform for the simulation and allows interactive overriding arbitrary options in the input YAML file. Formerperses-relative
CLI entry point is now deprecated (#972 #1021 #1027). - Support for handling charge changes (by transforming a water into a counterion) for both protein mutations and ligands transformations. #862 (#973).
- Hybrid topology factory class name can now be specified using the
hybrid_topology_factory
parameter in the input YAML file (#988). - Introduce
unsampled_endstates
boolean option in input YAML file, which enables/disables creation of unsampled endstates with long-range sterics correction. Issue #1033 (#1037).
Benchmark data
Benchmarks run with small molecule force field (ff) and protein ff, openff-2.0.0 and ff14SB, respectively. Tyk2
system.
Obtained peak performance of ~360 ns/day on A100 GPU.