from frowns import MDL from frowns import Smiles from frowns import Smarts from string import * import sys if __name__ == '__main__': "SMART Seacher" if len(sys.argv) !=3: print "Usage: smartsearcher xxx.sdf 'PATTERN' > result.txt" sys.exit(1) pattern = Smarts.compile(sys.argv[2]) mdlfile = sys.argv[1] mol_info = MDL.sdin(open(mdlfile)) count = 0 while 1: try: mol, err, sdf_text = mol_info.next() except StopIteration: break match = pattern.match(mol,1) if match != None: count = count+1 print "-"*50 print mol.cansmiles() index = 1 for path in match: print "match", index print "\tatoms", path.atoms print "\tbond", path.bonds index = index + 1 print count, "Hit Compound"