rmgpy.molecule.symmetry

rmgpy.molecule.symmetry.calculate_atom_symmetry_number(molecule, atom)

Return the symmetry number centered at atom in the structure. The atom of interest must not be in a cycle.

rmgpy.molecule.symmetry.calculate_bond_symmetry_number(molecule, atom1, atom2)

Return the symmetry number centered at bond in the structure.

rmgpy.molecule.symmetry.calculate_axis_symmetry_number(molecule)

Get the axis symmetry number correction. The “axis” refers to a series of two or more cumulated double bonds (e.g. C=C=C, etc.). Corrections for single C=C bonds are handled in getBondSymmetryNumber().

Each axis (C=C=C) has the potential to double the symmetry number. If an end has 0 or 1 groups (eg. =C=CJJ or =C=C-R) then it cannot alter the axis symmetry and is disregarded:

A=C=C=C..        A-C=C=C=C-A

  s=1                s=1

If an end has 2 groups that are different then it breaks the symmetry and the symmetry for that axis is 1, no matter what’s at the other end:

A\               A\         /A
  T=C=C=C=C-A      T=C=C=C=T
B/               A/         \B
      s=1             s=1

If you have one or more ends with 2 groups, and neither end breaks the symmetry, then you have an axis symmetry number of 2:

A\         /B      A\
  C=C=C=C=C          C=C=C=C-B
A/         \B      A/
      s=2                s=2
rmgpy.molecule.symmetry.calculate_cyclic_symmetry_number(molecule)

Get the symmetry number correction for cyclic regions of a molecule. For complicated fused rings the smallest set of smallest rings is used.

rmgpy.molecule.symmetry.calculate_symmetry_number(molecule)

Return the symmetry number for the structure. The symmetry number includes both external and internal modes.