Topology stores the topological information about a system.
The structure of a Topology object is similar to that of a PDB file. It consists of a set of Chains (often but not always corresponding to polymer chains). Each Chain contains a set of Residues, and each Residue contains a set of Atoms. In addition, the Topology stores a list of which atom pairs are bonded to each other.
Atom and residue names should follow the PDB 3.0 nomenclature for all molecules for which one exists.
Examples
>>> topology = md.load('example.pdb').topology
>>> print(topology)
<mdtraj.Topology with 1 chains, 3 residues, 22 atoms, 21 bonds at 0x105a98e90>
>>> table, bonds = topology.to_dataframe()
>>> print(table.head())
serial name element resSeq resName chainID
0 0 H1 H 0 CYS 0
1 1 CH3 C 0 CYS 0
2 2 H2 H 0 CYS 0
3 3 H3 H 0 CYS 0
4 4 C C 0 CYS 0
>>> # rename residue "CYS" to "CYSS"
>>> table[table['residue'] == 'CYS']['residue'] = 'CYSS'
>>> print(table.head())
serial name element resSeq resName chainID
0 0 H1 H 0 CYSS 0
1 1 CH3 C 0 CYSS 0
2 2 H2 H 0 CYSS 0
3 3 H3 H 0 CYSS 0
4 4 C C 0 CYSS 0
>>> t2 = md.Topology.from_dataframe(table, bonds)
Attributes
chains | Iterator over all Chains in the Topology. |
residues | Iterator over all Residues in the Topology. |
atoms | Iterator over all Atoms in the Topology. |
Create a new Topology object
Methods
__init__() | Create a new Topology object |
add_atom(name, element, residue) | Create a new Atom and add it to the Topology. |
add_bond(atom1, atom2) | Create a new bond and add it to the Topology. |
add_chain() | Create a new Chain and add it to the Topology. |
add_residue(name, chain[, resSeq]) | Create a new Residue and add it to the Topology. |
atom(index) | Get a specific atom by index. |
chain(index) | Get a specific chain by index. |
copy() | Return a copy of the topology |
create_disulfide_bonds(positions) | Identify disulfide bonds based on proximity and add them to the Topology. |
create_standard_bonds() | Create bonds based on the atom and residue names for all standard residue types. |
from_dataframe(atoms[, bonds]) | Create a mdtraj topology from a pandas data frame |
from_openmm(value) | Create a mdtraj topology from an OpenMM topology |
join(other) | Join two topologies together |
residue(index) | Get a specific residue by index. |
subset(atom_indices) | Create a new Topology from a subset of the atoms in an existing topology. |
to_dataframe() | Convert this topology into a pandas dataframe |
to_openmm() | Convert this topology into OpenMM topology |
Attributes
atoms | Iterator over all Atoms in the Topology. |
bonds | Iterator over all bonds (each represented as a tuple of two Atoms) in the Topology. |
chains | Iterator over all Chains in the Topology. |
n_atoms | Get the number of atoms in the Topology |
n_chains | Get the number of chains in the Topology |
n_residues | Get the number of residues in the Topology |
residues | Iterator over all Residues in the Topology. |
Return a copy of the topology
Returns: | out : Topology
|
---|
Join two topologies together
Parameters: | other : Topology
|
---|---|
Returns: | out : Topology
|
Convert this topology into OpenMM topology
Returns: | topology : simtk.openmm.app.Topology
|
---|
Create a mdtraj topology from an OpenMM topology
Parameters: | value : simtk.openmm.app.Topology
|
---|
Convert this topology into a pandas dataframe
Returns: | atoms : pandas.DataFrame
bonds : np.ndarray
|
---|
Create a mdtraj topology from a pandas data frame
Parameters: | atoms : pandas.DataFrame
bonds : np.ndarray, shape=(n_bonds, 2), dtype=int, optional
|
---|
See also
Create a new Chain and add it to the Topology.
Returns: | chain : mdtraj.topology.Chain
|
---|
Create a new Residue and add it to the Topology.
Parameters: | name : str
chain : mdtraj.topology.Chain
resSeq : int, optional
|
---|---|
Returns: | residue : mdtraj.topology.Residue
|
Create a new Atom and add it to the Topology.
Parameters: | name : str
element : mdtraj.pdb.element.Element
residue : mdtraj.topology.Residue
|
---|---|
Returns: | atom : mdtraj.topology.Atom
|
Create a new bond and add it to the Topology.
Parameters: | atom1 : mdtraj.topology.Atom
atom2 : mdtraj.topology.Atom
|
---|
Get a specific chain by index. These indices start from zero.
Returns: | chain : Chain
|
---|
Iterator over all Chains in the Topology.
Returns: | chainiter : listiterator
|
---|
Get the number of chains in the Topology
Get a specific residue by index. These indices start from zero.
Returns: | residue : Residue
|
---|
Iterator over all Residues in the Topology.
Returns: | residueiter : generator
|
---|
Get the number of residues in the Topology
Get a specific atom by index. These indices start from zero.
Returns: | atom : Atom
|
---|
Iterator over all Atoms in the Topology.
Returns: | atomiter : generator
|
---|
Get the number of atoms in the Topology
Iterator over all bonds (each represented as a tuple of two Atoms) in the Topology.
Returns: | atomiter : generator
|
---|
Create bonds based on the atom and residue names for all standard residue types.
Identify disulfide bonds based on proximity and add them to the Topology.
Parameters: | positions : list
|
---|
Create a new Topology from a subset of the atoms in an existing topology.
Parameters: | atom_indices array_like
|
---|
Notes
The existing topology will not be altered.