openff.toolkit.topology.FrozenMolecule
- class openff.toolkit.topology.FrozenMolecule(other=None, file_format=None, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY, allow_undefined_stereo=False)[source]
Immutable chemical representation of a molecule, such as a small molecule or biopolymer.
Examples
Create a molecule from a sdf file
>>> from openff.toolkit.utils import get_data_file_path >>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf') >>> molecule = FrozenMolecule.from_file(sdf_filepath)
Convert to OpenEye OEMol object
>>> oemol = molecule.to_openeye()
Create a molecule from an OpenEye molecule
>>> molecule = FrozenMolecule.from_openeye(oemol)
Convert to RDKit Mol object
>>> rdmol = molecule.to_rdkit()
Create a molecule from an RDKit molecule
>>> molecule = FrozenMolecule.from_rdkit(rdmol)
Create a molecule from IUPAC name (requires the OpenEye toolkit)
>>> molecule = FrozenMolecule.from_iupac('imatinib')
Create a molecule from SMILES
>>> molecule = FrozenMolecule.from_smiles('Cc1ccccc1')
Warning
This API is experimental and subject to change.
- __init__(other=None, file_format=None, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY, allow_undefined_stereo=False)[source]
Create a new FrozenMolecule object
- Parameters
other (optional, default=None) –
If specified, attempt to construct a copy of the Molecule from the specified object. This can be any one of the following:
file_format (str, optional, default=None) – If providing a file-like object, you must specify the format of the data. If providing a file, the file format will attempt to be guessed from the suffix.
toolkit_registry (a
ToolkitRegistry
or) –ToolkitWrapper
object, optional, default=GLOBAL_TOOLKIT_REGISTRYToolkitRegistry
orToolkitWrapper
to use for I/O operationsallow_undefined_stereo (bool, default=False) – If loaded from a file and
False
, raises an exception if undefined stereochemistry is detected during the molecule’s construction.
Examples
Create an empty molecule:
>>> empty_molecule = FrozenMolecule()
Create a molecule from a file that can be used to construct a molecule, using either a filename or file-like object:
>>> from openff.toolkit.utils import get_data_file_path >>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf') >>> molecule = FrozenMolecule(sdf_filepath) >>> molecule = FrozenMolecule(open(sdf_filepath, 'r'), file_format='sdf')
>>> import gzip >>> mol2_gz_filepath = get_data_file_path('molecules/toluene.mol2.gz') >>> molecule = FrozenMolecule(gzip.GzipFile(mol2_gz_filepath, 'r'), file_format='mol2')
Create a molecule from another molecule:
>>> molecule_copy = FrozenMolecule(molecule)
Convert to OpenEye OEMol object
>>> oemol = molecule.to_openeye()
Create a molecule from an OpenEye molecule:
>>> molecule = FrozenMolecule(oemol)
Convert to RDKit Mol object
>>> rdmol = molecule.to_rdkit()
Create a molecule from an RDKit molecule:
>>> molecule = FrozenMolecule(rdmol)
Create a molecule from a serialized molecule object:
>>> serialized_molecule = molecule.__getstate__() >>> molecule_copy = Molecule(serialized_molecule)
Methods
__init__
([other, file_format, ...])Create a new FrozenMolecule object
apply_elf_conformer_selection
([percentage, ...])Applies the ELF method to select a set of diverse conformers which have minimal electrostatically strongly interacting functional groups from a molecules conformers.
are_isomorphic
(mol1, mol2[, ...])Determines whether the two molecules are isomorphic by comparing their graph representations and the chosen node/edge attributes.
Update and store list of bond orders this molecule.
assign_partial_charges
(partial_charge_method)Calculate partial atomic charges for this molecule using an underlying toolkit, and assign the new values to the partial_charges attribute.
canonical_order_atoms
([toolkit_registry])Canonical order the atoms in a copy of the molecule using a toolkit, returns a new copy.
chemical_environment_matches
(query[, ...])Retrieve all matches for a given chemical environment query.
Calculate partial atomic charges for this molecule using AM1-BCC run by an underlying toolkit and assign them to this molecule's
partial_charges
attribute.Compute the positions of the virtual sites in this molecule given a set of external coordinates.
Compute the position of all virtual sites given an existing conformer specified by its index.
enumerate_protomers
([max_states])Enumerate the formal charges of a molecule to generate different protomoers.
enumerate_stereoisomers
([undefined_only, ...])Enumerate the stereocenters and bonds of the current molecule.
enumerate_tautomers
([max_states, ...])Enumerate the possible tautomers of the current molecule
find_rotatable_bonds
([...])Find all bonds classed as rotatable ignoring any matched to the
ignore_functional_groups
list.from_bson
(serialized)Instantiate an object from a BSON serialized representation.
from_dict
(molecule_dict)Create a new Molecule from a dictionary representation
from_file
(file_path[, file_format, ...])Create one or more molecules from a file
from_inchi
(inchi[, allow_undefined_stereo, ...])Construct a Molecule from a InChI representation
from_iupac
(iupac_name[, toolkit_registry, ...])Generate a molecule from IUPAC or common name
from_json
(serialized)Instantiate an object from a JSON serialized representation.
from_mapped_smiles
(mapped_smiles[, ...])Create an
Molecule
from a mapped SMILES made with cmiles.from_messagepack
(serialized)Instantiate an object from a MessagePack serialized representation.
from_openeye
(oemol[, allow_undefined_stereo])Create a
Molecule
from an OpenEye molecule.from_pdb_and_smiles
(file_path, smiles[, ...])Create a Molecule from a pdb file and a SMILES string using RDKit.
from_pickle
(serialized)Instantiate an object from a pickle serialized representation.
from_qcschema
(qca_record[, client, ...])Create a Molecule from a QCArchive molecule record or dataset entry based on attached cmiles information.
from_rdkit
(rdmol[, allow_undefined_stereo, ...])Create a Molecule from an RDKit molecule.
from_smiles
(smiles[, ...])Construct a Molecule from a SMILES representation
from_toml
(serialized)Instantiate an object from a TOML serialized representation.
from_topology
(topology)Return a Molecule representation of an OpenFF Topology containing a single Molecule object.
from_xml
(serialized)Instantiate an object from an XML serialized representation.
from_yaml
(serialized)Instantiate from a YAML serialized representation.
generate_conformers
([toolkit_registry, ...])Generate conformers for this molecule using an underlying toolkit.
Generate unique atom names using element name and number of times that element has occurred e.g.
get_bond_between
(i, j)Returns the bond between two atoms
is_isomorphic_with
(other, **kwargs)Check if the molecule is isomorphic with the other molecule which can be an openff.toolkit.topology.Molecule, or TopologyMolecule or nx.Graph().
nth_degree_neighbors
(n_degrees)Return canonicalized pairs of atoms whose shortest separation is exactly n bonds.
remap
(mapping_dict[, current_to_new])Remap all of the indexes in the molecule to match the given mapping dict
strip_atom_stereochemistry
(smarts[, ...])Delete stereochemistry information for certain atoms, if it is present.
to_bson
()Return a BSON serialized representation.
to_dict
()Return a dictionary representation of the molecule.
to_file
(file_path, file_format[, ...])Write the current molecule to a file or file-like object
Generate the Hill formula of this molecule.
to_inchi
([fixed_hydrogens, toolkit_registry])Create an InChI string for the molecule using the requested toolkit backend.
to_inchikey
([fixed_hydrogens, toolkit_registry])Create an InChIKey for the molecule using the requested toolkit backend.
to_iupac
([toolkit_registry])Generate IUPAC name from Molecule
to_json
([indent])Return a JSON serialized representation.
Return a MessagePack representation.
Generate a NetworkX undirected graph from the Molecule.
to_openeye
([aromaticity_model])Create an OpenEye molecule
Return a pickle serialized representation.
to_qcschema
([multiplicity, conformer, extras])Create a QCElemental Molecule.
to_rdkit
([aromaticity_model])Create an RDKit molecule
to_smiles
([isomeric, explicit_hydrogens, ...])Return a canonical isomeric SMILES representation of the current molecule.
to_toml
()Return a TOML serialized representation.
Return an OpenFF Topology representation containing one copy of this molecule
to_xml
([indent])Return an XML representation.
to_yaml
()Return a YAML serialized representation.
Attributes
Iterate over improper torsions in the molecule, but only those with trivalent centers, reporting the central atom first in each improper.
Get an iterator over all i-j-k angles.
Iterate over all Atom objects.
Iterate over all Bond objects.
Returns the list of conformers for this molecule.
True if the molecule has unique atom names, False otherwise.
Get the Hill formula of the molecule
Iterate over all improper torsions in the molecule.
number of angles in the Molecule.
The number of Atom objects.
The number of Bond objects.
Returns the number of conformers for this molecule.
number of possible improper torsions in the Molecule.
The number of Particle objects, which corresponds to how many positions must be used.
number of proper torsions in the Molecule.
The number of VirtualParticle objects.
The number of VirtualSite objects.
The name (or title) of the molecule
Returns the partial charges (if present) on the molecule.
Iterate over all Particle objects.
Iterate over all proper torsions in the molecule
The properties dictionary of the molecule
Iterate over improper torsions in the molecule, but only those with trivalent centers, reporting the central atom second in each improper.
Get an iterator over all i-j-k-l torsions.
Return the total charge on the molecule
Iterate over all VirtualSite objects.
- generate_unique_atom_names()[source]
Generate unique atom names using element name and number of times that element has occurred e.g. ‘C1x’, ‘H1x’, ‘O1x’, ‘C2x’, …
The character ‘x’ is appended to these generated names to reduce the odds that they clash with an atom name or type imported from another source.
- strip_atom_stereochemistry(smarts, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Delete stereochemistry information for certain atoms, if it is present. This method can be used to “normalize” molecules imported from different cheminformatics toolkits, which differ in which atom centers are considered stereogenic.
- Parameters
smarts (str or ChemicalEnvironment) – Tagged SMARTS with a single atom with index 1. Any matches for this atom will have any assigned stereocheistry information removed.
toolkit_registry (a
ToolkitRegistry
orToolkitWrapper
object, optional, default=GLOBAL_TOOLKIT_REGISTRY) –ToolkitRegistry
orToolkitWrapper
to use for I/O operations
- to_dict()[source]
Return a dictionary representation of the molecule.
- Returns
molecule_dict (OrderedDict) – A dictionary representation of the molecule.
- classmethod from_dict(molecule_dict)[source]
Create a new Molecule from a dictionary representation
- Parameters
molecule_dict (OrderedDict) – A dictionary representation of the molecule.
- Returns
molecule (Molecule) – A Molecule created from the dictionary representation
- to_smiles(isomeric=True, explicit_hydrogens=True, mapped=False, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Return a canonical isomeric SMILES representation of the current molecule. A partially mapped smiles can also be generated for atoms of interest by supplying an atom_map to the properties dictionary.
Note
RDKit and OpenEye versions will not necessarily return the same representation.
- Parameters
isomeric (bool optional, default= True) – return an isomeric smiles
explicit_hydrogens (bool optional, default=True) – return a smiles string containing all hydrogens explicitly
mapped (bool optional, default=False) – return a explicit hydrogen mapped smiles, the atoms to be mapped can be controlled by supplying an atom map into the properties dictionary. If no mapping is passed all atoms will be mapped in order, else an atom map dictionary from the current atom index to the map id should be supplied with no duplicates. The map ids (values) should start from 0 or 1.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES conversion
- Returns
smiles (str) – Canonical isomeric explicit-hydrogen SMILES
Examples
>>> from openff.toolkit.utils import get_data_file_path >>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf') >>> molecule = Molecule(sdf_filepath) >>> smiles = molecule.to_smiles()
- classmethod from_inchi(inchi, allow_undefined_stereo=False, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit)[source]
Construct a Molecule from a InChI representation
- Parameters
inchi (str) – The InChI representation of the molecule.
allow_undefined_stereo (bool, default=False) – Whether to accept InChI with undefined stereochemistry. If False, an exception will be raised if a InChI with undefined stereochemistry is passed into this function.
toolkit_registry (openff.toolkit.utils.toolkits.ToolRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for InChI-to-molecule conversion
- Returns
molecule (openff.toolkit.topology.Molecule)
Examples
Make cis-1,2-Dichloroethene:
>>> molecule = Molecule.from_inchi('InChI=1S/C2H2Cl2/c3-1-2-4/h1-2H/b2-1-')
- to_inchi(fixed_hydrogens=False, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Create an InChI string for the molecule using the requested toolkit backend. InChI is a standardised representation that does not capture tautomers unless specified using the fixed hydrogen layer.
For information on InChi see here https://iupac.org/who-we-are/divisions/division-details/inchi/
- Parameters
fixed_hydrogens (bool, default=False) – If a fixed hydrogen layer should be added to the InChI, if True this will produce a non standard specific InChI string of the molecule.
toolkit_registry (openff.toolkit.utils.toolkits.ToolRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for molecule-to-InChI conversion
- Returns
inchi (str) – The InChI string of the molecule.
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- to_inchikey(fixed_hydrogens=False, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Create an InChIKey for the molecule using the requested toolkit backend. InChIKey is a standardised representation that does not capture tautomers unless specified using the fixed hydrogen layer.
For information on InChi see here https://iupac.org/who-we-are/divisions/division-details/inchi/
- Parameters
fixed_hydrogens (bool, default=False) – If a fixed hydrogen layer should be added to the InChI, if True this will produce a non standard specific InChI string of the molecule.
toolkit_registry (openff.toolkit.utils.toolkits.ToolRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for molecule-to-InChIKey conversion
- Returns
inchi_key (str) – The InChIKey representation of the molecule.
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- classmethod from_smiles(smiles, hydrogens_are_explicit=False, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit, allow_undefined_stereo=False)[source]
Construct a Molecule from a SMILES representation
- Parameters
smiles (str) – The SMILES representation of the molecule.
hydrogens_are_explicit (bool, default = False) – If False, the cheminformatics toolkit will perform hydrogen addition
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionallow_undefined_stereo (bool, default=False) – Whether to accept SMILES with undefined stereochemistry. If False, an exception will be raised if a SMILES with undefined stereochemistry is passed into this function.
- Returns
molecule (openff.toolkit.topology.Molecule)
Examples
>>> molecule = Molecule.from_smiles('Cc1ccccc1')
- static are_isomorphic(mol1, mol2, return_atom_map=False, aromatic_matching=True, formal_charge_matching=True, bond_order_matching=True, atom_stereochemistry_matching=True, bond_stereochemistry_matching=True, strip_pyrimidal_n_atom_stereo=True, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Determines whether the two molecules are isomorphic by comparing their graph representations and the chosen node/edge attributes. Minimally connections and atomic_number are checked.
If nx.Graphs() are given they must at least have atomic_number attributes on nodes. other optional attributes for nodes are: is_aromatic, formal_charge and stereochemistry. optional attributes for edges are: is_aromatic, bond_order and stereochemistry.
Warning
This API is experimental and subject to change.
- Parameters
mol1 (an openff.toolkit.topology.molecule.FrozenMolecule or TopologyMolecule or nx.Graph()) –
mol2 (an openff.toolkit.topology.molecule.FrozenMolecule or TopologyMolecule or nx.Graph()) – The molecule to test for isomorphism.
return_atom_map (bool, default=False, optional) – will return an optional dict containing the atomic mapping.
aromatic_matching (bool, default=True, optional) – compare the aromatic attributes of bonds and atoms.
formal_charge_matching (bool, default=True, optional) – compare the formal charges attributes of the atoms.
bond_order_matching (bool, deafult=True, optional) – compare the bond order on attributes of the bonds.
atom_stereochemistry_matching (bool, default=True, optional) – If
False
, atoms’ stereochemistry is ignored for the purpose of determining equality.bond_stereochemistry_matching (bool, default=True, optional) – If
False
, bonds’ stereochemistry is ignored for the purpose of determining equality.strip_pyrimidal_n_atom_stereo (bool, default=True, optional) – If
True
, any stereochemistry defined around pyrimidal nitrogen stereocenters will be disregarded in the isomorphism check.toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for removing stereochemistry from pyrimidal nitrogens.
- Returns
molecules_are_isomorphic (bool)
atom_map (default=None, Optional,) – [Dict[int,int]] ordered by mol1 indexing {mol1_index: mol2_index} If molecules are not isomorphic given input arguments, will return None instead of dict.
- is_isomorphic_with(other, **kwargs)[source]
Check if the molecule is isomorphic with the other molecule which can be an openff.toolkit.topology.Molecule, or TopologyMolecule or nx.Graph(). Full matching is done using the options described bellow.
Warning
This API is experimental and subject to change.
- Parameters
other (openff.toolkit.topology.Molecule or TopologyMolecule or nx.Graph()) –
return_atom_map (bool, default=False, optional) – will return an optional dict containing the atomic mapping.
aromatic_matching (bool, default=True, optional) –
atoms. (compare the formal charges attributes of the) –
formal_charge_matching (bool, default=True, optional) –
atoms. –
bond_order_matching (bool, deafult=True, optional) –
bonds. (compare the bond order on attributes of the) –
atom_stereochemistry_matching (bool, default=True, optional) – If
False
, atoms’ stereochemistry is ignored for the purpose of determining equality.bond_stereochemistry_matching (bool, default=True, optional) – If
False
, bonds’ stereochemistry is ignored for the purpose of determining equality.strip_pyrimidal_n_atom_stereo (bool, default=True, optional) – If
True
, any stereochemistry defined around pyrimidal nitrogen stereocenters will be disregarded in the isomorphism check.toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for removing stereochemistry from pyrimidal nitrogens.
- Returns
isomorphic (bool)
- generate_conformers(toolkit_registry=GLOBAL_TOOLKIT_REGISTRY, n_conformers=10, rms_cutoff=None, clear_existing=True, make_carboxylic_acids_cis=True)[source]
Generate conformers for this molecule using an underlying toolkit.
If
n_conformers=0
, no toolkit wrapper will be called. Ifn_conformers=0
andclear_existing=True
,molecule.conformers
will be set toNone
.- Parameters
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionn_conformers (int, default=1) – The maximum number of conformers to produce
rms_cutoff (openmm.unit.Quantity-wrapped float, in units of distance, optional, default=None) – The minimum RMS value at which two conformers are considered redundant and one is deleted. Precise implementation of this cutoff may be toolkit-dependent. If
None
, the cutoff is set to be the default value for eachToolkitWrapper
(generally 1 Angstrom).clear_existing (bool, default=True) – Whether to overwrite existing conformers for the molecule
make_carboxylic_acids_cis (bool, default=True) – Guarantee all conformers have exclusively cis carboxylic acid groups (COOH) by rotating the proton in any trans carboxylic acids 180 degrees around the C-O bond. Works around a bug in conformer generation by the OpenEye toolkit where trans COOH is much more common than it should be.
Examples
>>> molecule = Molecule.from_smiles('CCCCCC') >>> molecule.generate_conformers()
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- compute_virtual_site_positions_from_conformer(conformer_idx)[source]
Compute the position of all virtual sites given an existing conformer specified by its index.
- Parameters
conformer_idx (int) – The index of the conformer.
- Returns
openmm.unit.Quantity
of dimension [Length] in unit Angstroms wrapping anumpy.ndarray – The positions of the virtual particles belonging to this virtual site. The array is the size (M, 3) where M is the number of virtual particles belonging to this virtual site.
- compute_virtual_site_positions_from_atom_positions(atom_positions)[source]
Compute the positions of the virtual sites in this molecule given a set of external coordinates. The coordinates do not need come from an internal conformer, but are assumed to have the same shape and be in the same order.
- Parameters
atom_positions (
openmm.unit.Quantity
of dimension [Length] wrapping a) –numpy.ndarray – The positions of all atoms in the molecule. The array is the size (N, 3) where N is the number of atoms in the molecule.
- Returns
openmm.unit.Quantity
of dimension [Length] in unit Angstroms wrapping anumpy.ndarray – The positions of the virtual particles belonging to this virtual site. The array is the size (M, 3) where M is the number of virtual particles belonging to this virtual site.
- apply_elf_conformer_selection(percentage: float = 2.0, limit: int = 10, toolkit_registry: Optional[Union[ToolkitRegistry, ToolkitWrapper]] = GLOBAL_TOOLKIT_REGISTRY, **kwargs)[source]
Applies the ELF method to select a set of diverse conformers which have minimal electrostatically strongly interacting functional groups from a molecules conformers.
Notes
The input molecule should have a large set of conformers already generated to select the ELF conformers from.
The selected conformers will be retained in the conformers list while unselected conformers will be discarded.
See also
OpenEyeToolkitWrapper.apply_elf_conformer_selection
,RDKitToolkitWrapper.apply_elf_conformer_selection
- Parameters
toolkit_registry – The underlying toolkit to use to select the ELF conformers.
percentage – The percentage of conformers with the lowest electrostatic interaction energies to greedily select from.
limit – The maximum number of conformers to select.
- compute_partial_charges_am1bcc(use_conformers=None, strict_n_conformers=False, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Calculate partial atomic charges for this molecule using AM1-BCC run by an underlying toolkit and assign them to this molecule’s
partial_charges
attribute.- Parameters
strict_n_conformers (bool, default=False) – Whether to raise an exception if an invalid number of conformers is provided for the given charge method. If this is False and an invalid number of conformers is found, a warning will be raised.
use_conformers (iterable of openmm.unit.Quantity-wrapped numpy arrays, each with shape (n_atoms, 3) and dimension of distance. Optional, default=None) – Coordinates to use for partial charge calculation. If None, an appropriate number of conformers for the given charge method will be generated.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for the calculation
Examples
>>> molecule = Molecule.from_smiles('CCCCCC') >>> molecule.generate_conformers() >>> molecule.compute_partial_charges_am1bcc()
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- assign_partial_charges(partial_charge_method, strict_n_conformers=False, use_conformers=None, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY, normalize_partial_charges=True)[source]
Calculate partial atomic charges for this molecule using an underlying toolkit, and assign the new values to the partial_charges attribute.
- Parameters
partial_charge_method (string) – The partial charge calculation method to use for partial charge calculation.
strict_n_conformers (bool, default=False) – Whether to raise an exception if an invalid number of conformers is provided for the given charge method. If this is False and an invalid number of conformers is found, a warning will be raised.
use_conformers (iterable of openmm.unit.Quantity-wrapped numpy arrays, each with shape (n_atoms, 3) and dimension of distance. Optional, default=None) – Coordinates to use for partial charge calculation. If None, an appropriate number of conformers will be generated.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for the calculation.normalize_partial_charges (bool, default=True) – Whether to offset partial charges so that they sum to the total formal charge of the molecule. This is used to prevent accumulation of rounding errors when the partial charge assignment method returns values at limited precision.
Examples
>>> molecule = Molecule.from_smiles('CCCCCC') >>> molecule.assign_partial_charges('am1-mulliken')
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- assign_fractional_bond_orders(bond_order_model=None, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY, use_conformers=None)[source]
Update and store list of bond orders this molecule. Bond orders are stored on each bond, in the
bond.fractional_bond_order
attribute.Warning
This API is experimental and subject to change.
- Parameters
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionbond_order_model (string, optional. Default=None) – The bond order model to use for fractional bond order calculation. If
None
, “am1-wiberg” will be used.use_conformers (iterable of openmm.unit.Quantity(np.array) with shape (n_atoms, 3) and dimension of distance, optional, default=None) – The conformers to use for fractional bond order calculation. If
None
, an appropriate number of conformers will be generated by an available ToolkitWrapper.
Examples
>>> molecule = Molecule.from_smiles('CCCCCC') >>> molecule.assign_fractional_bond_orders()
- Raises
InvalidToolkitRegistryError – If an invalid object is passed as the toolkit_registry parameter
- to_networkx()[source]
Generate a NetworkX undirected graph from the Molecule.
Nodes are Atoms labeled with particle indices and atomic elements (via the
element
node atrribute). Edges denote chemical bonds between Atoms. Virtual sites are not included, since they lack a concept of chemical connectivity.- Returns
graph (networkx.Graph) – The resulting graph, with nodes (atoms) labeled with atom indices, elements, stereochemistry and aromaticity flags and bonds with two atom indices, bond order, stereochemistry, and aromaticity flags
Examples
Retrieve the bond graph for imatinib (OpenEye toolkit required)
>>> molecule = Molecule.from_iupac('imatinib') >>> nxgraph = molecule.to_networkx()
- find_rotatable_bonds(ignore_functional_groups=None, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Find all bonds classed as rotatable ignoring any matched to the
ignore_functional_groups
list.- Parameters
ignore_functional_groups (optional, List[str], default=None,) – A list of bond SMARTS patterns to be ignored when finding rotatable bonds.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=None) –
ToolkitRegistry
orToolkitWrapper
to use for SMARTS matching
- Returns
bonds (List[openff.toolkit.topology.molecule.Bond]) – The list of openff.toolkit.topology.molecule.Bond instances which are rotatable.
- property partial_charges
Returns the partial charges (if present) on the molecule.
- Returns
partial_charges (a openmm.unit.Quantity - wrapped numpy array [1 x n_atoms] or None) – The partial charges on this Molecule’s atoms. Returns None if no charges have been specified.
- property n_particles
The number of Particle objects, which corresponds to how many positions must be used.
- property conformers
Returns the list of conformers for this molecule. This returns a list of openmm.unit.Quantity-wrapped numpy arrays, of shape (3 x n_atoms) and with dimensions of distance. The return value is the actual list of conformers, and changes to the contents affect the original FrozenMolecule.
- property torsions
Get an iterator over all i-j-k-l torsions. Note that i-j-k-i torsions (cycles) are excluded.
- Returns
torsions (iterable of 4-Atom tuples)
- property impropers
Iterate over all improper torsions in the molecule.
- Returns
impropers (set of tuple) – An iterator of tuples, each containing the indices of atoms making up a possible improper torsion.
See also
- property smirnoff_impropers
Iterate over improper torsions in the molecule, but only those with trivalent centers, reporting the central atom second in each improper.
Note that it’s possible that a trivalent center will not have an improper assigned. This will depend on the force field that is used.
Also note that this will return 6 possible atom orderings around each improper center. In current SMIRNOFF parameterization, three of these six orderings will be used for the actual assignment of the improper term and measurement of the angles. These three orderings capture the three unique angles that could be calculated around the improper center, therefore the sum of these three terms will always return a consistent energy.
The exact three orderings that will be applied during parameterization can not be determined in this method, since it requires sorting the particle indices, and those indices may change when this molecule is added to a Topology.
For more details on the use of three-fold (‘trefoil’) impropers, see https://openforcefield.github.io/standards/standards/smirnoff/#impropertorsions
- Returns
impropers (set of tuple) – An iterator of tuples, each containing the indices of atoms making up a possible improper torsion. The central atom is listed second in each tuple.
See also
- property amber_impropers
Iterate over improper torsions in the molecule, but only those with trivalent centers, reporting the central atom first in each improper.
Note that it’s possible that a trivalent center will not have an improper assigned. This will depend on the force field that is used.
Also note that this will return 6 possible atom orderings around each improper center. In current AMBER parameterization, one of these six orderings will be used for the actual assignment of the improper term and measurement of the angle. This method does not encode the logic to determine which of the six orderings AMBER would use.
- Returns
impropers (set of tuple) – An iterator of tuples, each containing the indices of atoms making up a possible improper torsion. The central atom is listed first in each tuple.
See also
- nth_degree_neighbors(n_degrees)[source]
Return canonicalized pairs of atoms whose shortest separation is exactly n bonds. Only pairs with increasing atom indices are returned.
- Parameters
n (int) – The number of bonds separating atoms in each pair
- Returns
neighbors (iterator of tuple of Atom) – Tuples (len 2) of atom that are separated by
n
bonds.
Notes
The criteria used here relies on minimum distances; when there are multiple valid paths between atoms, such as atoms in rings, the shortest path is considered. For example, two atoms in “meta” positions with respect to each other in a benzene are separated by two paths, one length 2 bonds and the other length 4 bonds. This function would consider them to be 2 apart and would not include them if
n=4
was passed.
- to_hill_formula() str [source]
Generate the Hill formula of this molecule.
- Returns
formula (the Hill formula of the molecule)
:raises NotImplementedError : if the molecule is not of one of the specified types.:
- chemical_environment_matches(query, unique=False, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Retrieve all matches for a given chemical environment query.
- Parameters
query (str or ChemicalEnvironment) – SMARTS string (with one or more tagged atoms) or
ChemicalEnvironment
query. Query will internally be resolved to SMIRKS usingquery.asSMIRKS()
if it has an.asSMIRKS
method.toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=GLOBAL_TOOLKIT_REGISTRY) –
ToolkitRegistry
orToolkitWrapper
to use for chemical environment matches
- Returns
matches (list of atom index tuples) – A list of tuples, containing the indices of the matching atoms.
Examples
Retrieve all the carbon-carbon bond matches in a molecule
>>> molecule = Molecule.from_iupac('imatinib') >>> matches = molecule.chemical_environment_matches('[#6X3:1]~[#6X3:2]')
- classmethod from_iupac(iupac_name, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit, allow_undefined_stereo=False, **kwargs)[source]
Generate a molecule from IUPAC or common name
- Parameters
iupac_name (str) – IUPAC name of molecule to be generated
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional, default=GLOBAL_TOOLKIT_REGISTRY) –
ToolkitRegistry
orToolkitWrapper
to use for chemical environment matchesallow_undefined_stereo (bool, default=False) – If false, raises an exception if molecule contains undefined stereochemistry.
- Returns
molecule (Molecule) – The resulting molecule with position
.. note :: This method requires the OpenEye toolkit to be installed.
Examples
Create a molecule from an IUPAC name
>>> molecule = Molecule.from_iupac('4-[(4-methylpiperazin-1-yl)methyl]-N-(4-methyl-3-{[4-(pyridin-3-yl)pyrimidin-2-yl]amino}phenyl)benzamide')
Create a molecule from a common name
>>> molecule = Molecule.from_iupac('imatinib')
- to_iupac(toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Generate IUPAC name from Molecule
- Returns
iupac_name (str) – IUPAC name of the molecule
.. note :: This method requires the OpenEye toolkit to be installed.
Examples
>>> from openff.toolkit.utils import get_data_file_path >>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf') >>> molecule = Molecule(sdf_filepath) >>> iupac_name = molecule.to_iupac()
- classmethod from_topology(topology)[source]
Return a Molecule representation of an OpenFF Topology containing a single Molecule object.
- Parameters
topology (openff.toolkit.topology.Topology) – The
Topology
object containing a singleMolecule
object. Note that OpenMM and MDTrajTopology
objects are not supported.- Returns
molecule (openff.toolkit.topology.Molecule) – The Molecule object in the topology
- Raises
ValueError – If the topology does not contain exactly one molecule.
Examples
Create a molecule from a Topology object that contains exactly one molecule
>>> molecule = Molecule.from_topology(topology)
- to_topology()[source]
Return an OpenFF Topology representation containing one copy of this molecule
- Returns
topology (openff.toolkit.topology.Topology) – A Topology representation of this molecule
Examples
>>> molecule = Molecule.from_iupac('imatinib') >>> topology = molecule.to_topology()
- classmethod from_file(file_path, file_format=None, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit, allow_undefined_stereo=False)[source]
Create one or more molecules from a file
- Parameters
file_path (str or file-like object) – The path to the file or file-like object to stream one or more molecules from.
file_format (str, optional, default=None) – Format specifier, usually file suffix (eg. ‘MOL2’, ‘SMI’) Note that not all toolkits support all formats. Check ToolkitWrapper.toolkit_file_read_formats for your loaded toolkits for details.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper,) –
optional –
ToolkitRegistry
orToolkitWrapper
to use for file loading. If a Toolkit is passed, only the highest-precedence toolkit is useddefault=GLOBAL_TOOLKIT_REGISTRY –
ToolkitRegistry
orToolkitWrapper
to use for file loading. If a Toolkit is passed, only the highest-precedence toolkit is usedallow_undefined_stereo (bool, default=False) – If false, raises an exception if oemol contains undefined stereochemistry.
- Returns
molecules (Molecule or list of Molecules) – If there is a single molecule in the file, a Molecule is returned; otherwise, a list of Molecule objects is returned.
Examples
>>> from openff.toolkit.tests.utils import get_monomer_mol2_file_path >>> mol2_file_path = get_monomer_mol2_file_path('cyclohexane') >>> molecule = Molecule.from_file(mol2_file_path)
- to_file(file_path, file_format, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Write the current molecule to a file or file-like object
- Parameters
file_path (str or file-like object) – A file-like object or the path to the file to be written.
file_format (str) – Format specifier, one of [‘MOL2’, ‘MOL2H’, ‘SDF’, ‘PDB’, ‘SMI’, ‘CAN’, ‘TDT’] Note that not all toolkits support all formats
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper,) –
optional –
ToolkitRegistry
orToolkitWrapper
to use for file writing. If a Toolkit is passed, only the highest-precedence toolkit is useddefault=GLOBAL_TOOLKIT_REGISTRY –
ToolkitRegistry
orToolkitWrapper
to use for file writing. If a Toolkit is passed, only the highest-precedence toolkit is used
- Raises
ValueError – If the requested file_format is not supported by one of the installed cheminformatics toolkits
Examples
>>> molecule = Molecule.from_iupac('imatinib') >>> molecule.to_file('imatinib.mol2', file_format='mol2') >>> molecule.to_file('imatinib.sdf', file_format='sdf') >>> molecule.to_file('imatinib.pdb', file_format='pdb')
- enumerate_tautomers(max_states=20, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Enumerate the possible tautomers of the current molecule
- Parameters
max_states (int optional, default=20) – The maximum amount of molecules that should be returned
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, default=GLOBAL_TOOLKIT_REGISTRY) –
ToolkitRegistry
orToolkitWrapper
to use to enumerate the tautomers.
- Returns
molecules (List[openff.toolkit.topology.Molecule]) – A list of openff.toolkit.topology.Molecule instances not including the input molecule.
- enumerate_stereoisomers(undefined_only=False, max_isomers=20, rationalise=True, toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Enumerate the stereocenters and bonds of the current molecule.
- Parameters
undefined_only (bool optional, default=False) – If we should enumerate all stereocenters and bonds or only those with undefined stereochemistry
max_isomers (int optional, default=20) – The maximum amount of molecules that should be returned
rationalise (bool optional, default=True) – If we should try to build and rationalise the molecule to ensure it can exist
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, default=GLOBAL_TOOLKIT_REGISTRY) –
ToolkitRegistry
orToolkitWrapper
to use to enumerate the stereoisomers.
- Returns
molecules (List[openff.toolkit.topology.Molecule]) – A list of
Molecule
instances not including the input molecule.
- enumerate_protomers(max_states=10)[source]
Enumerate the formal charges of a molecule to generate different protomoers.
- Parameters
max_states (int optional, default=10,) – The maximum number of protomer states to be returned.
- Returns
molecules (List[openff.toolkit.topology.Molecule],) – A list of the protomers of the input molecules not including the input.
- classmethod from_rdkit(rdmol, allow_undefined_stereo=False, hydrogens_are_explicit=False)[source]
Create a Molecule from an RDKit molecule.
Requires the RDKit to be installed.
- Parameters
- Returns
molecule (openff.toolkit.topology.Molecule) – An OpenFF molecule
Examples
Create a molecule from an RDKit molecule
>>> from rdkit import Chem >>> from openff.toolkit.tests.utils import get_data_file_path >>> rdmol = Chem.MolFromMolFile(get_data_file_path('systems/monomers/ethanol.sdf')) >>> molecule = Molecule.from_rdkit(rdmol)
- to_rdkit(aromaticity_model=DEFAULT_AROMATICITY_MODEL)[source]
Create an RDKit molecule
Requires the RDKit to be installed.
- Parameters
aromaticity_model (str, optional, default=DEFAULT_AROMATICITY_MODEL) – The aromaticity model to use
- Returns
rdmol (rdkit.RDMol) – An RDKit molecule
Examples
Convert a molecule to RDKit
>>> from openff.toolkit.utils import get_data_file_path >>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf') >>> molecule = Molecule(sdf_filepath) >>> rdmol = molecule.to_rdkit()
- classmethod from_openeye(oemol, allow_undefined_stereo=False)[source]
Create a
Molecule
from an OpenEye molecule.Requires the OpenEye toolkit to be installed.
- Parameters
oemol (openeye.oechem.OEMol) – An OpenEye molecule
allow_undefined_stereo (bool, default=False) – If
False
, raises an exception if oemol contains undefined stereochemistry.
- Returns
molecule (openff.toolkit.topology.Molecule) – An OpenFF molecule
Examples
Create a
Molecule
from an OpenEye OEMol>>> from openeye import oechem >>> from openff.toolkit.tests.utils import get_data_file_path >>> ifs = oechem.oemolistream(get_data_file_path('systems/monomers/ethanol.mol2')) >>> oemols = list(ifs.GetOEGraphMols()) >>> molecule = Molecule.from_openeye(oemols[0])
- to_qcschema(multiplicity=1, conformer=0, extras=None)[source]
Create a QCElemental Molecule.
Warning
This API is experimental and subject to change.
- Parameters
multiplicity (int, default=1,) – The multiplicity of the molecule; sets
molecular_multiplicity
field for QCElemental Molecule.conformer (int, default=0,) – The index of the conformer to use for the QCElemental Molecule geometry.
extras (dict, default=None) – A dictionary that should be included in the
extras
field on the QCElemental Molecule. This can be used to include extra information, such as a smiles representation.
- Returns
qcelemental.models.Molecule – A validated QCElemental Molecule.
Examples
Create a QCElemental Molecule:
>>> import qcelemental as qcel >>> mol = Molecule.from_smiles('CC') >>> mol.generate_conformers(n_conformers=1) >>> qcemol = mol.to_qcschema()
- Raises
MissingDependencyError – If qcelemental is not installed, the qcschema can not be validated.
InvalidConformerError – No conformer found at the given index.
- classmethod from_mapped_smiles(mapped_smiles, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit, allow_undefined_stereo=False)[source]
Create an
Molecule
from a mapped SMILES made with cmiles. The molecule will be in the order of the indexing in the mapped smiles string.Warning
This API is experimental and subject to change.
- Parameters
mapped_smiles (str,) – A CMILES-style mapped smiles string with explicit hydrogens.
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionallow_undefined_stereo (bool, default=False) – If false, raises an exception if oemol contains undefined stereochemistry.
- Returns
offmol (openff.toolkit.topology.molecule.Molecule) – An OpenFF molecule instance.
- Raises
SmilesParsingError – If the given SMILES had no indexing picked up by the toolkits.
- classmethod from_qcschema(qca_record, client=None, toolkit_registry=ToolkitRegistry containing The RDKit, AmberTools, Built-in Toolkit, allow_undefined_stereo=False)[source]
Create a Molecule from a QCArchive molecule record or dataset entry based on attached cmiles information.
For a molecule record, a conformer will be set from its geometry.
For a dataset entry, if a corresponding client instance is provided, the starting geometry for that entry will be used as a conformer.
A QCElemental Molecule produced from
Molecule.to_qcschema
can be round-tripped through this method to produce a new, valid Molecule.- Parameters
qca_record (dict) – A QCArchive molecule record or dataset entry.
client (optional, default=None,) – A qcportal.FractalClient instance to use for fetching an initial geometry. Only used if
qca_record
is a dataset entry.toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionallow_undefined_stereo (bool, default=False) – If false, raises an exception if qca_record contains undefined stereochemistry.
- Returns
molecule (openff.toolkit.topology.Molecule) – An OpenFF molecule instance.
Examples
Get Molecule from a QCArchive molecule record:
>>> from qcportal import FractalClient >>> client = FractalClient() >>> offmol = Molecule.from_qcschema(client.query_molecules(molecular_formula="C16H20N3O5")[0])
Get Molecule from a QCArchive optimization entry:
>>> from qcportal import FractalClient >>> client = FractalClient() >>> optds = client.get_collection("OptimizationDataset", "SMIRNOFF Coverage Set 1") >>> offmol = Molecule.from_qcschema(optds.get_entry('coc(o)oc-0'))
Same as above, but with conformer(s) from initial molecule(s) by providing client to database:
>>> offmol = Molecule.from_qcschema(optds.get_entry('coc(o)oc-0'), client=client)
- Raises
If the record dict can not be made from
qca_record
. - If aclient
is passed and it could not retrieve the initial molecule.
KeyError – If the dict does not contain the
canonical_isomeric_explicit_hydrogen_mapped_smiles
.InvalidConformerError – Silent error, if the conformer could not be attached.
- classmethod from_pdb_and_smiles(file_path, smiles, allow_undefined_stereo=False)[source]
Create a Molecule from a pdb file and a SMILES string using RDKit.
Requires RDKit to be installed.
Warning
This API is experimental and subject to change.
The molecule is created and sanitised based on the SMILES string, we then find a mapping between this molecule and one from the PDB based only on atomic number and connections. The SMILES molecule is then reindexed to match the PDB, the conformer is attached, and the molecule returned.
Note that any stereochemistry in the molecule is set by the SMILES, and not the coordinates of the PDB.
- Parameters
- Returns
molecule (openff.toolkit.Molecule) – An OFFMol instance with ordering the same as used in the PDB file.
- Raises
InvalidConformerError – If the SMILES and PDB molecules are not isomorphic.
- canonical_order_atoms(toolkit_registry=GLOBAL_TOOLKIT_REGISTRY)[source]
Canonical order the atoms in a copy of the molecule using a toolkit, returns a new copy.
Warning
This API is experimental and subject to change.
- Parameters
toolkit_registry (openff.toolkit.utils.toolkits.ToolkitRegistry or openff.toolkit.utils.toolkits.ToolkitWrapper, optional) –
ToolkitRegistry
orToolkitWrapper
to use for SMILES-to-molecule conversionReturns
------- –
molecule (openff.toolkit.topology.Molecule) – An new OpenFF style molecule with atoms in the canonical order.
- remap(mapping_dict, current_to_new=True)[source]
Remap all of the indexes in the molecule to match the given mapping dict
Warning
This API is experimental and subject to change.
- Parameters
- Returns
new_molecule (openff.toolkit.topology.molecule.Molecule) – An openff.toolkit.Molecule instance with all attributes transferred, in the PDB order.
- to_openeye(aromaticity_model=DEFAULT_AROMATICITY_MODEL)[source]
Create an OpenEye molecule
Requires the OpenEye toolkit to be installed.
- Parameters
aromaticity_model (str, optional, default=DEFAULT_AROMATICITY_MODEL) – The aromaticity model to use
- Returns
oemol (openeye.oechem.OEMol) – An OpenEye molecule
Examples
Create an OpenEye molecule from a Molecule
>>> molecule = Molecule.from_smiles('CC') >>> oemol = molecule.to_openeye()
- classmethod from_bson(serialized)
Instantiate an object from a BSON serialized representation.
Specification: http://bsonspec.org/
- Parameters
serialized (bytes) – A BSON serialized representation of the object
- Returns
instance (cls) – An instantiated object
- classmethod from_json(serialized)
Instantiate an object from a JSON serialized representation.
Specification: https://www.json.org/
- Parameters
serialized (str) – A JSON serialized representation of the object
- Returns
instance (cls) – An instantiated object
- classmethod from_messagepack(serialized)
Instantiate an object from a MessagePack serialized representation.
Specification: https://msgpack.org/index.html
- Parameters
serialized (bytes) – A MessagePack-encoded bytes serialized representation
- Returns
instance (cls) – Instantiated object.
- classmethod 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
serialized (str) – A pickled representation of the object
- Returns
instance (cls) – An instantiated object
- classmethod from_toml(serialized)
Instantiate an object from a TOML serialized representation.
Specification: https://github.com/toml-lang/toml
- Parameters
serlialized (str) – A TOML serialized representation of the object
- Returns
instance (cls) – An instantiated object
- classmethod from_xml(serialized)
Instantiate an object from an XML serialized representation.
Specification: https://www.w3.org/XML/
- Parameters
serialized (bytes) – An XML serialized representation
- Returns
instance (cls) – Instantiated object.
- classmethod from_yaml(serialized)
Instantiate from a YAML serialized representation.
Specification: http://yaml.org/
- Parameters
serialized (str) – A YAML serialized representation of the object
- Returns
instance (cls) – Instantiated object
- get_bond_between(i, j)[source]
Returns the bond between two atoms
- to_bson()
Return a BSON serialized representation.
Specification: http://bsonspec.org/
- Returns
serialized (bytes) – A BSON serialized representation of the objecft
- to_json(indent=None)
Return a JSON serialized representation.
Specification: https://www.json.org/
- Parameters
indent (int, optional, default=None) – If not None, will pretty-print with specified number of spaces for indentation
- Returns
serialized (str) – A JSON serialized representation of the object
- to_messagepack()
Return a MessagePack representation.
Specification: https://msgpack.org/index.html
- Returns
serialized (bytes) – A MessagePack-encoded bytes serialized representation of the object
- 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
serialized (str) – A pickled representation of the object
- to_toml()
Return a TOML serialized representation.
Specification: https://github.com/toml-lang/toml
- Returns
serialized (str) – A TOML serialized representation of the object
- to_xml(indent=2)
Return an XML representation.
Specification: https://www.w3.org/XML/
- Parameters
indent (int, optional, default=2) – If not None, will pretty-print with specified number of spaces for indentation
- Returns
serialized (bytes) – A MessagePack-encoded bytes serialized representation.
- to_yaml()
Return a YAML serialized representation.
Specification: http://yaml.org/
- Returns
serialized (str) – A YAML serialized representation of the object