coordgenlibs
coordgenlibs copied to clipboard
rdCoordGen.AddCoords returning empty conformer for large system
Originally reported here
I do not have a standalone example for this failure, but the coordgen call made by RDKit in this case is returning an empty conformer.
mol = MolFromSmiles('OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1O')
rdCoordGen.AddCoords(mol)
for x in range(5):
pos = mol.GetConformer().GetAtomPosition(x)
print(pos.x, pos.y, pos.z)
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
Obviously this molecule is large and difficult to lay out in 2D, but I would have expected AddCoords to indicate failure somehow.
>>>from rdkit import rdBase
>>>rdBase.rdkitVersion
"2021.03.1"
Thanks, @jasondbiggs . This is great to know. Have you seen many examples of this?
@d-b-w this is the first example I've seen but if I look at compounds similar to it on pubchem I see failures on some of them as well. This SMILES for example,
"C=C(N)NC(=O)c1ncn(C2CC(OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3OP(O)(=S)OCC3OC(n4cnc5c(=O)[nH]c(N)nc54)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3OP(O)(=S)OCC3OC(n4ccc(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cnc5c(=O)[nH]c(N)nc54)CC3OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cnc5c(=O)[nH]c(N)nc54)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3OP(O)(=S)OCC3OC(n4ccc(N)nc4=O)CC3OP(O)(=S)OCC3OC(n4cnc5c(=O)[nH]c(N)nc54)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3OP(O)(=S)OCC3OC(n4cc(C)c(=O)[nH]c4=O)CC3O)C(COP(O)(=S)OC3CC(n4ccc(N)nc4=O)OC3COP(O)(=S)OC3CC(n4cc(C)c(=O)[nH]c4=O)OC3COP(O)(=S)OC3CC(n4cnc5c(=O)[nH]c(N)nc54)OC3COP(O)(=S)OC3CC(n4ccc(N)nc4=O)OC3COP(O)(=S)OC3CC(n4cc(C)c(=O)[nH]c4=O)OC3CO)O2)c1C"