Releases: choderalab/perses
0.10.3
What's Changed
Enhancements
- Print perses version on startup by @mikemhenry in #1176
- Support pymbar 3 & 4 by @mikemhenry in #1173
- Store initial and final topologies for all phases -- small molecule pipeline by @ijpulidos in #1210
Documentation
- Added MPI example with dipeptide mutation by @ijpulidos in #1228
- Update comments in
RESTCapableHybridTopologyFactory
doc string by @zhang-ivy in #1189 - Clean examples -- CLI protein-ligand example for Tyk2 by @ijpulidos in #1223
Bug Fixes
- Fix spectator support by @ijpulidos in #1233
- Realtime analysis interval to default to checkpoint interval by @ijpulidos in #1227
- Correctly set cutoff for
CustomNonbondedForce
inHybridTopologyFactory
when using a non-default cutoff distance. by @mikemhenry in - Backport openfe fixes for context deletion by @mikemhenry in #1229
Testing/CI/Packaging
- Run CI on new 0.10.x branch by @mikemhenry in #1212
- Use python executable from env by @mikemhenry in #1174
- Remove example testing by @mikemhenry in #1214
- CI miscellaneous fixes by @ijpulidos in #1217
- Improve docker building by @mikemhenry in #1200
Full Changelog: 0.10.2...0.10.3
0.10.2
Bugfix release.
Enhancements
- Added support for reading input files (ex yaml, sdf, pdbs) from AWS, GCP, and Azure. See the documentation for cloudpathlib for how to setup authentication. Currently only reading the yaml from S3 is unit tested (ie
perses-cli --yaml s3://perses-testing/template_s3.yaml
), but other cloud providers and input files should work.AzureBlobPath
,S3Path
andGSPath
are supported URI endpoints. Please report any issues on our issue tracker! by @mikemhenry in #1073 CUDA
platform was hardcoded in geometry engine, generating performance issues by not clearing openmm contexts correctly. Fixed by defaulting to using the fasterCPU
platform (for the geometry engine) and explicitly deleting context variables after they are used. by @ijpulidos in #1091- Set aromatic draw style to
OEAromaticStyle_Circle
in atom mapper rendering by @mikemhenry in #1103 - Ligands with atoms changing constrained status were not being handled by mapping proposal. Atoms in bonds that change constrained/unconstrained to unconstrained/constrained during the transformation are now demapped. by @ijpulidos in #1125
- Now that upstream
openmmtools
is storing velocities on checkpoint, the small molecule transformation pipeline does not reassign velocities on resume by default. Instead, the velocities are read from the checkpoint file. by @ijpulidos in #1133 - CLI workflow for replica exchange now uses the faster
LangevinMiddleIntegrator
via theLangevinDynamicsMove
. Tests were updated to reflect the changes. by @ijpulidos in #1138 - Add opencontainers image-spec to
Dockerfile
by @SauravMaheshkar in #1139 - Updated to support openff-toolkit 0.11, which included API-breaking changes. by @jchodera in #1128
- Make solute-only trajectory writing optional. This option is controlled by the
atom_selection
option in the yaml file. The syntax uses the MDTraj selection syntax, e.g.not water
@mikemhenry in #1185 - Users can now specify solvent model for simulations using the
solvent_model
field in the input YAML file. Supported values aretip3p
,spce
,tip4pew
,tip5p
, andswm4ndp
(polarizable) by @ijpulidos in #1202
Documentation
- Document setting
ionic_strength
inexamples/new-cli/template.yaml
by @mikemhenry in #1104 - Add reproducible version of COVID Moonshot example anyone can run as an example by @jchodera in #1145
- Speed up RTD env generation by @mikemhenry in #1105
- Fix documentation string for
ProteinMutationExecutor
, usingFalse
forreassign_velocities
parameter. by @ijpulidos in #1169 - Document how to control the log level in the CLI by @mikemhenry in #1198
Bug Fixes
- Fixes bug where if a
:
was in a key, we could not override the argument in our perses-cli. @mikemhenry in #1062 - Resolves #1157 objects serialized with
utils.data.serialize
now will be compressed withbzip2
orgzip
depending on file name (.gz
and.bz2
, respectively) by @mikemhenry in #1163 - Fixes for new openmmtools 0.23.0 by @mikemhenry in #1203
Testing/CI/Packaging
- add python 3.10 to CI by @mikemhenry in #1080
- skip broken tests by @mikemhenry in #1074
- Feat/fix ssl gpu error by @mikemhenry in #1095
- Previously the keyword argument
save_freq
invalidate_endstate_energies_md
was not functional and the value of250
steps was hard coded. Now,save_freq
works and has a default value of250
steps. by @mikemhenry in #1101 - fix issue with test asset name by @mikemhenry in #1102
- Examples and benchmarks template input files now run vacuum, solvent and complex phases in order. by @ijpulidos in #1122
- Add openmm 8 to testing matrix by @mikemhenry in #1124
- Fix resume tests to use new CLI (resolves issue #1150) by @mikemhenry in #1151
- Avoid testing non-examples in CI by @ijpulidos in #1164
- only run dev with newest python version by @mikemhenry in #1165
- remove outdated recipe by @mikemhenry in #1159
- update release process by @mikemhenry in #1162
- add env caching to CI by @mikemhenry in #1178
- Skip failing openmm 8 tests by @mikemhenry in #1186
- Add small molecule repex consistency tests by @zhang-ivy in #1065
- Fix RESTTopologyFactory test by @zhang-ivy in #1188
- enable merge queue by @mikemhenry in #1206
- Using default online analysis interval in GPU repex tests by @ijpulidos in #1207
New Contributors
- @SauravMaheshkar made their first contribution in #1139
Full Changelog: 0.10.1...0.10.2
Benchmark data
Tyk2
From the latest data set in https://github.com/openforcefield/protein-ligand-benchmark (please note that it is not directly comparable to previous releases results)
0.10.1
Bugfix release.
Bugfixes
- Bug when trying to use the new
RESTCapableHybridTopologyFactory
in the small molecule pipeline -- fixed by not specifying a protocol, hence allowing theHybridCompatibilityMixin
object to automatically handle it. Issue #1039 (PR #1045) - Bug in
create_endstates_from_real_systems()
-- fixed by setting the global parameters for valence forces to the appropriate endstate. Also added tyk2 transformation test. Issue #1041 (PR #1050). - Bug in the
RESTCapableHybridTopologyFactory
lifting expression -- fixed by separating the cutoff distance from the lifting distance. (PR #1046) - Fix bug in
RelativeFEPSetup
that prevents user from controlling the padding when solvating for solvent phase calculations. (PR #1053) - Bug in
test_unsampled_endstate_energies_GPU
andtest_RESTCapableHybridTopologyFactory_energies_GPU
-- fixed by removing unit-lessrest_radius
argument and using default instead. (PR #1057)
Enhancements
- Add flag
transform_waters_into_ions_for_charge_changes
for disabling the introduction of a counterion for charge changing transformations. Issue #1004 (PR #1030) - Perses output yaml file now adds timestamp and ligands names information (for old and new ligands). Issue #998 (PR #1052).
- Protein mutation repex internal consistency tests to ensure convergence. So far only testing neutral transformations. Issue #1044 (PR #1054).
Benchmark data
Benchmarks run with small molecule force field (ff) and protein ff, openff-2.0.0 and ff14SB, respectively.
Tyk2
Cdk2
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.
0.9.5 Citation Release
What's Changed
- Add citation by @zhang-ivy in #948
- Fix citation file by @zhang-ivy in #952
- Release 0.9.5 by @mikemhenry in #950
Benchmarks
Note: This release is to make it easier to cite the perses
software package. See the v0.9.4 release for current benchmarking data.
Full Changelog: 0.9.4...0.9.5
Release 0.9.4
What's Changed
- Stop uploading coverage reports on nightly CI runs by @mikemhenry in #932
- Use energy and sampler context caches in simulations by @ijpulidos in #938
- Cleanup and bugfixes for FAH generator for small molecule transformations by @jchodera in #909
- Fixes to visualization module by @zhang-ivy in #944
- Add CLI that creates dummy output files and validates input by @mikemhenry in #934
- Release 0.9.4 by @ijpulidos in #941
Full Changelog: 0.9.3...0.9.4
Benchmark data
Benchmarks run with small molecule force field (ff) and protein ff, openff-2.0.0
and ff14SB
, respectively.
Release 0.9.3
See change log for details.
What's Changed
- Fix endstate validation handling in PointMutationExecutor by @schallerdavid in #866
- Remove hacks now that upstream has updated packages by @mikemhenry in #868
- Removed travis CI config file by @mikemhenry in #871
- Fix naked charge padding by @zhang-ivy in #877
- Fix stochastic failures in RepartitionedHybridTopologyFactory test by @zhang-ivy in #878
- Running examples with GPU using docker container. by @ijpulidos in #874
- Use mamba instead of conda by @mikemhenry in #850
- Test new python versions by @mikemhenry in #880
- Simplify
_construct_atom_map
for protein mutations by @zhang-ivy in #860 - use beta of openeye toolkit by @mikemhenry in #887
- Add GPU testing to our CI by @mikemhenry in #858
- Allow
generate_dipeptide_top_pos_sys
to acceptdemap_CBs
by @zhang-ivy in #892 - add installation instructions to readme by @mikemhenry in #893
- Remove unused argument 'implicitSolvent' from SystemGenerator in tests by @mikemhenry in #894
- Disable CI failure if codecov fails by @mikemhenry in #898
- Only support openmm 7.6 by @mikemhenry in #896
- update CI to test release candidate by @mikemhenry in #787
- Fix box vector handling in topology proposal by @zhang-ivy in #922
- Fix atom masses in vanilla HybridTopologyFactory by @zhang-ivy in #918
- Fix water selection for counterion by @zhang-ivy in #905
- Add scripts to perform automated benchmarking against Open Force Field protein-ligand benchmarks by @ijpulidos in #924
- Update contributors list by @jchodera in #930
- Release/0.9.3 by @mikemhenry in #925
Benchmark Data
-
tyk2 system, using
openff-2.0.0
: -
mcl1 system, using
openff-2.0.0
:
New Contributors
- @schallerdavid made their first contribution in #866
Full Changelog: 0.9.2...0.9.3
Release 0.9.2
See change log for details.
Release 0.9.1
See change log for details.