* Support virtual sites and multiple SMIRNOFF force fields
* Put test files where tests can actually find them
* Clean up some changes in template_generators.py
* Clean up virtual site permutation handling in test cases
* Unfinished draft
* Allow specifying multiple force fields
* Support constraints and virtual sites
* Add more tests for constraints
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Run tests on OpenMM 8.5.0 beta since we need ForceField changes
* Need openmm_dev channel
* Use correct channel names (openmm_rc for beta)
* Minor improvement to torsion handling, fix incorrect comment
* Basic test for proteins
* Default to unconstrained variant of force field when given name
* Test molecule is unstable due to vsite/H overlap
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update vsite tests with more varieties of molecules
* Autoformatter
* Update openmmforcefields/generators/template_generators.py
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
* 1-4 exception check (not vsites) now uses non-zero scalings
* Use preset list of known force field names, update documentation
* Reduce test set size after Interchange cache behavior change
* Update openmmforcefields/tests/test_template_generators.py
Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com>
* Water constraints test also checks TIP3P inside openff_unconstrained
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix error message if preset force field file can't be located
* Update CHARMM force field scripts (see openmm/openmm#5181)
* Change caching behavior so molecules must be added
* Regenerate CHARMM force fields
* Test regenerated force fields on OpenMM 8.5.0 beta
* Refactor multi-residue molecule test
* Put back CHARMM files that didn't change other than generation date
* Add test with virtual site frame atoms spanning residue
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add test file with many amino acids
* Run tests on release version of OpenMM instead of beta
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com>
* Support virtual sites and multiple SMIRNOFF force fields
* Put test files where tests can actually find them
* Clean up some changes in template_generators.py
* Clean up virtual site permutation handling in test cases
* Unfinished draft
* Allow specifying multiple force fields
* Support constraints and virtual sites
* Add more tests for constraints
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Run tests on OpenMM 8.5.0 beta since we need ForceField changes
* Need openmm_dev channel
* Use correct channel names (openmm_rc for beta)
* Minor improvement to torsion handling, fix incorrect comment
* Default to unconstrained variant of force field when given name
* Test molecule is unstable due to vsite/H overlap
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update vsite tests with more varieties of molecules
* Autoformatter
* Update openmmforcefields/generators/template_generators.py
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
* 1-4 exception check (not vsites) now uses non-zero scalings
* Use preset list of known force field names, update documentation
* Reduce test set size after Interchange cache behavior change
* Update openmmforcefields/tests/test_template_generators.py
Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com>
* Water constraints test also checks TIP3P inside openff_unconstrained
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix error message if preset force field file can't be located
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com>
* Updated files for water models and ions
* First attempt at update of CHARMM force field to July 2024 release
* Checked which excluded files that previously caused problems could now
be included
* Checked which included files caused inconsistencies or other problems
and needed to be excluded
* The protein-only force field didn't exist in the ffxml directory so I
removed protein.yaml (not sure if this is desired)
* Added toppar_ions_won.str to the water models (a citation was present
but the file was missing)
* Updated some missing citations
* Previously, there were various files for model compounds that were
split out, but these XML files didn't have any residues in them and only
had a few random atom types (or were entirely empty other than containing
irrelevant references). These have been removed.
* Excluded an ion due to residue name collision
* Update main README
* Increased flexibility of CHARMM conversion
* Added functionality to split out residues from selected CHARMM
parameter files
* Allow specifying "fixes" to the generated XML files: can provide XPath
to find elements, and a tree of XML elements to append as children to
those found
* Work around some issues in ParmEd
* Copy improper objects before compression to work around ParmEd bug
* Add an XML fix for harmonic improper dihedrals to account for
periodicity of the improper angle (to support equilibrium angles of pi)
* Handle impropers directly instead of relying on ParmEd
* Adds functionality to output impropers in a way that should be
compatible with their explicit specification in the CHARMM force field
files
* Ensures that impropers spanning patch and residue atoms will not be
neglected
* Ensures that duplicate improper entries will not be written to split
files
* Get compatible patches for patches during improper processing
An improper in a patch with some atoms in the patch might need to find
those atoms in a residue, but alternatively, the atoms might be in
another patch that also modified the residue, so search the residues
compatible with a patch for patches compatible with the residue during
improper processing.
* Split out CGenFF parameters to avoid conflicts
* Restore charmm36_protein for basic protein-only testing
* Initial implementation of new CHARMM/OpenMM test script
Goal is to replace test_charmm.py and energy.py with something cleaner
and more flexible. Can select CHARMM (if installed), OpenMM-CHARMM,
ParmEd-CHARMM, and OpenMM-FFXML modes and compare energies and forces
across force groups. Can define tests in a directory containing a
test.yaml file instead of having things hardcoded. Plan to port
remaining tests over.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Corrections: typo and line too long caught automatically
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Another attempt at proper improper handling
* Uses a force field script to correctly insert impropers. Should
handle all cases except for ambiguous equivalent atoms (like OT1/OT2).
* Removed some miscellaneous test code from the conversion script since
the test script handles this more thoroughly.
* Update and reorganization of testing framework
* New test script to test against CHARMM, OpenMM (reading a PSF) and
OpenMM (reading FFXML).
* Converted old tests to new test format.
* Several new tests (amino acids and simple peptides for validation).
* Started reworking water box PSF generation as this was not placing the
correct charges in the PSF files, leading to tests results that were
not meaningful.
* Cleanup of test files
* Remove files left over from test system generation that are not being
used by tests
* Remove some old test scripts whose behavior has been incorporated into
new test script
* Note: 4- and 5-site water tests will be restored once it is determined
how to generate the PSFs correctly with the virtual sites
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Read coordinates from file instead of standard input for performance
* Extended water tests to 4- and 5-site water boxes
* Use CHARMM to generate correct PSFs since ParmEd doesn't
* Update test script to update virtual site positions in OpenMM and skip
testing virtual site forces (since CHARMM and OpenMM report them
differently but accumulate them on the atoms the same way).
* Added DOPC/water box (lipid test case)
* Cleanups to splitting and add DISU atom types
* Remove extraneous debugging statements
* Formatting and linter fixes
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fixed nucleic acid FFXML generation and added tests
* Add tests for protein-only XML file
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Compatibility fixes for generating multiple template versions
* Added tests for Drude force field
* Updated readme file for test cases
* Add CHARMM parameter set files necessary to run tests
* Update README file, add standard conversion/test run scripts
* Update generated force field files
* Fixes for nucleic acid patches in split files
* Update support to run CHARMM in Docker locally (not CI)
* Commit 1 to fix strange case-sensitivity problem
* Commit 2 to fix strange case-sensitivity problem
* Fix check to omit anisotropy script if it is unneeded
* Add CI test for CHARMM in Docker
* Point to development OpenMM and correct CI image
* Update devtools/conda-envs/test_charmm_env.yaml
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
* Pin to specific Ubuntu version instead of latest
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
* test if CI is green
* github has removed macos-12 runners
* something is weird with the ambertools build on macos-13
* test new ambertools 23 build
* try older build
* test new ambertools build
* bump ci
* update the openmm versions we test
* don't test on intel macs
* re-enable gaff
* run espaloma and gaff tests
* gaff has two fs michael
* Use 8.1.2rc1
* Update linters
* Remove Espaloma tests
* Apply suggestions from code review
Co-authored-by: Iván Pulido <2949729+ijpulidos@users.noreply.github.com>
* working on parmchk output
* fix pytest warnings
* Migrate from pkg_resources to importlib_resources
* Remove shipping gaff/ffxml and read everything from parmchk2
* make sure we use older openmm version for testing
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* test on ci now
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* decided to keep shipping the xmls
* cleaned things up, gave a better name to the set we track gaff atom types
* Update openmmforcefields/generators/template_generators.py
* updated change log
* Added note about how we might remove openmmforcefields/ffxml/amber/gaff/ffxml in a future release
---------
Co-authored-by: Matthew W. Thompson <mattwthompson@protonmail.com>
Co-authored-by: Iván Pulido <2949729+ijpulidos@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* re-enable gaff
* run espaloma and gaff tests
* gaff has two fs michael
* Use 8.1.2rc1
* Update linters
* Remove Espaloma tests
* Apply suggestions from code review
Co-authored-by: Iván Pulido <2949729+ijpulidos@users.noreply.github.com>
* Use Intel macOS runners
* check if older macos works
* test all the macos versions
* see if rdkit is the issue
* Drop macOS 13
* Typo/fix
* Update dependencies
---------
Co-authored-by: Matthew W. Thompson <mattwthompson@protonmail.com>
Co-authored-by: Iván Pulido <2949729+ijpulidos@users.noreply.github.com>
* Temporarily remove GAFF because of parmchk2 issues
* Drop OpenEye from tests
* Drop automerge action
* Update Python and AmberTools versions, run tests in parallel
* Remove Espaloma from test environment
* Remove Espaloma CI
* Refactor some tests to enable skipping GAFF
* Skip SPC/E test when iterating over small molecule force fields
* Update default force field in `SystemGenerator`
* Streamline testing
* Update testing setup
* Mask CodeCov upload failures
* Add release notes
* Scattered fixes
* Pin AmberTools
* Skip non-small molecule force fields at test time
* Always run tests, even if OpenEye is not licensed
* OPC
* Update Python versions
* Trim more force fields at test time
* Parametrize tests
* Revert "Parametrize tests"
This reverts commit 5b37af526f.
* Debug, comments
* Run all tests
* Testing espaloma in different workflow
* pinning dgl version
* Change name of workflow
* Testing espaloma only with latest openff toolkit
* using pytest and fixtures
* Marking espaloma tests and parametrizing
* Running espaloma tests in workflow
* Fixing call in test
* Cache test should be inside context manager
* Remove support for older openff toolkit (<0.11)
* Specifying root path for tests
* testing without the /
* fixing CI yamls
* Mark espaloma tests
* need argument for tests
* remove trailing newline
---------
Co-authored-by: Iván Pulido <2949729+ijpulidos@users.noreply.github.com>
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
* conversion script from openmm #3773
* add converted ions from ambertools-22.0-py38h6177452_1
* OPC and OPC3 water (without ions) from openmm #3654
* move opc waters
* fix typo
* make opc and opc3 standard files by combining water and ions
* Fix paths
* Fiddle with paths again
* Bring in openff-amber-ff-ports by default
* Move `opc.xml` and `opc3.xml`
Co-authored-by: Alex Izvorski <aizvorski@gmail.com>
* make sure we don't install the newest toolkit by mistake
* make sure we don't pull in a really old version of the toolkit
* forgot to add a verb there
* Start to make internals compatible with both unit packages
* Try different logic
* Improve logic in test
* Fix some tests
* Fix
* Fix
* Better units logic in tests
* Remove temporary code
* That's too semantic a variable name
Co-authored-by: Matthew W. Thompson <mattwthompson@protonmail.com>
* Ensure 0.11.0 RC version of toolkit is installed
* Possible fix to finish #191
* Try to ensure bash args thing is passed through
* Naive unit refactor
* Work through tests
* Update CI matrix
* Use mamba for development
* Debug, add boilerplate .gitignore
* Fix syntax
* make sure the package didn't get installed before we install it
* Do not install Espaloma
* Fix some unit registries in tests
* install espaloma, but remove openmmforcefields
* add back in espaloma
* switch to micromamba
* Explicitly move ffxml sources into entry point
* Remove symlinking
* Add boilerplate `.gitignore`
* Update package installation in CI
* Fix finding Amber files in test
* Soft import whatever units module is used by the toolkit
* Switch to micromamba for setting up conda environment
Add boilerplate `.gitignore` file
Do not pull from non-standard labels
Install instead of update
Try to figure out why if: {{ false }} still triggers
Syntax?
Tinker
Bring in (full) mamba
Bash thing everywhere
Bring down old toolkit
Do not present un-loadable ff14SB port as available
More pins
* Fix YAML syntax
* Use pip
* More fixes
* No particles
* Fix unit serialization
* Fix Atom.element calls
* Update some tests
* Clean up un-used imports
* Fix more tests
* Fix more tests
* Exclude Python 3.10 on macOS
* Skip ff14SB being treated as a small molecule
* Fix test
* Track duration of longest 20 tests
* Update action versions
* Try to fix exclusions in CI matrix
* Fix pathing in Amber conversion
* Run `pyupgrade --py38-plus`
* Try directly uploading coverage report
* Fix syntax
* Add back some tests
* Debug
* Drop `pytest-xdist` arg
* Fiddle with path
* Just try to get stuff passing
* Try uploading again
* Switch back to codecov
* Simply coverage reporting
* Allow 0 coverage
* Simplify coverage arguments
* Add `__init__.py` in `/tests/` submodule
https://stackoverflow.com/a/60579142
* Add `__init__.py` in `/tests/` submodule
https://stackoverflow.com/a/60579142
* Simplify coverage arguments
* Add back durations argument
* Apply suggestions from code review
* only upload report if it is not scheduled
Co-authored-by: Matthew W. Thompson <mattwthompson@protonmail.com>
* Switch to micromamba for setting up conda environment
Add boilerplate `.gitignore` file
Do not pull from non-standard labels
Install instead of update
Try to figure out why if: {{ false }} still triggers
Syntax?
Tinker
Bring in (full) mamba
Bash thing everywhere
Bring down old toolkit
Do not present un-loadable ff14SB port as available
More pins
* Drop 3.7, add 3.10
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
* Update ci.yaml
* kill CI when another job is triggered on the same PR and don't upload codecov on scheduled runs
* use cuda shim
* update torch
* update *py*torch