Rdkit: Error breaking StereoBonds in reactions

Created on 9 May 2020  路  5Comments  路  Source: rdkit/rdkit

Version '2019.09.3'

I am just noting this strange behavior where the intramolecular reaction does not seem to be allowed when disconnecting a bond to an atom that is part of a separate double bond.

Example to reproduce

mol = Chem.MolFromSmiles('Cc1ccc(C(=O)/C=C/c2cnc3ccccc3n2)cc1')
rxn = AllChem.ReactionFromSmarts('[c:1][C:2](=[O])[C:3]>>([*:1][C:2]#[N].[*:3][Mg][Cl])')
p = rxn.RunReactants((Chem.AddHs(mol),))

gives

RuntimeError: Pre-condition Violation
    bgnIdx not connected to begin atom of bond
    Violation occurred on line 283 in file Code/GraphMol/Bond.cpp
    Failed Expression: getOwningMol().getBondBetweenAtoms(getBeginAtomIdx(), bgnIdx) != nullptr
    RDKIT: 2019.09.3
    BOOST: 1_67

Though removing the outer parentheses to give rxn = AllChem.ReactionFromSmarts('[c:1][C:2](=[O])[C:3]>>[*:1][C:2]#[N].[*:3][Mg][Cl]') makes the reaction work perfectly fine. I am somewhat confused by this and appreciate any help with the issue. Thanks!

bug

All 5 comments

鍥剧墖

Interesting, thanks. So the main difference seems to be the version?

Interesting, thanks. So the main difference seems to be the version?

You could try to run the code in the different version.

This does look like a bug, but it isn't with the components, it appears to be with chirality:

This fails:

mol = Chem.MolFromSmiles('C(=O)/C=C/C')
rxn = AllChem.ReactionFromSmarts('[C:2](=[O])[C:3]>>[C:2]#[N][*:3]')
rxn.RunReactants([mol])

This passes:

mol = Chem.MolFromSmiles('C(=O)C=CC')
rxn = AllChem.ReactionFromSmarts('[C:2](=[O])[C:3]>>[C:2]#[N][*:3]')
rxn.RunReactants([mol])

@greglandrum Chirality issues should get auto assigned to you :)

Was this page helpful?
0 / 5 - 0 ratings