openforcefield.topology.
Topology
(other=None)[source]¶A Topology is a chemical representation of a system containing one or more molecules appearing in a specified order.
Warning
This API is experimental and subject to change.
Examples
Import some utilities
>>> from simtk.openmm import app
>>> from openforcefield.tests.utils import get_data_filename, get_packmol_pdbfile
>>> pdb_filepath = get_packmol_pdbfile('cyclohexane_ethanol_0.4_0.6')
>>> monomer_names = ('cyclohexane', 'ethanol')
Create a Topology object from a PDB file and sdf files defining the molecular contents
>>> from openforcefield.topology import Molecule, Topology
>>> pdbfile = app.PDBFile(pdb_filepath)
>>> sdf_filepaths = [get_data_filename(f'systems/monomers/{name}.sdf') for name in monomer_names]
>>> unique_molecules = [Molecule.from_file(sdf_filepath) for sdf_filepath in sdf_filepaths]
>>> topology = Topology.from_openmm(pdbfile.topology, unique_molecules=unique_molecules)
Create a Topology object from a PDB file and IUPAC names of the molecular contents
>>> pdbfile = app.PDBFile(pdb_filepath)
>>> unique_molecules = [Molecule.from_iupac(name) for name in monomer_names]
>>> topology = Topology.from_openmm(pdbfile.topology, unique_molecules=unique_molecules)
Create an empty Topology object and add a few copies of a single benzene molecule
>>> topology = Topology()
>>> molecule = Molecule.from_iupac('benzene')
>>> molecule_topology_indices = [topology.add_molecule(molecule) for index in range(10)]
Attributes: |
|
---|
Methods
add_constraint (iatom, jatom[, distance]) |
Mark a pair of atoms as constrained. |
add_molecule (molecule[, …]) |
Add a Molecule to the Topology. |
add_particle (particle) |
Add a Particle to the Topology. |
assert_bonded (atom1, atom2) |
Raise an exception if the specified atoms are not bonded in the topology. |
atom (atom_topology_index) |
Get the TopologyAtom at a given Topology atom index. |
bond (bond_topology_index) |
Get the TopologyBond at a given Topology bond index. |
chemical_environment_matches (query[, …]) |
Retrieve all matches for a given chemical environment query. |
from_bson (serialized) |
Instantiate an object from a BSON serialized representation. |
from_dict (d) |
Static constructor from dictionary representation. |
from_json (serialized) |
Instantiate an object from a JSON serialized representation. |
from_mdtraj (mdtraj_topology[, unique_molecules]) |
Construct an openforcefield Topology object from an MDTraj Topology object. |
from_messagepack (serialized) |
Instantiate an object from a MessagePack serialized representation. |
from_molecules (molecules) |
Create a new Topology object containing one copy of each of the specified molecule(s). |
from_openmm (openmm_topology[, unique_molecules]) |
Construct an openforcefield Topology object from an OpenMM Topology object. |
from_parmed (parmed_structure[, unique_molecules]) |
Warning This functionality will be implemented in a future toolkit release. |
from_pickle (serialized) |
Instantiate an object from a pickle serialized representation. |
from_toml (serialized) |
Instantiate an object from a TOML serialized representation. |
from_xml (serialized) |
Instantiate an object from an XML serialized representation. |
from_yaml (serialized) |
Instantiate from a YAML serialized representation. |
get_bond_between (i, j) |
Returns the bond between two atoms |
get_fractional_bond_order (iatom, jatom) |
Retrieve the fractional bond order for a bond. |
is_bonded (i, j) |
Returns True if the two atoms are bonded |
is_constrained (iatom, jatom) |
Check if a pair of atoms are marked as constrained. |
to_bson () |
Return a BSON serialized representation. |
to_dict () |
Convert to dictionary representation. |
to_json ([indent]) |
Return a JSON serialized representation. |
to_messagepack () |
Return a MessagePack representation. |
to_parmed () |
Warning This functionality will be implemented in a future toolkit release. |
to_pickle () |
Return a pickle serialized representation. |
to_toml () |
Return a TOML serialized representation. |
to_xml ([indent]) |
Return an XML representation. |
to_yaml () |
Return a YAML serialized representation. |
virtual_site (vsite_topology_index) |
Get the TopologyAtom at a given Topology atom index. |
__init__
(other=None)[source]¶Create a new Topology.
Parameters: |
|
---|
Methods
__init__ ([other]) |
Create a new Topology. |
add_constraint (iatom, jatom[, distance]) |
Mark a pair of atoms as constrained. |
add_molecule (molecule[, …]) |
Add a Molecule to the Topology. |
add_particle (particle) |
Add a Particle to the Topology. |
assert_bonded (atom1, atom2) |
Raise an exception if the specified atoms are not bonded in the topology. |
atom (atom_topology_index) |
Get the TopologyAtom at a given Topology atom index. |
bond (bond_topology_index) |
Get the TopologyBond at a given Topology bond index. |
chemical_environment_matches (query[, …]) |
Retrieve all matches for a given chemical environment query. |
from_bson (serialized) |
Instantiate an object from a BSON serialized representation. |
from_dict (d) |
Static constructor from dictionary representation. |
from_json (serialized) |
Instantiate an object from a JSON serialized representation. |
from_mdtraj (mdtraj_topology[, unique_molecules]) |
Construct an openforcefield Topology object from an MDTraj Topology object. |
from_messagepack (serialized) |
Instantiate an object from a MessagePack serialized representation. |
from_molecules (molecules) |
Create a new Topology object containing one copy of each of the specified molecule(s). |
from_openmm (openmm_topology[, unique_molecules]) |
Construct an openforcefield Topology object from an OpenMM Topology object. |
from_parmed (parmed_structure[, unique_molecules]) |
Warning This functionality will be implemented in a future toolkit release. |
from_pickle (serialized) |
Instantiate an object from a pickle serialized representation. |
from_toml (serialized) |
Instantiate an object from a TOML serialized representation. |
from_xml (serialized) |
Instantiate an object from an XML serialized representation. |
from_yaml (serialized) |
Instantiate from a YAML serialized representation. |
get_bond_between (i, j) |
Returns the bond between two atoms |
get_fractional_bond_order (iatom, jatom) |
Retrieve the fractional bond order for a bond. |
is_bonded (i, j) |
Returns True if the two atoms are bonded |
is_constrained (iatom, jatom) |
Check if a pair of atoms are marked as constrained. |
to_bson () |
Return a BSON serialized representation. |
to_dict () |
Convert to dictionary representation. |
to_json ([indent]) |
Return a JSON serialized representation. |
to_messagepack () |
Return a MessagePack representation. |
to_parmed () |
Warning This functionality will be implemented in a future toolkit release. |
to_pickle () |
Return a pickle serialized representation. |
to_toml () |
Return a TOML serialized representation. |
to_xml ([indent]) |
Return an XML representation. |
to_yaml () |
Return a YAML serialized representation. |
virtual_site (vsite_topology_index) |
Get the TopologyAtom at a given Topology atom index. |
Attributes
angles |
Iterable of Tuple[TopologyAtom]: iterator over the angles in this Topology. |
aromaticity_model |
Get the aromaticity model applied to all molecules in the topology. |
box_vectors |
Return the box vectors of the topology, if specified Returns ——- box_vectors : simtk.unit.Quantity wrapped numpy array The unit-wrapped box vectors of this topology |
charge_model |
Get the partial charge model applied to all molecules in the topology. |
constrained_atom_pairs |
Returns the constrained atom pairs of the Topology |
fractional_bond_order_model |
Get the fractional bond order model for the Topology. |
impropers |
Iterable of Tuple[TopologyAtom]: iterator over the improper torsions in this Topology. |
n_angles |
int: number of angles in this Topology. |
n_impropers |
int: number of improper torsions in this Topology. |
n_propers |
int: number of proper torsions in this Topology. |
n_reference_molecules |
Returns the number of reference (unique) molecules in in this Topology. |
n_topology_atoms |
Returns the number of topology atoms in in this Topology. |
n_topology_bonds |
Returns the number of TopologyBonds in in this Topology. |
n_topology_molecules |
Returns the number of topology molecules in in this Topology. |
n_topology_particles |
Returns the number of topology particles (TopologyAtoms and TopologyVirtualSites) in in this Topology. |
n_topology_virtual_sites |
Returns the number of TopologyVirtualSites in in this Topology. |
propers |
Iterable of Tuple[TopologyAtom]: iterator over the proper torsions in this Topology. |
reference_molecules |
Get an iterator of reference molecules in this Topology. |
topology_atoms |
Returns an iterator over the atoms in this Topology. |
topology_bonds |
Returns an iterator over the bonds in this Topology |
topology_molecules |
Returns an iterator over all the TopologyMolecules in this Topology |
topology_particles |
Returns an iterator over the particles (TopologyAtoms and TopologyVirtualSites) in this Topology. |
topology_virtual_sites |
Get an iterator over the virtual sites in this Topology |
reference_molecules
¶Get an iterator of reference molecules in this Topology.
Returns: |
|
---|
from_molecules
(molecules)[source]¶Create a new Topology object containing one copy of each of the specified molecule(s).
Parameters: |
|
---|---|
Returns: |
|
assert_bonded
(atom1, atom2)[source]¶Raise an exception if the specified atoms are not bonded in the topology.
Parameters: |
|
---|
aromaticity_model
¶Get the aromaticity model applied to all molecules in the topology.
Returns: |
|
---|
box_vectors
¶Return the box vectors of the topology, if specified Returns ——- box_vectors : simtk.unit.Quantity wrapped numpy array
The unit-wrapped box vectors of this topology
charge_model
¶Get the partial charge model applied to all molecules in the topology.
Returns: |
|
---|
constrained_atom_pairs
¶Returns the constrained atom pairs of the Topology
Returns: |
|
---|
fractional_bond_order_model
¶Get the fractional bond order model for the Topology.
Returns: |
|
---|
n_reference_molecules
¶Returns the number of reference (unique) molecules in in this Topology.
Returns: |
|
---|
n_topology_molecules
¶Returns the number of topology molecules in in this Topology.
Returns: |
|
---|
topology_molecules
¶Returns an iterator over all the TopologyMolecules in this Topology
Returns: |
|
---|
n_topology_atoms
¶Returns the number of topology atoms in in this Topology.
Returns: |
|
---|
topology_atoms
¶Returns an iterator over the atoms in this Topology. These will be in ascending order of topology index (Note that this is not necessarily the same as the reference molecule index)
Returns: |
|
---|
n_topology_bonds
¶Returns the number of TopologyBonds in in this Topology.
Returns: |
|
---|
topology_bonds
¶Returns an iterator over the bonds in this Topology
Returns: |
|
---|
n_topology_particles
¶Returns the number of topology particles (TopologyAtoms and TopologyVirtualSites) in in this Topology.
Returns: |
|
---|
topology_particles
¶Returns an iterator over the particles (TopologyAtoms and TopologyVirtualSites) in this Topology. The TopologyAtoms will be in order of ascending Topology index (Note that this may differ from the order of atoms in the reference molecule index).
Returns: |
|
---|
n_topology_virtual_sites
¶Returns the number of TopologyVirtualSites in in this Topology.
Returns: |
|
---|
topology_virtual_sites
¶Get an iterator over the virtual sites in this Topology
Returns: |
|
---|
n_angles
¶int: number of angles in this Topology.
angles
¶Iterable of Tuple[TopologyAtom]: iterator over the angles in this Topology.
n_propers
¶int: number of proper torsions in this Topology.
propers
¶Iterable of Tuple[TopologyAtom]: iterator over the proper torsions in this Topology.
n_impropers
¶int: number of improper torsions in this Topology.
impropers
¶Iterable of Tuple[TopologyAtom]: iterator over the improper torsions in this Topology.
chemical_environment_matches
(query, aromaticity_model='MDL', toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object>)[source]¶Retrieve all matches for a given chemical environment query.
TODO: * Do we want to generalize this to other kinds of queries too, like mdtraj DSL, pymol selections, atom index slices, etc?
We could just call it topology.matches(query)
Parameters: |
|
---|---|
Returns: |
|
from_openmm
(openmm_topology, unique_molecules=None)[source]¶Construct an openforcefield Topology object from an OpenMM Topology object.
Parameters: |
|
---|---|
Returns: |
|
from_mdtraj
(mdtraj_topology, unique_molecules=None)[source]¶Construct an openforcefield Topology object from an MDTraj Topology object.
Parameters: |
|
---|---|
Returns: |
|
from_parmed
(parmed_structure, unique_molecules=None)[source]¶Warning
This functionality will be implemented in a future toolkit release.
Construct an openforcefield Topology object from a ParmEd Structure object.
Parameters: |
|
---|---|
Returns: |
|
to_parmed
()[source]¶Warning
This functionality will be implemented in a future toolkit release.
Create a ParmEd Structure object.
Returns: |
|
---|
get_bond_between
(i, j)[source]¶Returns the bond between two atoms
Parameters: |
|
---|---|
Returns: |
|
is_bonded
(i, j)[source]¶Returns True if the two atoms are bonded
Parameters: |
|
---|---|
Returns: |
|
atom
(atom_topology_index)[source]¶Get the TopologyAtom at a given Topology atom index.
Parameters: |
|
---|---|
Returns: |
|
virtual_site
(vsite_topology_index)[source]¶Get the TopologyAtom at a given Topology atom index.
Parameters: |
|
---|---|
Returns: |
|
bond
(bond_topology_index)[source]¶Get the TopologyBond at a given Topology bond index.
Parameters: |
|
---|---|
Returns: |
|
add_particle
(particle)[source]¶Add a Particle to the Topology.
Parameters: |
|
---|
add_molecule
(molecule, local_topology_to_reference_index=None)[source]¶Add a Molecule to the Topology.
Parameters: |
|
---|---|
Returns: |
|
from_bson
(serialized)¶Instantiate an object from a BSON serialized representation.
Specification: http://bsonspec.org/
Parameters: |
|
---|---|
Returns: |
|
from_json
(serialized)¶Instantiate an object from a JSON serialized representation.
Specification: https://www.json.org/
Parameters: |
|
---|---|
Returns: |
|
from_messagepack
(serialized)¶Instantiate an object from a MessagePack serialized representation.
Specification: https://msgpack.org/index.html
Parameters: |
|
---|---|
Returns: |
|
from_pickle
(serialized)¶Instantiate an object from a pickle serialized representation.
Warning
This is not recommended for safe, stable storage since the pickle specification may change between Python versions.
Parameters: |
|
---|---|
Returns: |
|
from_toml
(serialized)¶Instantiate an object from a TOML serialized representation.
Specification: https://github.com/toml-lang/toml
Parameters: |
|
---|---|
Returns: |
|
from_xml
(serialized)¶Instantiate an object from an XML serialized representation.
Specification: https://www.w3.org/XML/
Parameters: |
|
---|---|
Returns: |
|
from_yaml
(serialized)¶Instantiate from a YAML serialized representation.
Specification: http://yaml.org/
Parameters: |
|
---|---|
Returns: |
|
to_bson
()¶Return a BSON serialized representation.
Specification: http://bsonspec.org/
Returns: |
|
---|
to_json
(indent=None)¶Return a JSON serialized representation.
Specification: https://www.json.org/
Parameters: |
|
---|---|
Returns: |
|
to_messagepack
()¶Return a MessagePack representation.
Specification: https://msgpack.org/index.html
Returns: |
|
---|
to_pickle
()¶Return a pickle serialized representation.
Warning
This is not recommended for safe, stable storage since the pickle specification may change between Python versions.
Returns: |
|
---|
to_toml
()¶Return a TOML serialized representation.
Specification: https://github.com/toml-lang/toml
Returns: |
|
---|
to_xml
(indent=2)¶Return an XML representation.
Specification: https://www.w3.org/XML/
Parameters: |
|
---|---|
Returns: |
|
to_yaml
()¶Return a YAML serialized representation.
Specification: http://yaml.org/
Returns: |
|
---|
add_constraint
(iatom, jatom, distance=True)[source]¶Mark a pair of atoms as constrained.
Constraints between atoms that are not bonded (e.g., rigid waters) are permissible.
Parameters: |
|
---|
is_constrained
(iatom, jatom)[source]¶Check if a pair of atoms are marked as constrained.
Parameters: |
|
---|---|
Returns: |
|
get_fractional_bond_order
(iatom, jatom)[source]¶Retrieve the fractional bond order for a bond.
An Exception is raised if it cannot be determined.
Parameters: |
|
---|---|
Returns: |
|