0.7.0 Charge Increment Model, Proper Torsion interpolation, and new Molecule methods
Pre-release0.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 foruse_conformers
. - Formal charges are now always returned as
simtk.unit.Quantity
objects, with units of elementary charge. To convert them to integers, usefrom simtk import unit
andatom.formal_charge.value_in_unit(unit.elementary_charge)
ormol.total_charge.value_in_unit(unit.elementary_charge)
. Searchatom.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. Searchensure_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. SearchChemicalEnvironment
. TopologyMolecule.topology_particle_start_index
has been removed from theTopologyMolecule
API, since atoms and virtualsites are no longer contiguous in theTopology
particle indexing system. Searchtopology_particle_start_index
.compute_wiberg_bond_orders
has been renamed toassign_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
andfrom_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.