Releases follow versioning as described in PEP440, where
majorincrements denote a change that may break API compatibility with previous
minorincrements add features but do not break API compatibility
microincrements represent bugfix releases or improvements in documentation
Dates are given in YYYY-MM-DD format.
Please note that all releases prior to a version 1.0.0 are considered pre-releases and many API changes will come before a stable release.
#844 Fixes a bug in which charge assignment caching incorrect charges between similar molecules with different atom orderings.
#845 Adds an exception when unimplemented virtual sites are present while writing to Amber files. Previously this was a silent error producing invalid files.
Interchange.minimizeand an underlying implementation with OpenMM.
#830 #834 Updates versioneer configuration for Python 3.12 compatibility.
#835 Most SMIRNOFF virtual site types are once again implemented in OpenMM with
openmm.LocalCoordinatesSiteas it is strictly the only proper option.
#827 Adds the
to_openmm, overriding a default value inherited from old versions of the OpenFF Toolkit.
to_openmm_systemmethods, which alias existing
to_openmmmethods that create
openmm.Systems. Existing methods are not removed or currently deprecated.
#828 Most virtual site types are implemented in OpenMM as types other than
openmm.LocalCoordinatesSitefor better human readability.
#828 Adds a notebook demonstrating, including visualization and running short simulations, several use cases of SMIRNOFF virtual sites.
#825 Adds a host-guest example derived from the SAMPL6 challenge.
#815 Most SMIRNOFF collections are now available via a public interface (
from openff.interchange.smirnoff import ...).
scale_12in non-bonded handlers.
#821 Fixes visualization issues described in #819.
#816 Ensures virtual sites are added at the end of an
openmm.System, after all atoms (i.e. not interlaced with molecules).
Interchange.to_gromacsand related methods now support
BondChargevirtual sites and four-site water models.
#797 Fixes a bug in which virtual site charge increments were not properly applied.
SMIRNOFFElectrostaticsCollectionnow applies virtual site charge increments.
FoyerElectrostaticsHandler.charges_without_virtual_sites, and makes
#802 Fixes some typos in the
Interchange.visualizecan now visualize virtual sites via the
get_positions_with_virtual_sitesnow supports more virtual site types.
BondChargevirtual sites are now implemented in OpenMM with
#791 Conventional four-site water models using
DivalentLonePairvirtual sites, like TIP4P and its variants, are now implemented in OpenMM with
#782 OpenMM is now an optional dependency at runtime or if using the
#789 Internally use vdWHandler 0.4 when storing SMIRNOFF data and creating OpenMM forces.
#789 Using plugins that create
openmm.NonbondedForcenow results in
openmm.NonbondedForce.NoCutoffwhen the topology is non-periodic and
vdWHandler.nonperiodic_method == "no-cutoff"
#781 Adds support for version 0.4 of the SMIRNOFF vdW section.
#780 Adds compatibility with Pydantic v2, using the existing v1 API.
Interchange.from_foyernow infers positions from the input topology, matching the behavior of
#778 Updates the Foyer migration guide.
Interchange.from_openmma class method as originally intended.
#667 Clarifies lack of support for (hard) cut-off electrostatics in OpenMM.
#763 Optionally adds virtual sites to
Interchange.visualizeand refactors virtual site position fetching into a common module.
#766 Fixes #765 in which the path to the GROMACS energy file argument was hard-coded in
#759 Improves internal handling of non-bonded settings in OpenMM export.
#579 Adds support for using the geometric mixing rule in OpenMM export.
#756 Updates example notebooks using a more consistent structure.
#754 Fixes a call to
pack_boxin the protein-ligand example.
#748 Resolves #747 in which exceptions inherited from
BaseExceptionagainst recommended practice. Exceptions now inherit from
InterchangeExceptionwhich itself inherits from
#707 Overhauls the
#731 Adds support for non-rectangular boxes in GROMACS export.
#707 Improves error handling when attempting to export non-rectangular boxes to Amber and LAMMPS.
#724 Fixes #723 in which some parameters in GROMACS files were incorrectly written.
#728 Fixes #719 in which GROMACS coordinate files were written incorrectly when containing more than 100,000 atoms.
#741 Improves JSON (de)serialization, particularly while parsing
#746 Fixes #745 in which
get_amber_energiesdid not properly turn off the switching function.
#746 Fixes #736 in which
#744 Removes binder links.
#721 Fixes #720 in which units were not checked when writing
[ settles ]in GROMACS files.
#703 Clarifies the experimental state of some features, which require opt-in to use.
pack_boxto return a
#716 Removes InterMol and ParmEd conversions, which were untested and not part of the public API.
#705 Fixes #693 in which 1-4 vdW interactions were not scaled when using
#702 Fixes #701 in which
Interchangewas needlessly re-exported in the high-level module.
#673 Adds a vectorized representation example.
#703 Adds a section to the user guide on accessing experimental functionality.
#706 Updates the mixed solvent example.
#708 Updates the protein-ligand example.
#708 Updates the ligand-in-water example.
.potentialsin constraint collections.
#677 Unifies parameters in Ryckaert-Bellemans torsions around lowercase values (
Interchange.to_gromacswhich writes both GROMACS topology and coordinate files at once.
#677 Improves support for Ryckaert-Bellemans torsions in parsers, writers, and drivers.
#681 Ports a PACKMOL wrapper from OpenFF Evaluator.
#692 Tags some features as experimental, requiring opt-in to access.
#680 Fixes #678 in which, in some cases, text wrapping in Amber files was mangled.
#680 Fixes #679 in which atom exclusion lists in Amber files were written incorrectly.
#685 Fixes #682 in which some 1-4 interactions in Amber files were counted incorrectly.
#695 Fixes #694 in which systems with no electrostatics did not check for plugins.
#639 Drops support for Python 3.8, following NEP 29.
#635 Moves and re-organizes the contents of
openff.interchange.interop.internal.gromacsto a new submodule
#662 Moves tests and un-tested modules from the public API to pseudo-private.
#655 Fixes #652 by avoiding writing a blank
RESIDUE_LABELsection in Amber files.
#635 Adds a dedicated class
GROMACSSystemto represent GROMACS state.
#635 Adds parsing and exporting between GROMACS files and
#651 Adds support for
SMIRNOFFCollectionplugins that depend on multiple
#654 Adds a module
openff.interchange.commoncontaining base classes for different types of
#659 Improves testing for
#649 Removes the use of
pkg_resources, which is deprecated.
#660 Moves the contents of
openff.interchange.foyerwhile maintaining existing import paths.
#663 Improves the performance of
#665 Properly write
[ settles ]directive in GROMACS files.
EnergyReportto more explicitly handle comparisons.
#583, #588, #603 Change some code paths of internal objects.
PotentialHandleris deprecated for
Interchange.handlersis deprecated for
PotentialHandler.slot_mapis deprecated for
Classes found in
openff.interchange.components.smirnoffare now in
Some arguments with
handlerin their names are replaced with
#583 Refactors the internals of
Interchange.from_smirnoffaway from the chain-of-responsibility pattern.
#601 Groups GROMACS improper torsion energies in the
#593 Fixes #592 in which OpenMM exports fail to create multiple non-bonded forces without a vdW handler.
#601 Fixes #600 in which some parameters were rounded to 6 digits in
#598 Fixes #597 in which residue names were incorrectly written to Amber files for single-residue systems.
#618 Fixes #616 in which positions of multiple molecules were mangled with
#618 Fixes #617 in which the return type of
#582 Allows OpenMM version to change in regression tests.
#622 Fixes passing some settings to OpenMM’s GBSA forces.
#569 Allows for quick importing
from openff.interchange import Interchange.
#558 Removes a safeguard against a long-since fixed toolkit bug when looking up
#574 Adds more specific subclasses of
#589 For convenience, per-parameter variables are now stored on
SMIRNOFFCollection.potential_parametersand its subclasses.
#591 Adds custom
SMIRNOFFCollections via a plugin interface.
#614 Adds support for GBSA parameters in SMIRNOFF force fields.
#586 #591 #605 #609 #613 Support custom SMIRNOFF sections with OpenMM.
#634 Improves documentation for SMIRNOFF plugins.
#610 Adds duplicate documentation on how to covert to OpenMM-styled unit/quantity objects.
#699 Updates the project’s README.
#400 Adds Python 3.10 to testing.
#561 #564 #572 #577 #580 #581 #590 #625 Update
#562 Removes the use of
#565 Removes duplicate code in favor of
#575 #576 Avoid installing old, incompatible versions of
#578 Updates some type annotations.
#619 Removes duplicate OpenMM virtual site construction code.
openmm.Platformcan be specified as an argument to the OpenMM driver.
#553 Adds a solvation example.
#545 List the central atom first in CVFF style dihedrals in LAMMPS export
Interchange.boxto define periodicity when exporting to PDB files.
This pre-release of Interchange includes improvements in metadata in the Amber export.
#536 Use atom names provided by the toolkit, or element symbols if not provided, in Amber export
#539 Fix case of single-molecule export to Amber with ambiguous residue information
#533 Add experimental example using
openmmforcefieldsto generate ligand parameters
#524 Add experimental example using
from_openmmto import a system prepared with OpenMM tools
This pre-release of Interchange includes performance improvements in exporters.
#519 Improve runtime of
Interchange.to_topby bypassing JAX broadcasting
#520 Improve runtime of
Interchange.to_topby using a set to track constrained atom pairs
#519 Exports to array representations no longer use
The 0.2.x line of Interchange targets biopolymer support alongside version 0.11.0 of the OpenFF Toolkit. Due to the scope of changes, versions 0.2.0 and newer will not generally be compatible with the 0.1.x line or versions of the OpenFF Toolkit less than 0.11.0. In lieu of a changelog entry for this release, below is a brief summary of the current capabilities of Interchange. Future releases will continue with conventional changelog entries.
Imports from OpenFF Toolkit objects:
Interchange.from_smirnoff, consuming SMIRNOFF force fields and OpenFF
WBO-based bond order interpolation of valence parameters
Imports from MoSDeF objects:
Interchange.from_foyerExports to OpenMM objects:
Exports to GROMACS files:
Exports to AMBER files (EXPERIMENTAL):
Exports to LAMMPS files (EXPERIMENTAL):
Exports to JAX arrays:
PotentialHandlersubclass to get a JAX array of force field or “system” parameters associated with that handler.
Known issues and limitations:
Residue hierarchy information may not be preserved in GROMACS and AMBER exports
Some operations are slow and not yet optimized for performance, including
Interchange.from_smirnoff, particularly for large systems with many valence terms
Interchange.to_top, particularly for systems with polymers, including proteins
During development of this release, the default branch has been renamed from
This pre-release of OpenFF Interchange includes interoperability and documentation improvements.
This release supports Python 3.8 and 3.9; it may be compatible with older and newer versions may but is not guaranteed.
#357 Add more type annotations
#319 Add Foyer showcase (silica nanoparticle solvated in an organic species)
#352 Fix some typos in docstrings
_OFFBioTopconstructor now requires an
mdtraj.Topologypassed through the
#363 This project is no longer tested on Python 3.7
#351 Fix setting byte order while processing bytes to NumPy arrays
#354 Fix positions processing in
e176033Fixes nonbonded energies not being parsed while reporting energies from the OpenMM drver.
This pre-release of OpenFF Interchange includes documentation improvements and some reliability and testing improvements.
#317 Partially avoids parameter clashes in
#234 Switch documentation them theme to
#309 Improves the user guide
#190 Adds parameter splitting example
#332 Fixes export of multi-molecule systems to Amber files
#327 Skips unavailable drivers instead of erroring out
#246 Improves exports of non-bonded settings to Amber files
#333 Makes beta/RC tests run automatically
This pre-release of the OpenFF Interchange adds preliminary support for exporting to some file formats used by the Amber suite of biomolecular simulation programs and some support for conversions from InterMol objects. Stability, reliability, and feature completeness of these new features is not guaranteed - please report bugs or any surprising behavior.
#310 Adds functions that run all energy drivers at once. See
#312 Adds conversion from InterMol
#316 Adds an experimental GROMACS parser.
#230 Adds experimental exports to some Amber files (
#308 Fixes a bug involving duck-types NumPy types.
#322 Fixes a bug in which the Amber driver would not work with some mainline OpenFF force fields.
This pre-release of the OpenFF Interchange adds preliminary support for virtual sites and bond order-based parameter interpolation. Stability and reliability with these new features is not guaranteed - please report bugs or any surprising behavior.
Note: This release is not compatible with versions of OpenMM older than 7.6.
#252 Improves error handling in cases of unassigned valence terms.
#228 Adds support for bond-order based interpolation of harmonic bond parameters.
#263 Adds support for bond-order based interpolation of periodic torsion parameters.
#244 Adds preliminary support for internally storing virtual sites following the SMIRNOFF specification.
#253 Adds support for virtual sites modifying partial charges via charge increments.
#248 Adds preliminary support exporting systems with virtual sites to GROMACS.
#268 Adds preliminary support exporting systems with virtual sites to OpenMM.
#300 Adds a GROMACS
PotentialKeyobjects as keys instead of
#267 Adds docstrings for most functions and classes in the source code.
#285 Adds an example using a SMIRNOFF force field with a liquid-phase mixture of organic compounds.
#286 Updates the README file.
#271 Adds automatic API documentation via
#269 OpenEye toolkits are now used in automated testing by default.
#281 Refactors the test suite into unit tests, interoperability tests, and energy comparison tests.
#289 Improves the Amber energy driver.
#292 Improves some ParmEd conversions.
mypyand updates its configuration.
The is an initial pre-release of the OpenFF Interchange.