#!/usr/local2/bin/python from openeye.oechem import * import os, string ifs = oemolistream() ifs.open('a_aa_outofkegg.sdf') ofs_3 = oemolostream() ofs_3.open('g_create_derivatives.smi') ofs_3.SetFormat(OEFormat_SMI) ofs_4 = oemolostream() ofs_4.open('g_create_derivatives.sdf') ofs_4.SetFormat(OEFormat_SDF) title_list = [] # N-Acetyl nacet = OEGraphMol() OEParseSmiles(nacet, "CC(=O)Cl") libgen = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[C:6][C:7](=[O:8])[Cl:9]>>[CH3:6][C:7](=[O:8])[N:1][C:2][C:3](=[O:4])[O:5]") libgen.SetExplicitHydrogens(False) libgen.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen.AddStartingMaterial(mol, 0) libgen.AddStartingMaterial(nacet, 1) mol.Clear() nacet.Clear() for products in libgen.GetProducts(): title = products.GetTitle()+'nacetyl' products.SetTitle(title) title_list.append(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') nacet = OEGraphMol() OEParseSmiles(nacet, "CC(=O)Cl") libgen2 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[C:6][C:7](=[O:8])[Cl:9]>>[CH3:6][C:7](=[O:8])[N:101][*:102][*:103]") libgen2.SetExplicitHydrogens(False) libgen2.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen2.AddStartingMaterial(mol, 0) libgen2.AddStartingMaterial(nacet, 1) mol.Clear() nacet.Clear() for products in libgen2.GetProducts(): num = 1 title = products.GetTitle()+'nacetyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nacetyl_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() # N-Succinyl ifs.open('a_aa_outofkegg.sdf') succ = OEGraphMol() OEParseSmiles(succ, "[O-]C(=O)CCC(=O)Cl") libgen3 = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[O-:6][C:7](=[O:8])[C:9][C:10][C:11](=[O:12])[Cl:13]>>[O-:6][C:7](=[O:8])[C:9][C:10][C:11](=[O:12])[N:1][C:2][C:3](=[O:4])[O:5]") libgen3.SetExplicitHydrogens(False) libgen3.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen3.AddStartingMaterial(mol, 0) libgen3.AddStartingMaterial(succ, 1) mol.Clear() succ.Clear() for products in libgen3.GetProducts(): num = 1 title = products.GetTitle()+'nsuccinyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nsuccinyl_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') succ = OEGraphMol() OEParseSmiles(succ, "[O-]C(=O)CCC(=O)Cl") libgen3 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[O-:6][C:7](=[O:8])[C:9][C:10][C:11](=[O:12])[Cl:13]>>[O-:6][C:7](=[O:8])[C:9][C:10][C:11](=[O:12])[N:101][*:102][*:103]") libgen3.SetExplicitHydrogens(False) libgen3.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen3.AddStartingMaterial(mol, 0) libgen3.AddStartingMaterial(succ, 1) mol.Clear() succ.Clear() for products in libgen3.GetProducts(): num = 1 title = products.GetTitle()+'nsuccinyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nsuccinyl_'+str(num) title_list.append(title) products.SetTitle(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() # N-Formyl ifs.open('a_aa_outofkegg.sdf') form = OEGraphMol() OEParseSmiles(form, "ClC=O") libgen4 = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[Cl:10][C:7]=[O:8]>>[C:7](=[O:8])[N:1][C:2][C:3](=[O:4])[O:5]") libgen4.SetExplicitHydrogens(False) libgen4.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen4.AddStartingMaterial(mol, 0) libgen4.AddStartingMaterial(form, 1) mol.Clear() form.Clear() for products in libgen4.GetProducts(): num = 1 title = products.GetTitle()+'nformyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nformyl_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') form = OEGraphMol() OEParseSmiles(form, "ClC=O") libgen5 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[Cl:10][C:7]=[O:8]>>[C:7](=[O:8])[N:101][*:102][*:103]") libgen5.SetExplicitHydrogens(False) libgen5.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen5.AddStartingMaterial(mol, 0) libgen5.AddStartingMaterial(form, 1) mol.Clear() form.Clear() for products in libgen5.GetProducts(): num = 1 title = products.GetTitle()+'nformyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nformyl_'+str(num) title_list.append(title) products.SetTitle(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() #N-Carbamoyl ifs.open('a_aa_outofkegg.sdf') carbam = OEGraphMol() OEParseSmiles(carbam, "[NH2]C(=O)Cl") libgen6 = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[NH2:9][C:7](=[O:8])[Cl:10]>>[NH2:9][C:7](=[O:8])[N:1][C:2][C:3](=[O:4])[O:5]") libgen6.SetExplicitHydrogens(False) libgen6.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen6.AddStartingMaterial(mol, 0) libgen6.AddStartingMaterial(carbam, 1) mol.Clear() carbam.Clear() for products in libgen6.GetProducts(): num = 1 title = products.GetTitle()+'ncarbamoyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'ncarbamoyl_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') carbam = OEGraphMol() OEParseSmiles(carbam, "[NH2]C(=O)Cl") libgen7 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[NH2:9][C:7](=[O:8])[Cl:10]>>[NH2:9][C:7](=[O:8])[N:101][*:102][*:103]") libgen7.SetExplicitHydrogens(False) libgen7.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen7.AddStartingMaterial(mol, 0) libgen7.AddStartingMaterial(carbam, 1) mol.Clear() carbam.Clear() for products in libgen7.GetProducts(): num = 1 title = products.GetTitle()+'ncarbamoyl_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'ncarbamoyl_'+str(num) title_list.append(title) products.SetTitle(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) # N-formimino ifs.open('a_aa_outofkegg.sdf') pattern = OEGraphMol() OEParseSmiles(pattern, "[NH]=CCl") libgen8 = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[NH:8]=[C:7][Cl:10]>>[NH:8]=[C:7][N:1][C:2][C:3](=[O:4])[O:5]") libgen8.SetExplicitHydrogens(False) libgen8.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen8.AddStartingMaterial(mol, 0) libgen8.AddStartingMaterial(pattern, 1) mol.Clear() pattern.Clear() for products in libgen8.GetProducts(): num = 1 title = products.GetTitle()+'nformimino_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') pattern = OEGraphMol() OEParseSmiles(pattern, "[NH]=CCl") libgen9 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[NH:8]=[C:7][Cl:9]>>[NH:8]=[C:7][N:101][*:102][*:103]") libgen9.SetExplicitHydrogens(False) libgen9.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen9.AddStartingMaterial(mol, 0) libgen9.AddStartingMaterial(pattern, 1) mol.Clear() pattern.Clear() for products in libgen9.GetProducts(): num = 1 title = products.GetTitle()+'nformimino_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'nformimino_'+str(num) title_list.append(title) products.SetTitle(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() #hydantoin ifs.open('a_aa_outofkegg.sdf') pattern = OEGraphMol() OEParseSmiles(pattern, "O=C1[NH]CC1=O") libgen10 = OELibraryGen("[N:1][C:2][C:3](=[O:4])[O:5].[C:7]1(=[O:6])[NH:8][C:9][C:10]1=[O:11]>>[C:10]1(=[O:11])[C:9][NH:8][C:7](=[O:6])[N:1]1[C:2][C:3](=[O:4])[O:5]") libgen10.SetExplicitHydrogens(False) libgen10.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen10.AddStartingMaterial(mol, 0) libgen10.AddStartingMaterial(pattern, 1) mol.Clear() pattern.Clear() for products in libgen10.GetProducts(): num = 1 title = products.GetTitle()+'hydantoin_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'hydantoin_'+str(num) title_list.append(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ifs.open('a_aa_outofkegg.sdf') pattern = OEGraphMol() OEParseSmiles(pattern, "O=C1[NH]CC1=O") libgen11 = OELibraryGen("[Nh3,Nh2:101][Ch2&!R:102][Ch2:103].[C:7]1(=[O:6])[NH:8][C:9][C:10]1=[O:11]>>[C:10]1(=[O:11])[C:9][NH:8][C:7](=[O:6])[N:101]1[*:102][*:103]") libgen11.SetExplicitHydrogens(False) libgen11.SetValenceCorrection(True) for mol in ifs.GetOEMols(): libgen11.AddStartingMaterial(mol, 0) libgen11.AddStartingMaterial(pattern, 1) mol.Clear() pattern.Clear() for products in libgen11.GetProducts(): num = 1 title = products.GetTitle()+'hydantoin_'+str(num) while title in title_list: num+=1 title = products.GetTitle()+'hydantoin_'+str(num) title_list.append(title) products.SetTitle(title) products.SetTitle(title) OEWriteMolecule(ofs_3, products) OEWriteMolecule(ofs_4, products) ifs.close() ofs_3.close() ofs_4.close()