Atom

class openff.toolkit.topology.Atom(atomic_number: int, formal_charge: int | Quantity, is_aromatic: bool, name: str | None = None, molecule=None, stereochemistry: str | None = None, metadata: dict[str, Union[int, str]] | None = None)[source]

A chemical atom.

Warning

This API is experimental and subject to change.

__init__(atomic_number: int, formal_charge: int | Quantity, is_aromatic: bool, name: str | None = None, molecule=None, stereochemistry: str | None = None, metadata: dict[str, Union[int, str]] | None = None)[source]

Create an immutable Atom object.

Object is serializable and immutable.

Parameters:
  • atomic_number – Atomic number of the atom. Must be non-negative and non-zero.

  • formal_charge – Formal charge of the atom

  • is_aromatic – If True, atom is aromatic; if False, not aromatic

  • stereochemistry – Either ‘R’ or ‘S’ for specified stereochemistry, or None for ambiguous stereochemistry

  • name – An optional name to be associated with the atom

  • metadata – An optional dictionary where keys are strings and values are strings or ints. This is intended to record atom-level information used to inform hierarchy definition and iteration, such as grouping atom by residue and chain.

Examples

Create a non-aromatic carbon atom

>>> atom = Atom(6, 0, False)

Create a chiral carbon atom

>>> atom = Atom(6, 0, False, stereochemistry='R', name='CT')

Methods

__init__(atomic_number, formal_charge, ...)

Create an immutable Atom object.

add_bond(bond)

Adds a bond that this atom is involved in

from_bson(serialized)

Instantiate an object from a BSON serialized representation.

from_dict(atom_dict)

Create an Atom from a dict representation.

from_json(serialized)

Instantiate an object from a JSON serialized representation.

from_messagepack(serialized)

Instantiate an object from a MessagePack serialized representation.

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.

is_bonded_to(atom2)

Determine whether this atom is bound to another atom

is_in_ring([toolkit_registry])

Return whether or not this atom is in a ring(s) (of any size)

to_bson()

Return a BSON serialized representation.

to_dict()

Return a dict representation of the atom.

to_json([indent])

Return a JSON serialized representation.

to_messagepack()

Return a MessagePack representation.

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.

Attributes

atomic_number

The integer atomic number of the atom.

bonded_atoms

The list of Atom objects this atom is involved in bonds with

bonds

The list of Bond objects this atom is involved in.

formal_charge

The atom's formal charge

is_aromatic

The atom's is_aromatic flag

mass

The standard atomic weight (abundance-weighted isotopic mass) of the atomic site.

metadata

The atom's metadata dictionary

molecule

The Molecule this particle is part of.

molecule_atom_index

The index of this Atom within the the list of atoms in the parent Molecule.

molecule_particle_index

Returns the index of this particle in its molecule

name

The name of this atom, if any

partial_charge

The partial charge of the atom, if any.

stereochemistry

The atom's stereochemistry (if defined, otherwise None)

symbol

Return the symbol implied by the atomic number of this atom

add_bond(bond: Bond)[source]

Adds a bond that this atom is involved in

Parameters:

bond – A bond involving this atom

to_dict() dict[str, Union[NoneType, str, int, bool, dict[Any, Any]]][source]

Return a dict representation of the atom.

classmethod from_dict(atom_dict: dict) A[source]

Create an Atom from a dict representation.

property metadata

The atom’s metadata dictionary

property formal_charge

The atom’s formal charge

property partial_charge

The partial charge of the atom, if any.

Returns:

unit-wrapped float with dimension of atomic charge, or None if no charge has been specified

property is_aromatic

The atom’s is_aromatic flag

property stereochemistry

The atom’s stereochemistry (if defined, otherwise None)

property atomic_number: int

The integer atomic number of the atom.

property symbol: str

Return the symbol implied by the atomic number of this atom

property mass: Quantity

The standard atomic weight (abundance-weighted isotopic mass) of the atomic site.

The mass is reported in units of Dalton.

property name

The name of this atom, if any

property bonds

The list of Bond objects this atom is involved in.

property bonded_atoms: Generator[Atom, None, None]

The list of Atom objects this atom is involved in bonds with

is_bonded_to(atom2)[source]

Determine whether this atom is bound to another atom

Parameters:

atom2 – a different atom in the same molecule

Returns:

bool – Whether this atom is bound to atom2

is_in_ring(toolkit_registry: ToolkitRegistry = GLOBAL_TOOLKIT_REGISTRY) bool[source]

Return whether or not this atom is in a ring(s) (of any size)

This Atom is expected to be attached to a molecule (Atom.molecule).

Parameters:

toolkit_registryToolkitRegistry to use to enumerate the tautomers.

property molecule_atom_index: int

The index of this Atom within the the list of atoms in the parent Molecule.

classmethod from_bson(serialized)

Instantiate an object from a BSON serialized representation.

Specification: http://bsonspec.org/

Parameters:

serialized – A BSON serialized representation of the object

Returns:

instance – An instantiated object

classmethod from_json(serialized: str)

Instantiate an object from a JSON serialized representation.

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

Parameters:

serialized – A JSON serialized representation of the object

Returns:

instance – An instantiated object

classmethod from_messagepack(serialized)

Instantiate an object from a MessagePack serialized representation.

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

Parameters:

serialized – A MessagePack-encoded bytes serialized representation

Returns:

instance – 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 – A pickled representation of the object

Returns:

instance – An instantiated object

classmethod from_toml(serialized)

Instantiate an object from a TOML serialized representation.

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

Parameters:

serlialized – A TOML serialized representation of the object

Returns:

instance – An instantiated object

classmethod from_xml(serialized)

Instantiate an object from an XML serialized representation.

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

Parameters:

serialized – An XML serialized representation

Returns:

instance – Instantiated object.

classmethod from_yaml(serialized)

Instantiate from a YAML serialized representation.

Specification: http://yaml.org/

Parameters:

serialized – A YAML serialized representation of the object

Returns:

instance – Instantiated object

property molecule: FrozenMolecule

The Molecule this particle is part of.

property molecule_particle_index: int

Returns the index of this particle in its molecule

to_bson()

Return a BSON serialized representation.

Specification: http://bsonspec.org/

Returns:

serialized – A BSON serialized representation of the objecft

to_json(indent=None) str

Return a JSON serialized representation.

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

Parameters:

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

Returns:

serialized – A JSON serialized representation of the object

to_messagepack()

Return a MessagePack representation.

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

Returns:

serialized – 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 – A pickled representation of the object

to_toml()

Return a TOML serialized representation.

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

Returns:

serialized – A TOML serialized representation of the object

to_xml(indent=2)

Return an XML representation.

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

Parameters:

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

Returns:

serialized – A MessagePack-encoded bytes serialized representation.

to_yaml()

Return a YAML serialized representation.

Specification: http://yaml.org/

Returns:

serialized – A YAML serialized representation of the object