def test(): import Smiles, time h = BuildMol() file = open("../test/data/NCI_aug00_SMI") lines = file.readlines() tests = [] for l in lines: tests.append(l.split()[0]) tests = tests[:1] ## for smi in ["C1C([NH4+])(=O).C1.[235U].N[C@@H](C)C(=O)O", ## "c1cccc1"]: t1 = time.time() for smi in tests: Smiles.tokenize(smi, h) #print smi for bond in h.mol.bonds: print bond.symbol, bond.bondorder, bond.bondtype, bond.fixed print h.mol.cansmiles() #.dump() t2 = time.time() delta = (t2 - t1) / len(tests) print "Time per molecule with no transform", delta print "molecules per second:", if delta: print 1 / delta else: print "very fast!"
def cleanup(s): save_h = SilentSaveTokens() Smiles.tokenize(s, save_h) save = [] for name, pos, text in save_h: save.append( (name, text) ) closures = {} in_quote = 0 i = 0 for name, text in save: if name == "open_bracket": in_quote = 1 has_element = 0 pos = i elif name == "close_bracket": in_quote = 0 elif name == "element" and in_quote: has_element = 1 i = i + 1 if in_quote: if has_element: save.append( ("close_bracket", "]") ) else: del save[pos:] i = 0 for name, text in save: if name == "closure": val = cleanup_closure(text) if closures.has_key(val): del closures[val] else: closures[val] = i i = i + 1 for val, i in closures.items(): save[i] = ("fake", "[%d*]" % val) # trim trailing '(', '.' and bond symbols while save and (save[-1][0] == "close_branch" or save[-1][0] == "dot" or save[-1][0] == "bond"): save.pop() paren_count = 0 for name, text in save: if name == "open_branch": paren_count = paren_count + 1 elif name == "close_branch": paren_count = paren_count - 1 assert paren_count >= 0, paren_count save.extend( [("close_branch", ")")] * paren_count ) smi = "" for name, text in save: smi = smi + text return smi
def test(): import Smiles, time h = BuildMol() file = open("../test/data/NCI_aug00_SMI") lines = file.readlines() tests = [] for l in lines: tests.append(l.split()[0]) tests = tests[:1] ## for smi in ["C1C([NH4+])(=O).C1.[235U].N[C@@H](C)C(=O)O", ## "c1cccc1"]: t1 = time.time() for smi in tests: Smiles.tokenize(smi, h) #print smi for bond in h.mol.bonds: print bond.symbol, bond.bondorder, bond.bondtype, bond.fixed print h.mol.cansmiles()#.dump() t2 = time.time() delta = (t2-t1) / len(tests) print "Time per molecule with no transform", delta print "molecules per second:", if delta: print 1/delta else: print "very fast!"
def cleanup(s): save_h = SilentSaveTokens() Smiles.tokenize(s, save_h) save = [] for name, pos, text in save_h: save.append((name, text)) closures = {} in_quote = 0 i = 0 for name, text in save: if name == "open_bracket": in_quote = 1 has_element = 0 pos = i elif name == "close_bracket": in_quote = 0 elif name == "element" and in_quote: has_element = 1 i = i + 1 if in_quote: if has_element: save.append(("close_bracket", "]")) else: del save[pos:] i = 0 for name, text in save: if name == "closure": val = cleanup_closure(text) if closures.has_key(val): del closures[val] else: closures[val] = i i = i + 1 for val, i in closures.items(): save[i] = ("fake", "[%d*]" % val) # trim trailing '(', '.' and bond symbols while save and (save[-1][0] == "close_branch" or save[-1][0] == "dot" or save[-1][0] == "bond"): save.pop() paren_count = 0 for name, text in save: if name == "open_branch": paren_count = paren_count + 1 elif name == "close_branch": paren_count = paren_count - 1 assert paren_count >= 0, paren_count save.extend([("close_branch", ")")] * paren_count) smi = "" for name, text in save: smi = smi + text return smi
def test(): h = Handler.TokenHandler() t1 = time.clock() #h = Handler.WriteHandler() # uncomment to print for line in lines: #print "####", line Smiles.tokenize(line, h) t2 = time.clock() print len(lines), "patt. in", t2 - t1, "s =>", print (t2-t1)/len(lines), "s/patt. ==", print len(lines)/(t2-t1), "patt./s"
def test(): h = Handler.TokenHandler() t1 = time.clock() #h = Handler.WriteHandler() # uncomment to print for line in lines: #print "####", line Smiles.tokenize(line, h) t2 = time.clock() print len(lines), "patt. in", t2 - t1, "s =>", print(t2 - t1) / len(lines), "s/patt. ==", print len(lines) / (t2 - t1), "patt./s"
def test(): lines = test_Smiles.lines h = BuildMol.BuildMol() t1 = time.clock() for line in lines: #print line Smiles.tokenize(line, h) #s = h.mol.dump() #print s t2 = time.clock() print len(lines), "patt. in", t2 - t1, "s =>", print(t2 - t1) / len(lines), "s/patt. ==", print len(lines) / (t2 - t1), "patt./s"
def test(): lines = test_Smiles.lines h = BuildMol.BuildMol() t1 = time.clock() for line in lines: #print line Smiles.tokenize(line, h) #s = h.mol.dump() #print s t2 = time.clock() print len(lines), "patt. in", t2 - t1, "s =>", print (t2-t1)/len(lines), "s/patt. ==", print len(lines)/(t2-t1), "patt./s"
def Btn_Input_Clicked(self): self.SmilesRunning(True, False) self.top.ChildWindow = Smiles.Smiles(self, self.SmilesString, self.SmilesName)