diff --git a/docs/releasehistory.md b/docs/releasehistory.md index 1e1378b9b..a139578d5 100644 --- a/docs/releasehistory.md +++ b/docs/releasehistory.md @@ -6,22 +6,21 @@ Releases follow the `major.minor.micro` scheme recommended by [PEP440](https://w * `minor` increments add features but do not break API compatibility * `micro` increments represent bugfix releases or improvements in documentation -## Current development - -### API-breaking changes +## 0.19.0 ### Behavior changes -- [PR #2225](https://github.com/openforcefield/openff-toolkit/pull/2225): If a ParameterType object has attributes with `None` values, the `to_dict` method will now stringify them into `"None"`. Note that this is required to preserve the behavior of `to_xml` in recent versions of `xmltodict`. + +- [PR #2225](https://github.com/openforcefield/openff-toolkit/pull/2225): If a ParameterType object has attributes with `None` values, the `to_dict` method will now stringify them into `"None"`. Note that this is required to preserve the behavior of `to_xml` when using `xmltodict` version 1.0.3 and greater. ### Bugfixes - [PR #2225](https://github.com/openforcefield/openff-toolkit/pull/2225): Fixes [Issue 2150](https://github.com/openforcefield/openff-toolkit/issue/2150) in which `ForceField.to_string()`/`to_file()` would fail to round-trip `VirtualSite` parameters with `None`-valued attributes (such as `outOfPlaneAngle`/`inPlaneAngle` on `BondCharge` sites) when using `xmltodict>=1.0.3`. -### New features ### Improved documentation and warnings - [PR #2156](https://github.com/openforcefield/openff-toolkit/pull/2156): Update `ForceField.label_molecules` docstring. +- [PR #2185](https://github.com/openforcefield/openff-toolkit/pull/2185): Update `Molecule.assign_partial_charges` docstring to have examples of using AshGC. - [PR #2214](https://github.com/openforcefield/openff-toolkit/pull/2214): Update examples to use Sage 2.3.0, use RDKit and OpenFF NAGL, and skip optionally installing OpenEye Toolkits. ### Miscellaneous improvements @@ -30,6 +29,7 @@ Releases follow the `major.minor.micro` scheme recommended by [PEP440](https://w - [PR #2170](https://github.com/openforcefield/openff-toolkit/pull/2170): Consolidate Pytest configuration, improve some internal tests. - [PR #2201](https://github.com/openforcefield/openff-toolkit/pull/2201): Use `setuptools-scm` for version handling. - [PR #2226](https://github.com/openforcefield/openff-toolkit/pull/2226): Add reruns to failing notebook tests to (hopefully) avoid sporadic failures. + ## 0.18.1 ### Behavior changes diff --git a/openff/toolkit/topology/molecule.py b/openff/toolkit/topology/molecule.py index fee8216df..285e228e3 100644 --- a/openff/toolkit/topology/molecule.py +++ b/openff/toolkit/topology/molecule.py @@ -2573,6 +2573,7 @@ def assign_partial_charges( Supported charge methods vary from toolkit to toolkit, but some supported methods are: + - ``"openff-gnn-am1bcc-1.0.0.pt"``, codename "AshGC" - ``"am1bcc"`` - ``"am1bccelf10"`` (requires OpenEye Toolkits) - ``"am1-mulliken"`` @@ -2583,7 +2584,9 @@ def assign_partial_charges( in the charge calculation. Instead, any conformers needed for the charge calculation are generated by this method. If this behavior is undesired, specific conformers can be provided via the - ``use_conformers`` argument. + ``use_conformers`` argument. These options do not apply to charges + generated from graph-convolutional neural networks (GCNNs) like + AshGC, which do not use conformers at all. ELF10 methods will neither fail nor warn when fewer than the expected number of conformers could be generated, as many small @@ -2597,6 +2600,8 @@ def assign_partial_charges( For more supported charge methods and their details, see the corresponding methods in each toolkit wrapper: + - :meth:`NAGLToolkitWrapper.assign_partial_charges \ + ` - :meth:`OpenEyeToolkitWrapper.assign_partial_charges \ ` - :meth:`RDKitToolkitWrapper.assign_partial_charges \ @@ -2606,6 +2611,11 @@ def assign_partial_charges( - :meth:`BuiltInToolkitWrapper.assign_partial_charges \ ` + For more on some charge methods supported by SMIRNOFF force fields such as Sage, + see the following sections of the SMIRNOFF specification: + + .. _NAGLCharges: https://openforcefield.github.io/standards/standards/smirnoff/\ + #naglcharges-use-a-specified-nagl-model-file-for-charge-assignment .. _ToolkitAM1BCC: https://openforcefield.github.io/standards/standards/smirnoff/\ #toolkitam1bcc-temporary-support-for-toolkit-based-am1-bcc-partial-charges @@ -2633,6 +2643,11 @@ def assign_partial_charges( Examples -------- + Assign AshGC charges to a long alkane: + + >>> c200 = Molecule.from_smiles(200 * "C") + >>> c200.assign_partial_charges("openff-gnn-am1bcc-1.0.0.pt") + Generate AM1 Mulliken partial charges. Conformers for the AM1 calculation are generated automatically: