def testSubStructureSearchScreened(self): oeioU = OeIoUtils() oemp = OeMoleculeProvider(**self.__myKwargs) ok = oemp.testCache() ccmP = ChemCompIndexProvider(**self.__myKwargs) ccIdxD = ccmP.getIndex() ok = ccmP.testCache(minCount=self.__minCount) self.assertTrue(ok) oesU = OeSearchUtils(oemp, screenType=self.__screenType, numProc=self.__numProc) numMols = 20 missL = [] for ccId, ccD in list(ccIdxD.items())[:numMols]: # ---- startTime = time.time() if "oe-smiles" not in ccD: continue logger.info("Search %s %r", ccId, ccD["oe-smiles"]) oeQMol = oeioU.smartsToQmol(ccD["oe-smiles"]) retStatus, mL = oesU.searchSubStructureScreened(oeQMol, maxMatches=100) if retStatus: logger.info("%s (status=%r) match length %d in (%.4f seconds)", ccId, retStatus, len(mL), time.time() - startTime) if not self.__resultContains(ccId, mL): missL.append(ccId) # # self.assertGreaterEqual(len(mL), 1) # ---- logger.info("Missed searches (%d) %r", len(missL), missL)
def testSubStructureSearchScreenedFiltered(self): myKwargs = { "cachePath": self.__cachePath, "useCache": True, "fpTypeList": self.__fpTypeList, "ccFileNamePrefix": "cc-filtered", "oeFileNamePrefix": "oe-filtered", "molBuildType": "oe-iso-smiles", "limitPerceptions": False, } oeioU = OeIoUtils() oemp = OeMoleculeProvider(**myKwargs) ok = oemp.testCache() ccmP = ChemCompIndexProvider(**myKwargs) ccIdxD = ccmP.getIndex() ok = ccmP.testCache(minCount=self.__minCount) self.assertTrue(ok) oesU = OeSearchUtils(oemp, screenType=self.__screenType, numProc=self.__numProc) numMols = 5000 missL = [] for ccId, ccD in list(ccIdxD.items())[:numMols]: # ---- startTime = time.time() if "oe-smiles" not in ccD: continue logger.info("Search %s %r", ccId, ccD["oe-smiles"]) oeQMol = oeioU.smartsToQmol(ccD["oe-smiles"]) retStatus, mL = oesU.searchSubStructureScreened(oeQMol, maxMatches=100) logger.info("%s (status=%r)match length %d in (%.4f seconds)", ccId, retStatus, len(mL), time.time() - startTime) if not self.__resultContains(ccId, mL): missL.append(ccId) # self.assertGreaterEqual(len(mL), 1) # ---- logger.info("Missed searches (%d) %r", len(missL), missL)