from rdkit import Chem
def canonicalizatonsmi(smi):
newsmi = Chem.MolToSmiles(Chem.MolFromSmiles(smi))
return newsmi
def canon_reaction(rxnstring):
#print("rxnstring:",rxnstring)
r,p =rxnstring.split('>>')
rs = r.split('.')
#print("rs",rs)
ps = p.split('.')
#print("ps",p)
rscans=[]
pscans=[]
for reactant in rs:
temp=canonicalizatonsmi(reactant)
#print(reactant,temp)
rscans.append(temp)
for product in ps:
pscans.append(canonicalizatonsmi(product))
rscan='.'.join(sorted(rscans))
pscan='.'.join(pscans)
newrxnsring='%s>>%s'%(rscan,pscan)
return newrxnsring
from rdkit import Chem
rxnstring= '[H]C([H])([H])Oc1ccc(CCNC=O)cc1OC([H])([H])[H]>>[H]C([H])([H])Oc1cc2c(cc1OC([H])([H])[H])CCN=C2'
canon_reaction(rxnstring)
‘COc1ccc(CCNC=O)cc1OC>>COc1cc2c(cc1OC)CCN=C2’