find_aromatic_rings
#
- biotite.structure.find_aromatic_rings(atoms)[source]#
Find (anti-)aromatic rings in a structure.
- Parameters:
- atomsAtomArray or AtomArrayStack
The atoms to be searched for aromatic rings. Requires an associated
BondList
.
- Returns:
- ringslist of ndarray
The indices of the atoms that form aromatic rings. Each ring is represented by a list of indices. Only rings with minimum size are returned, i.e. two connected rings (e.g. in tryptophan) are reported as separate rings.
Notes
This function does not distinguish between aromatic and antiaromatic rings. All cycles containing atoms that are completely connected by aromatic bonds are considered aromatic rings.
The PDB Chemical Component Dictionary (CCD) does not identify aromatic rings in all compounds as such. Prominent examples are the nucleobases, where the 6-membered rings are not flagged as aromatic.
Examples
>>> nad = residue("NAD") >>> rings = find_aromatic_rings(nad) >>> print(rings) [array([41, 37, 36, 35, 43, 42]), array([19, 18, 16, 15, 21, 20]), array([12, 13, 14, 15, 21])] >>> for atom_indices in rings: ... print(np.sort(nad.atom_name[atom_indices])) ['C2N' 'C3N' 'C4N' 'C5N' 'C6N' 'N1N'] ['C2A' 'C4A' 'C5A' 'C6A' 'N1A' 'N3A'] ['C4A' 'C5A' 'C8A' 'N7A' 'N9A']