Molecular topology representations

This module provides pure-Python classes for representing molecules and molecular systems. These classes offer several advantages over corresponding Topology objects in OpenMM and MDTraj, including offering serialization to a variety of standard formats (including XML, JSON, YAML, BSON, TOML, and MessagePack).

Primary objects

FrozenMolecule

Immutable chemical representation of a molecule, such as a small molecule or biopolymer.

Molecule

Mutable chemical representation of a molecule, such as a small molecule or biopolymer.

Topology

A Topology is a chemical representation of a system containing one or more molecules appearing in a specified order.

TopologyMolecule

TopologyMolecules are built to be an efficient way to store large numbers of copies of the same molecule for parameterization and system preparation.

Secondary objects

Particle

Base class for all particles in a molecule.

Atom

A particle representing a chemical atom.

Bond

Chemical bond representation.

VirtualSite

A container representing one or more virtual particles whose positions are defined in terms of Atom positions.

VirtualParticle

A single particle owned by a VirtualSite

TopologyVirtualParticle

BondChargeVirtualSite

A particle representing a "Bond Charge"-type virtual site, in which the location of the charge is specified by the positions of two atoms.

MonovalentLonePairVirtualSite

A particle representing a "Monovalent Lone Pair"-type virtual site, in which the location of the charge is specified by the positions of three atoms.

DivalentLonePairVirtualSite

A particle representing a "Divalent Lone Pair"-type virtual site, in which the location of the charge is specified by the positions of three atoms.

TrivalentLonePairVirtualSite

A particle representing a "Trivalent Lone Pair"-type virtual site, in which the location of the charge is specified by the positions of four atoms.

TopologyAtom

A TopologyAtom is a lightweight data structure that represents a single openff.toolkit.topology.molecule.Atom in a Topology.

TopologyBond

A TopologyBond is a lightweight data structure that represents a single openff.toolkit.topology.molecule.Bond in a Topology.

TopologyVirtualSite

A TopologyVirtualSite is a lightweight data structure that represents a single openff.toolkit.topology.molecule.VirtualSite in a Topology.

ValenceDict

Enforce uniqueness in atom indices.

ImproperDict

Symmetrize improper torsions.