rmgpy.molecule.GroupAtom

class rmgpy.molecule.GroupAtom

An atom group. This class is based on the Atom class, except that it uses atom types instead of elements, and all attributes are lists rather than individual values. The attributes are:

Attribute

Type

Description

atomtype

list

The allowed atom types (as AtomType objects)

radical_electrons

list

The allowed numbers of radical electrons (as short integers)

charge

list

The allowed formal charges (as short integers)

label

str

A string label that can be used to tag individual atoms

lone_pairs

list

The number of lone electron pairs

charge

list

The partial charge of the atom

site

list

The allowed adsorption sites

morphology

list

The allowed morphologies

props

dict

Dictionary for storing additional atom properties

reg_dim_atm

list

List of atom types that are free dimensions in tree optimization

reg_dim_u

list

List of unpaired electron numbers that are free dimensions in tree optimization

reg_dim_r

list

List of inRing values that are free dimensions in tree optimization

reg_dim_site

list

List of sites that are free dimensions in tree optimization

reg_dim_morphology

list

List of morphologies that are free dimensions in tree optimization

Each list represents a logical OR construct, i.e. an atom will match the group if it matches any item in the list. However, the radical_electrons, and charge attributes are linked such that an atom must match values from the same index in each of these in order to match.

apply_action(action)

Update the atom group as a result of applying action, a tuple containing the name of the reaction recipe action along with any required parameters. The available actions can be found here.

copy()

Return a deep copy of the GroupAtom object. Modifying the attributes of the copy will not affect the original.

count_bonds(wildcards)

Returns: list of the number of bonds currently on the :class:GroupAtom

If the argument wildcards is turned off then any bonds with multiple options for bond orders will not be counted

equivalent(other, strict)

Returns True if other is equivalent to self or False if not, where other can be either an Atom or an GroupAtom object. When comparing two GroupAtom objects, this function respects wildcards, e.g. R!H is equivalent to C.

has_wildcards()

Return True if the atom has wildcards in any of the attributes: atomtype, radical electrons, lone pairs, charge, and bond order. Returns ‘’False’’ if no attribute has wildcards.

is_bonded_to_surface()

Return True if the atom is bonded to a surface GroupAtom X False if it is not

is_bromine()

Return True if the atom represents a bromine atom or False if not.

is_carbon()

Return True if the atom represents a carbon atom or False if not.

is_chlorine()

Return True if the atom represents a chlorine atom or False if not.

is_electron()

Return True if the atom represents a surface site or False if not.

is_fluorine()

Return True if the atom represents a fluorine atom or False if not.

is_lithium()

Return True if the atom represents a bromine atom or False if not.

is_nitrogen()

Return True if the atom represents a nitrogen atom or False if not.

is_oxygen()

Return True if the atom represents an oxygen atom or False if not.

is_proton()

Return True if the atom represents a surface site or False if not.

is_specific_case_of(other)

Returns True if self is the same as other or is a more specific case of other. Returns False if some of self is not included in other or they are mutually exclusive.

is_sulfur()

Return True if the atom represents an sulfur atom or False if not.

is_surface_site()

Return True if the atom represents a surface site or False if not.

make_sample_atom()

Returns: a class :Atom: object analagous to the GroupAtom

This makes a sample, so it takes the first element when there are multiple options inside of self.atomtype, self.radical_electrons, self.lone_pairs, and self.charge

reset_connectivity_values()

Reset the cached structure information for this vertex.