A graph representation of a molecule containing enough information to unambiguously parametrize it. Required data fields for a
atoms: element (integer), formal_charge (integer), is_aromatic (boolean), stereochemistry (
bonds: order (integer), is_aromatic (boolean), stereochemistry (
There are several other optional attributes such as
partial_chargesthat may be populated in the
Moleculedata structure. These are considered “optional” because they are not required for system creation, however if those fields are populated, the user MAY use them to override values that would otherwise be generated during system creation.
Molecule.propertiesis exposed, which is a Python dict that can be populated with arbitrary data. This data should be considered cosmetic and should not affect system creation. Whenever possible, molecule serialization or format conversion should preserve this data.
A collection of molecules, as well as optional box vector, positions, and other information. A
Topologydescribes the chemistry of a system, but has no force field parameters.
An object generated from an OFFXML file (or other source of SMIRNOFF data). Most information from the SMIRNOFF data source is stored in this object’s several
ParameterHandlers, however some top-level SMIRNOFF data is stored in the
Topologythat has been parametrized by a
Interchangecontains all the information needed to calculate an energy or start a simulation.
Interchangealso provides methods to export this information to MD simulation engines.