Skip to content

0.7.0 Charge Increment Model, Proper Torsion interpolation, and new Molecule methods

Pre-release
Pre-release
Compare
Choose a tag to compare
@j-wags j-wags released this 22 Jun 14:14
9ba2299

0.7.0 - Charge Increment Model, Proper Torsion interpolation, and new Molecule methods

This is a relatively large release, motivated by the idea that changing existing functionality is bad so we shouldn't do it too often, but when we do change things we should do it all at once.

A richer version of these release notes with live links to API documentation is available on our ReadTheDocs page

See our installation instructions.

Please report bugs, request features, or ask questions through our issue tracker.

Please note that there may still be some changes to the API prior to a stable 1.0.0 release.

Here's a brief rundown of what changed, migration tips, and what to search for in the full release notes to find more details and workarounds:

  • To provide more consistent partial charges for a given molecule, existing conformers are now disregarded by default by Molecule.assign_partial_charges. Instead, new conformers are generated for use in semiempirical calculations. Search for use_conformers.
  • Formal charges are now always returned as simtk.unit.Quantity objects, with units of elementary charge. To convert them to integers, use from simtk import unit and atom.formal_charge.value_in_unit(unit.elementary_charge) or mol.total_charge.value_in_unit(unit.elementary_charge). Search atom.formal_charge.
  • The OpenFF Toolkit now automatically reads and writes partial charges in SDF files. Search for atom.dprop.PartialCharges.
  • The OpenFF Toolkit now has different behavior for handling multi-molecule and multi-conformer SDF files. Search multi-conformer.
  • The OpenFF Toolkit now distinguishes between partial charges that are all-zero and partial charges that are unknown. Search partial_charges = None.
  • Topology.to_openmm now assigns unique atoms names by default. Search ensure_unique_atom_names.
  • Molecule equality checks are now done by graph comparison instead of SMILES comparison. Search Molecule.are_isomorphic.
  • The ChemicalEnvironment module was almost entirely removed, as it is an outdated duplicate of some Chemper functionality. Search ChemicalEnvironment.
  • TopologyMolecule.topology_particle_start_index has been removed from the TopologyMolecule API, since atoms and virtualsites are no longer contiguous in the Topology particle indexing system. Search topology_particle_start_index.
  • compute_wiberg_bond_orders has been renamed to assign_fractional_bond_orders.

There are also a number of new features, such as:

  • Support for ChargeIncrementModel sections in force fields.
  • Support for ProperTorsion k interpolation in force fields using fractional bond orders.
  • Support for AM1-Mulliken, Gasteiger, and other charge methods using the new assign_partial_charges methods.
  • Support for AM1-Wiberg bond order calculation using either the OpenEye or RDKit/AmberTools backends and the new assign_fractional_bond_orders methods
  • Initial (limited) interoperability with QCArchive, via Molecule.to_qcschema and from_qcschema.
  • A Molecule.visualize method.
  • Several additional Molecule methods, including state enumeration and mapped SMILES creation.

For details of these changes and in-depth descriptions please see the full release notes.