Coverage for chempropstereo/stereochemistry/all.py: 100%
6 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-03-22 21:04 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-03-22 21:04 +0000
1"""Module for tagging stereogenic groups in molecules.
3.. module:: stereochemistry.all
4.. moduleauthor:: Charlles Abreu <craabreu@mit.edu>
5"""
7from rdkit import Chem
9from .cistrans import tag_cis_trans_stereobonds
10from .tetrahedral import tag_tetrahedral_stereocenters
13def tag_stereogroups(mol: Chem.Mol, force: bool = False) -> None:
14 r"""Add canonical stereochemistry information to stereogenic groups in a molecule.
16 The currently supported stereogenic groups are:
18 - tetrahedral stereocenters
19 - cis/trans stereobonds
21 Parameters
22 ----------
23 mol
24 The molecule whose stereogenic groups are to be tagged.
25 force
26 Whether to overwrite existing chiral tags (default is False).
28 Examples
29 --------
30 >>> from rdkit import Chem
31 >>> from chempropstereo import stereochemistry
32 >>> mol = Chem.MolFromSmiles("C\C(=C(O)/C=C(/N)O)[C@@H]([C@H](N)O)O")
33 >>> stereochemistry.tag_stereogroups(mol)
34 >>> for atom in mol.GetAtoms():
35 ... direction = stereochemistry.ScanDirection.get_from(atom)
36 ... if direction != stereochemistry.ScanDirection.NONE:
37 ... print(stereochemistry.describe_stereocenter(atom))
38 C8 (CCW) O12 C9 C1
39 C9 (CW) O11 N10 C8
40 >>> for bond in mol.GetBonds():
41 ... arrangement = stereochemistry.StemArrangement.get_from(bond)
42 ... if arrangement != stereochemistry.StemArrangement.NONE:
43 ... print(stereochemistry.describe_stereobond(bond))
44 C0 C8 C1 (CIS) C2 C4 O3
45 C2 C4 (TRANS) C5 N6 O7
47 """
48 tag_tetrahedral_stereocenters(mol, force)
49 tag_cis_trans_stereobonds(mol, force)