def testOrderBug2(self): from rdkit.Chem import Randomize from rdkit import DataStructs probes = ['Oc1nc(Oc2ncccc2)ccc1'] for smi in probes: m1 = Chem.MolFromSmiles(smi) #m1.Debug() sig1 = Generate.Gen2DFingerprint(m1,self.factory) csmi = Chem.MolToSmiles(m1) m2 = Chem.MolFromSmiles(csmi) #m2.Debug() sig2 = Generate.Gen2DFingerprint(m2,self.factory) self.failUnless(list(sig1.GetOnBits())==list(sig2.GetOnBits()),'%s %s'%(smi,csmi)) self.failUnlessEqual(DataStructs.DiceSimilarity(sig1,sig2),1.0) self.failUnlessEqual(sig1,sig2) for i in range(10): m2 = Randomize.RandomizeMol(m1) sig2 = Generate.Gen2DFingerprint(m2,self.factory) if sig2!=sig1: Generate._verbose=True print '----------------' sig1 = Generate.Gen2DFingerprint(m1,self.factory) print '----------------' sig2 = Generate.Gen2DFingerprint(m2,self.factory) print '----------------' print Chem.MolToMolBlock(m1) print '----------------' print Chem.MolToMolBlock(m2) print '----------------' s1 = set(sig1.GetOnBits()) s2= set(sig2.GetOnBits()) print s1.difference(s2) self.failUnlessEqual(sig1,sig2)
def TestMolecule(mol): try: Chem.SanitizeMol(mol) mol = Chem.RemoveHs(mol) except ValueError as msg: return -1 except Exception: import traceback traceback.print_exc() return -2 if mol.GetNumAtoms(): try: Randomize.CheckCanonicalization(mol, 10) except Exception: import traceback traceback.print_exc() return -3 return 0
import sys from rdkit.Chem import Randomize def TestMolecule(mol): try: Chem.SanitizeMol(mol) mol = Chem.RemoveHs(mol) except ValueError,msg: return -1 except: import traceback traceback.print_exc() return -2 if mol.GetNumAtoms(): try: Randomize.CheckCanonicalization(mol,10) except: import traceback traceback.print_exc() return -3 return 0 def TestSupplier(suppl,stopAfter=-1,reportInterval=100,reportTo=sys.stderr, nameProp='_Name'): nDone = 0 nFailed = 0 while 1: try: mol = suppl.next() except StopIteration: