Hi all,
I have generated a molecule that I can both visualize and export as
SMILES, but I can't Sanitize it. Creating a new molecule from that
SMILES fails due to something to do with the valence. It seems to me
that it has the correct amount of bonds.
Code to reproduce and 'debugging' that Ive tried:
--------------------------------------
#sanitize=False or it won't load this SMILES
mol =
Chem.MolFromSmiles('[CH3:0][CH2:1][CH2:2][CH2:3][CH2:4][nH:5]1[c:6]([CH:14](=[O:15])[*:16])[n:7][c:8]2[cH:9][cH:10][cH:11][cH:12][c:13]12',sanitize=False)
#print atom indices and atomic number:
for i in mol.GetAtoms():
print(i, i.GetIdx(), i.GetAtomicNum())
#display bonds relating to index 7. Seems correct for a carbon.
for i in mol.GetBonds():
if i.GetBeginAtomIdx()==7 or i.GetEndAtomIdx()==7:
print(i.GetBeginAtomIdx(), i.GetEndAtomIdx(), i.GetBondType())
#print valences. Fails on index 7.
for i in mol.GetAtoms():
print(i.GetIdx(), i.GetExplicitValence())
--------------------------------------
Can anyone please offer some advice as to what the problem is?
Much appreciated!
Lewis
PS. here is the output I get:
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 0 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 1 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 2 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 3 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 4 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 5 7
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 6 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 7 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 8 8
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 9 0
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 10 7
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 11 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 12 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 13 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 14 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c60> 15 6
<rdkit.Chem.rdchem.Atom object at 0x11a440c10> 16 6
6 7 SINGLE
7 8 DOUBLE
7 9 SINGLE
0 4
1 4
2 4
3 4
4 4
5 3
6 4
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-24-62fd51819686> in<module>()
7
8 for iin mol.GetAtoms():
----> 9print(i.GetIdx(), i.GetExplicitValence())
10 #valence = oneMol.GetAtomWithIdx(7).GetExplicitValence()
11 #print(valence)
RuntimeError: Pre-condition Violation
getExplicitValence() called without call to calcExplicitValence()
Violation occurred on line 162 in file Code/GraphMol/Atom.cpp
Failed Expression: d_explicitValence > -1
RDKIT: 2018.03.3
BOOST: 1_65_1
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss