Hi Sean,

The problem in this case is that in a non-kekulized SMILES, an aromatic 
nitrogen atom binding with a hydrogen should be symbolised as “[nH]”. The “H” 
is compulsory.


So you can change your reaction into "[#7:1]C(=O)OC(C)(C)C>>[#7H:1]"


Best,


Hongbin Yang 杨弘宾, Ph.D.
Research: Toxicophore and Chemoinformatics



On 10/3/2019 04:53,Sean Stromberg<sean.stromb...@eighteenfiftynine.com> wrote:

Dear Rdkit Community,

I’m trying to learn reaction smarts with rdkit and would appreciate some 
clarification. I’m doing Boc deprotection on a large set of building blocks and 
the way I’ve defined my reaction, the number of hydrogens added after the 
deprotection is always wrong. I normally can call UpdatePropertyCache() to fix 
this, but when it’s an indole that is being deprotected when I call 
UpdatePropertyCache() it raises:

          

ValueError: Sanitization error: Can't kekulize mol.  Unkekulized atoms: 0 1 2 3 
4 5 7 8 10

 

I know how to add hydrogens explicitly in the reaction smarts but not with 
reference to the nitrogen’s original bonds. Can I add explicit hydrogens 
conditionally? What is the best way to obtain results from the two reactant 
cases in my example code?

 

from rdkit import Chem

from rdkit.Chem import AllChem

 

reaction = AllChem.ReactionFromSmarts('[#7:1]C(=O)OC(C)(C)C>>[#7:1]')

 

reactants_1 = 
[Chem.MolFromSmiles('CC(C)(C)OC(=O)NC1(C(=O)O)CCN(C(=O)OCC2c3ccccc3-c3ccccc32)CC1')]

display(Draw.MolToImage(reactants_1[0], legend='mol_1'))

products = reaction.RunReactants(reactants_1)

product = products[0][0]

display(Draw.MolToImage(product, legend='mol_1 deprotected'))

product.UpdatePropertyCache()

display(Draw.MolToImage(product, legend='mol_1 deprotected and updated'))

 

 

reactants_2 = 
[Chem.MolFromSmiles('CC(C)(C)OC(=O)n1cc(C[C@@H](NC(=O)OCC2c3ccccc3-c3ccccc32)C(=O)O)c2ccccc21')]

display(Draw.MolToImage(reactants_2[0], legend='mol_2'))

products = reaction.RunReactants(reactants_2)

product = products[0][0]

display(Draw.MolToImage(product, legend='mol_2 deprotected'))

product.UpdatePropertyCache()

display(Draw.MolToImage(product, legend='mol_2 deprotected and updated'))

 

Thanks for any clarification you can provide!

Sincerely,

Sean Stromberg

 

P.S. Does anyone know why I get so many products when I run these reactions?

 
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to