openforcefield.topology.FrozenMolecule

class openforcefield.topology.FrozenMolecule(other=None, file_format=None, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object>, 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 openforcefield.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.

Attributes
angles

Get an iterator over all i-j-k angles.

atoms

Iterate over all Atom objects.

bonds

Iterate over all Bond objects.

conformers

Returns the list of conformers for this molecule.

impropers

Iterate over all proper torsions in the molecule

n_angles

int: number of angles in the Molecule.

n_atoms

The number of Atom objects.

n_bonds

The number of Bond objects.

n_conformers

Returns the number of conformers for this molecule.

n_impropers

int: number of improper torsions in the Molecule.

n_particles

The number of Particle objects, which corresponds to how many positions must be used.

n_propers

int: number of proper torsions in the Molecule.

n_virtual_sites

The number of VirtualSite objects.

name

The name (or title) of the molecule

partial_charges

Returns the partial charges (if present) on the molecule.

particles

Iterate over all Particle objects.

propers

Iterate over all proper torsions in the molecule

properties

The properties dictionary of the molecule

torsions

Get an iterator over all i-j-k-l torsions.

total_charge

Return the total charge on the molecule

virtual_sites

Iterate over all VirtualSite objects.

Methods

chemical_environment_matches(self, query[, …])

Retrieve all matches for a given chemical environment query.

compute_partial_charges(self[, toolkit_registry])

Warning! Not Implemented! Calculate partial atomic charges for this molecule using an underlying toolkit

compute_partial_charges_am1bcc(self[, …])

Calculate partial atomic charges for this molecule using AM1-BCC run by an underlying toolkit

compute_wiberg_bond_orders(self[, …])

Calculate wiberg bond orders for this molecule using an underlying toolkit

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_iupac(iupac_name, \*\*kwargs)

Generate a molecule from IUPAC or common name

from_json(serialized)

Instantiate an object from a JSON serialized representation.

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_pickle(serialized)

Instantiate an object from a pickle serialized representation.

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 openforcefield 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(self[, …])

Generate conformers for this molecule using an underlying toolkit

get_bond_between(self, i, j)

Returns the bond between two atoms

get_fractional_bond_orders(self[, method, …])

Get fractional bond orders.

is_isomorphic(self, other[, …])

Determines whether the molecules are isomorphic by comparing their graphs.

to_bson(self)

Return a BSON serialized representation.

to_dict(self)

Return a dictionary representation of the molecule.

to_file(self, file_path, file_format[, …])

Write the current molecule to a file or file-like object

to_iupac(self)

Generate IUPAC name from Molecule

to_json(self[, indent])

Return a JSON serialized representation.

to_messagepack(self)

Return a MessagePack representation.

to_networkx(self)

Generate a NetworkX undirected graph from the Molecule.

to_openeye(self[, aromaticity_model])

Create an OpenEye molecule

to_pickle(self)

Return a pickle serialized representation.

to_rdkit(self[, aromaticity_model])

Create an RDKit molecule

to_smiles(self[, toolkit_registry])

Return a canonical isomeric SMILES representation of the current molecule

to_toml(self)

Return a TOML serialized representation.

to_topology(self)

Return an openforcefield Topology representation containing one copy of this molecule

to_xml(self[, indent])

Return an XML representation.

to_yaml(self)

Return a YAML serialized representation.

__init__(self, other=None, file_format=None, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>, allow_undefined_stereo=False)[source]

Create a new FrozenMolecule object

Parameters
otheroptional, default=None

If specified, attempt to construct a copy of the Molecule from the specified object. This can be any one of the following:

  • a Molecule object

  • a file that can be used to construct a Molecule object

  • an openeye.oechem.OEMol

  • an rdkit.Chem.rdchem.Mol

  • a serialized Molecule object

file_formatstr, 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_registrya ToolkitRegistry or ToolkitWrapper object, optional, default=GLOBAL_TOOLKIT_REGISTRY

ToolkitRegistry or ToolkitWrapper to use for I/O operations

allow_undefined_stereobool, 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 openforcefield.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__(self[, other, file_format, …])

Create a new FrozenMolecule object

chemical_environment_matches(self, query[, …])

Retrieve all matches for a given chemical environment query.

compute_partial_charges(self[, toolkit_registry])

Warning! Not Implemented! Calculate partial atomic charges for this molecule using an underlying toolkit

compute_partial_charges_am1bcc(self[, …])

Calculate partial atomic charges for this molecule using AM1-BCC run by an underlying toolkit

compute_wiberg_bond_orders(self[, …])

Calculate wiberg bond orders for this molecule using an underlying toolkit

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_iupac(iupac_name, \*\*kwargs)

Generate a molecule from IUPAC or common name

from_json(serialized)

Instantiate an object from a JSON serialized representation.

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_pickle(serialized)

Instantiate an object from a pickle serialized representation.

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 openforcefield 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(self[, …])

Generate conformers for this molecule using an underlying toolkit

get_bond_between(self, i, j)

Returns the bond between two atoms

get_fractional_bond_orders(self[, method, …])

Get fractional bond orders.

is_isomorphic(self, other[, …])

Determines whether the molecules are isomorphic by comparing their graphs.

to_bson(self)

Return a BSON serialized representation.

to_dict(self)

Return a dictionary representation of the molecule.

to_file(self, file_path, file_format[, …])

Write the current molecule to a file or file-like object

to_iupac(self)

Generate IUPAC name from Molecule

to_json(self[, indent])

Return a JSON serialized representation.

to_messagepack(self)

Return a MessagePack representation.

to_networkx(self)

Generate a NetworkX undirected graph from the Molecule.

to_openeye(self[, aromaticity_model])

Create an OpenEye molecule

to_pickle(self)

Return a pickle serialized representation.

to_rdkit(self[, aromaticity_model])

Create an RDKit molecule

to_smiles(self[, toolkit_registry])

Return a canonical isomeric SMILES representation of the current molecule

to_toml(self)

Return a TOML serialized representation.

to_topology(self)

Return an openforcefield Topology representation containing one copy of this molecule

to_xml(self[, indent])

Return an XML representation.

to_yaml(self)

Return a YAML serialized representation.

Attributes

angles

Get an iterator over all i-j-k angles.

atoms

Iterate over all Atom objects.

bonds

Iterate over all Bond objects.

conformers

Returns the list of conformers for this molecule.

impropers

Iterate over all proper torsions in the molecule

n_angles

int: number of angles in the Molecule.

n_atoms

The number of Atom objects.

n_bonds

The number of Bond objects.

n_conformers

Returns the number of conformers for this molecule.

n_impropers

int: number of improper torsions in the Molecule.

n_particles

The number of Particle objects, which corresponds to how many positions must be used.

n_propers

int: number of proper torsions in the Molecule.

n_virtual_sites

The number of VirtualSite objects.

name

The name (or title) of the molecule

partial_charges

Returns the partial charges (if present) on the molecule.

particles

Iterate over all Particle objects.

propers

Iterate over all proper torsions in the molecule

properties

The properties dictionary of the molecule

torsions

Get an iterator over all i-j-k-l torsions.

total_charge

Return the total charge on the molecule

virtual_sites

Iterate over all VirtualSite objects.

to_dict(self)[source]

Return a dictionary representation of the molecule.

Returns
molecule_dictOrderedDict

A dictionary representation of the molecule.

classmethod from_dict(molecule_dict)[source]

Create a new Molecule from a dictionary representation

Parameters
molecule_dictOrderedDict

A dictionary representation of the molecule.

Returns
moleculeMolecule

A Molecule created from the dictionary representation

to_smiles(self, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Return a canonical isomeric SMILES representation of the current molecule

Note

RDKit and OpenEye versions will not necessarily return the same representation.

Parameters
toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for SMILES conversion

Returns
smilesstr

Canonical isomeric explicit-hydrogen SMILES

Examples

>>> from openforcefield.utils import get_data_file_path
>>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf')
>>> molecule = Molecule(sdf_filepath)
>>> smiles = molecule.to_smiles()
static from_smiles(smiles, hydrogens_are_explicit=False, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>, allow_undefined_stereo=False)[source]

Construct a Molecule from a SMILES representation

Parameters
smilesstr

The SMILES representation of the molecule.

hydrogens_are_explicitbool, default = False

If False, the cheminformatics toolkit will perform hydrogen addition

toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for SMILES-to-molecule conversion

allow_undefined_stereobool, 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
moleculeopenforcefield.topology.Molecule

Examples

>>> molecule = Molecule.from_smiles('Cc1ccccc1')
is_isomorphic(self, other, compare_atom_stereochemistry=True, compare_bond_stereochemistry=True)[source]

Determines whether the molecules are isomorphic by comparing their graphs.

Parameters
otheran openforcefield.topology.molecule.FrozenMolecule

The molecule to test for isomorphism.

compare_atom_stereochemistrybool, optional

If False, atoms’ stereochemistry is ignored for the purpose of determining equality. Default is True.

compare_bond_stereochemistrybool, optional

If False, bonds’ stereochemistry is ignored for the purpose of determining equality. Default is True.

Returns
molecules_are_isomorphicbool
generate_conformers(self, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>, n_conformers=10, clear_existing=True)[source]

Generate conformers for this molecule using an underlying toolkit

Parameters
toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for SMILES-to-molecule conversion

n_conformersint, default=1

The maximum number of conformers to produce

clear_existingbool, default=True

Whether to overwrite existing conformers for the molecule

Raises
InvalidToolkitError

If an invalid object is passed as the toolkit_registry parameter

Examples

>>> molecule = Molecule.from_smiles('CCCCCC')
>>> molecule.generate_conformers()
compute_partial_charges_am1bcc(self, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Calculate partial atomic charges for this molecule using AM1-BCC run by an underlying toolkit

Parameters
toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for the calculation

Raises
InvalidToolkitError

If an invalid object is passed as the toolkit_registry parameter

Examples

>>> molecule = Molecule.from_smiles('CCCCCC')
>>> molecule.generate_conformers()
>>> molecule.compute_partial_charges_am1bcc()
compute_partial_charges(self, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Warning! Not Implemented! Calculate partial atomic charges for this molecule using an underlying toolkit

Parameters
quantum_chemical_methodstring, default=’AM1-BCC’

The quantum chemical method to use for partial charge calculation.

partial_charge_methodstring, default=’None’

The partial charge calculation method to use for partial charge calculation.

toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for SMILES-to-molecule conversion

Raises
InvalidToolkitError

If an invalid object is passed as the toolkit_registry parameter

Examples

>>> molecule = Molecule.from_smiles('CCCCCC')
>>> molecule.generate_conformers()
compute_wiberg_bond_orders(self, charge_model=None, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Calculate wiberg bond orders for this molecule using an underlying toolkit

Parameters
toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=None

ToolkitRegistry or ToolkitWrapper to use for SMILES-to-molecule conversion

charge_modelstring, optional

The charge model to use for partial charge calculation

Raises
InvalidToolkitError

If an invalid object is passed as the toolkit_registry parameter

Examples

>>> molecule = Molecule.from_smiles('CCCCCC')
>>> molecule.generate_conformers()
>>> molecule.compute_wiberg_bond_orders()
to_networkx(self)[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
graphnetworkx.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()
property partial_charges

Returns the partial charges (if present) on the molecule.

Returns
partial_chargesa simtk.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 n_atoms

The number of Atom objects.

property n_virtual_sites

The number of VirtualSite objects.

property n_bonds

The number of Bond objects.

property n_angles

int: number of angles in the Molecule.

property n_propers

int: number of proper torsions in the Molecule.

property n_impropers

int: number of improper torsions in the Molecule.

property particles

Iterate over all Particle objects.

property atoms

Iterate over all Atom objects.

property conformers

Returns the list of conformers for this molecule. This returns a list of simtk.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 n_conformers

Returns the number of conformers for this molecule.

property virtual_sites

Iterate over all VirtualSite objects.

property bonds

Iterate over all Bond objects.

property angles

Get an iterator over all i-j-k angles.

property torsions

Get an iterator over all i-j-k-l torsions. Note that i-j-k-i torsions (cycles) are excluded.

Returns
torsionsiterable of 4-Atom tuples
property propers

Iterate over all proper torsions in the molecule

property impropers

Iterate over all proper torsions in the molecule

property total_charge

Return the total charge on the molecule

property name

The name (or title) of the molecule

property properties

The properties dictionary of the molecule

chemical_environment_matches(self, query, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Retrieve all matches for a given chemical environment query.

Parameters
querystr or ChemicalEnvironment

SMARTS string (with one or more tagged atoms) or ChemicalEnvironment query Query will internally be resolved to SMIRKS using query.asSMIRKS() if it has an .asSMIRKS method.

toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper, optional, default=GLOBAL_TOOLKIT_REGISTRY

ToolkitRegistry or ToolkitWrapper to use for chemical environment matches

Returns
matcheslist 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, **kwargs)[source]

Generate a molecule from IUPAC or common name

Parameters
iupac_namestr

IUPAC name of molecule to be generated

allow_undefined_stereobool, default=False

If false, raises an exception if molecule contains undefined stereochemistry.

Returns
moleculeMolecule

The resulting molecule with position

Note

This method requires the OpenEye toolkit to be installed. ..

Examples

Create a molecule from a common 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(self)[source]

Generate IUPAC name from Molecule

Returns
iupac_namestr

IUPAC name of the molecule

Note

This method requires the OpenEye toolkit to be installed. ..

Examples

>>> from openforcefield.utils import get_data_file_path
>>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf')
>>> molecule = Molecule(sdf_filepath)
>>> iupac_name = molecule.to_iupac()
static from_topology(topology)[source]

Return a Molecule representation of an openforcefield Topology containing a single Molecule object.

Parameters
topologyopenforcefield.topology.Topology

The Topology object containing a single Molecule object. Note that OpenMM and MDTraj Topology objects are not supported.

Returns
moleculeopenforcefield.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(self)[source]

Return an openforcefield Topology representation containing one copy of this molecule

Returns
topologyopenforcefield.topology.Topology

A Topology representation of this molecule

Examples

>>> molecule = Molecule.from_iupac('imatinib')
>>> topology = molecule.to_topology()
static from_file(file_path, file_format=None, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>, allow_undefined_stereo=False)[source]

Create one or more molecules from a file

Parameters
file_pathstr or file-like object

The path to the file or file-like object to stream one or more molecules from.

file_formatstr, 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_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper,
optional, default=GLOBAL_TOOLKIT_REGISTRY

ToolkitRegistry or ToolkitWrapper to use for file loading. If a Toolkit is passed, only the highest-precedence toolkit is used

allow_undefined_stereobool, default=False

If false, raises an exception if oemol contains undefined stereochemistry.

Returns
moleculesMolecule 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 openforcefield.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(self, file_path, file_format, toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Write the current molecule to a file or file-like object

Parameters
file_pathstr or file-like object

A file-like object or the path to the file to be written.

file_formatstr

Format specifier, one of [‘MOL2’, ‘MOL2H’, ‘SDF’, ‘PDB’, ‘SMI’, ‘CAN’, ‘TDT’] Note that not all toolkits support all formats

toolkit_registryopenforcefield.utils.toolkits.ToolRegistry or openforcefield.utils.toolkits.ToolkitWrapper,
optional, default=GLOBAL_TOOLKIT_REGISTRY

ToolkitRegistry or ToolkitWrapper 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')  
static from_rdkit(rdmol, allow_undefined_stereo=False)[source]

Create a Molecule from an RDKit molecule.

Requires the RDKit to be installed.

Parameters
rdmolrkit.RDMol

An RDKit molecule

allow_undefined_stereobool, default=False

If false, raises an exception if oemol contains undefined stereochemistry.

Returns
moleculeopenforcefield.Molecule

An openforcefield molecule

Examples

Create a molecule from an RDKit molecule

>>> from rdkit import Chem
>>> from openforcefield.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(self, aromaticity_model='OEAroModel_MDL')[source]

Create an RDKit molecule

Requires the RDKit to be installed.

Parameters
aromaticity_modelstr, optional, default=DEFAULT_AROMATICITY_MODEL

The aromaticity model to use

Returns
rdmolrkit.RDMol

An RDKit molecule

Examples

Convert a molecule to RDKit

>>> from openforcefield.utils import get_data_file_path
>>> sdf_filepath = get_data_file_path('molecules/ethanol.sdf')
>>> molecule = Molecule(sdf_filepath)
>>> rdmol = molecule.to_rdkit()
static from_openeye(oemol, allow_undefined_stereo=False)[source]

Create a Molecule from an OpenEye molecule.

Requires the OpenEye toolkit to be installed.

Parameters
oemolopeneye.oechem.OEMol

An OpenEye molecule

allow_undefined_stereobool, default=False

If false, raises an exception if oemol contains undefined stereochemistry.

Returns
moleculeopenforcefield.topology.Molecule

An openforcefield molecule

Examples

Create a Molecule from an OpenEye OEMol

>>> from openeye import oechem
>>> from openforcefield.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_openeye(self, aromaticity_model='OEAroModel_MDL')[source]

Create an OpenEye molecule

Requires the OpenEye toolkit to be installed.

Parameters
aromaticity_modelstr, optional, default=DEFAULT_AROMATICITY_MODEL

The aromaticity model to use

Returns
oemolopeneye.oechem.OEMol

An OpenEye molecule

Examples

Create an OpenEye molecule from a Molecule

>>> molecule = Molecule.from_smiles('CC')
>>> oemol = molecule.to_openeye()
get_fractional_bond_orders(self, method='Wiberg', toolkit_registry=<openforcefield.utils.toolkits.ToolkitRegistry object at 0x7f0c2989fa90>)[source]

Get fractional bond orders.

methodstr, optional, default=’Wiberg’

The name of the charge method to use. Options are: * ‘Wiberg’ : Wiberg bond order

toolkit_registryopenforcefield.utils.toolkits ToolkitRegistry

The toolkit registry to use for molecule operations

Examples

Get fractional Wiberg bond orders

>>> molecule = Molecule.from_iupac('imatinib')
>>> molecule.generate_conformers()
>>> fractional_bond_orders = molecule.get_fractional_bond_orders(method='Wiberg')
classmethod from_bson(serialized)

Instantiate an object from a BSON serialized representation.

Specification: http://bsonspec.org/

Parameters
serializedbytes

A BSON serialized representation of the object

Returns
instancecls

An instantiated object

classmethod from_json(serialized)

Instantiate an object from a JSON serialized representation.

Specification: https://www.json.org/

Parameters
serializedstr

A JSON serialized representation of the object

Returns
instancecls

An instantiated object

classmethod from_messagepack(serialized)

Instantiate an object from a MessagePack serialized representation.

Specification: https://msgpack.org/index.html

Parameters
serializedbytes

A MessagePack-encoded bytes serialized representation

Returns
instancecls

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
serializedstr

A pickled representation of the object

Returns
instancecls

An instantiated object

classmethod from_toml(serialized)

Instantiate an object from a TOML serialized representation.

Specification: https://github.com/toml-lang/toml

Parameters
serlializedstr

A TOML serialized representation of the object

Returns
instancecls

An instantiated object

classmethod from_xml(serialized)

Instantiate an object from an XML serialized representation.

Specification: https://www.w3.org/XML/

Parameters
serializedbytes

An XML serialized representation

Returns
instancecls

Instantiated object.

classmethod from_yaml(serialized)

Instantiate from a YAML serialized representation.

Specification: http://yaml.org/

Parameters
serializedstr

A YAML serialized representation of the object

Returns
instancecls

Instantiated object

to_bson(self)

Return a BSON serialized representation.

Specification: http://bsonspec.org/

Returns
serializedbytes

A BSON serialized representation of the objecft

to_json(self, indent=None)

Return a JSON serialized representation.

Specification: https://www.json.org/

Parameters
indentint, optional, default=None

If not None, will pretty-print with specified number of spaces for indentation

Returns
serializedstr

A JSON serialized representation of the object

to_messagepack(self)

Return a MessagePack representation.

Specification: https://msgpack.org/index.html

Returns
serializedbytes

A MessagePack-encoded bytes serialized representation of the object

to_pickle(self)

Return a pickle serialized representation.

Warning

This is not recommended for safe, stable storage since the pickle specification may change between Python versions.

Returns
serializedstr

A pickled representation of the object

to_toml(self)

Return a TOML serialized representation.

Specification: https://github.com/toml-lang/toml

Returns
serializedstr

A TOML serialized representation of the object

to_xml(self, indent=2)

Return an XML representation.

Specification: https://www.w3.org/XML/

Parameters
indentint, optional, default=2

If not None, will pretty-print with specified number of spaces for indentation

Returns
serializedbytes

A MessagePack-encoded bytes serialized representation.

to_yaml(self)

Return a YAML serialized representation.

Specification: http://yaml.org/

Returns
serializedstr

A YAML serialized representation of the object

get_bond_between(self, i, j)[source]

Returns the bond between two atoms

Parameters
i, jint or Atom

Atoms or atom indices to check

Returns
bondBond

The bond between i and j.