RDKit - rxn

Chemical Reactions

SMARTS-based language similar to Daylight’s Reaction SMILES

from rxn template

rxn = AllChem.ReactionFromSmarts('[C:1](=[O:2])-[OD1].[N!H0:3]>>[C:1](=[O:2])[N:3]')
rxn.GetNumProductTemplates() # 1
ps = rxn.RunReactants((Chem.MolFromSmiles('CC(=O)O'),Chem.MolFromSmiles('NC')))
len(ps) # 1 -> one entry for each possible set of products
len(ps[0]) # 1 -> each entry contains one molecule for each product
Chem.MolToSmiles(ps[0][0]) # 'CNC(C)=O'
ps = rxn.RunReactants((Chem.MolFromSmiles('C(COC(=O)O)C(=O)O'),Chem.MolFromSmiles('NC')))
len(ps) # 2
Chem.MolToSmiles(ps[0][0]) # 'CNC(=O)OCCC(=O)O'
Chem.MolToSmiles(ps[1][0]) # 'CNC(=O)CCOC(=O)O'

from MDL

rxn = AllChem.ReactionFromRxnFile('data/AmideBond.rxn')
rxn.GetNumReactantTemplates() # 2
rxn.GetNumProductTemplates() # 1
ps = rxn.RunReactants((Chem.MolFromSmiles('CC(=O)O'), Chem.MolFromSmiles('NC')))
len(ps) # 1
Chem.MolToSmiles(ps[0][0]) # 'CNC(C)=O'

use cano-smiles to find unique set.

molecules that are produced by the chemical reaction processing code are not sanitized

sanitized <-> kekulize

Protecting Atoms from react

Molecule fragmentation

  1. Recap

  2. BRICS

Chemical Features and Pharmacophores

Chemical Features

2D Pharmacophore Fingerprints

Combining a set of chemical features with the 2D (topological) distances between them gives a 2D pharmacophore.

https://www.rdkit.org/docs/GettingStartedInPython.html#d-pharmacophore-fingerprints

https://www.rdkit.org/docs/RDKit_Book.html

Last updated

Was this helpful?