A quick example:
>>> from rdkit import Chem
>>> from rdkit.Chem.AtomPairs.Utils import NumPiElectrons
>>> m = Chem.MolFromSmiles("O=C1[O-]->[Cr+3]23(<-[O-]C(=O)C4=CC=CC=N->24)(<-[O-]C(=O)C2=CC=CC=N->32)<-N2=CC=CC=C12")
>>> sum(NumPiElectrons(atom) for atom in m.GetAtoms())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <genexpr>
File "/Users/vonbarge/schrodinger/builds/2024-2/internal/lib/python3.11/site-packages/rdkit/Chem/AtomPairs/Utils.py", line 157, in NumPiElectrons
raise ValueError("explicit valence exceeds atom degree")
ValueError: explicit valence exceeds atom degree
Also, while having a look at this, I noticed that some of the atoms seem to be assigned incorrect hybridization states:
>>> from rdkit import Chem
>>> m = Chem.MolFromSmiles("O=C1[O-]->[Cr+3]23(<-[O-]C(=O)C4=CC=CC=N->24)(<-[O-]C(=O)C2=CC=CC=N->32)<-N2=CC=CC=C12")
>>> m.Debug()
--------------------------
Atoms:
0 8 O chg: 0 deg: 1 exp: 2 imp: 0 hyb: SP2
1 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2
2 8 O chg: -1 deg: 2 exp: 1 imp: 0 hyb: SP3D
3 24 Cr chg: 3 deg: 6 exp: 6 imp: 0 hyb: SP3D
4 8 O chg: -1 deg: 2 exp: 1 imp: 0 hyb: SP3D
5 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2
6 8 O chg: 0 deg: 1 exp: 2 imp: 0 hyb: SP2
7 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2 arom?: 1
8 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
9 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
10 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
11 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
12 7 N chg: 0 deg: 3 exp: 3 imp: 0 hyb: SP2 arom?: 1
13 8 O chg: -1 deg: 2 exp: 1 imp: 0 hyb: SP3D
14 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2
15 8 O chg: 0 deg: 1 exp: 2 imp: 0 hyb: SP2
16 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2 arom?: 1
17 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
18 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
19 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
20 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
21 7 N chg: 0 deg: 3 exp: 3 imp: 0 hyb: SP2 arom?: 1
22 7 N chg: 0 deg: 3 exp: 3 imp: 0 hyb: SP2 arom?: 1
23 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
24 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
25 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
26 6 C chg: 0 deg: 2 exp: 3 imp: 1 hyb: SP2 arom?: 1
27 6 C chg: 0 deg: 3 exp: 4 imp: 0 hyb: SP2 arom?: 1
Bonds:
[...]
Atoms 2, 4 and 8 have SP3D hybridization, despite they are involver in a carbonyl group. I would expect them to have SP2 hybridization.
A quick example:
Also, while having a look at this, I noticed that some of the atoms seem to be assigned incorrect hybridization states:
Atoms 2, 4 and 8 have SP3D hybridization, despite they are involver in a carbonyl group. I would expect them to have SP2 hybridization.