def cacheIsolateSubset(cfg): cacheFileName = pyroprinting.getIsolatesCacheFileName(cfg) if os.path.isfile(cacheFileName): return isolates = pyroprinting.loadIsolatesFromFile("isolatesAll.pickle") isolateSubset = pyroprinting.getRandomSubset(isolates, cfg) with open(cacheFileName, mode='w+b') as cacheFile: pickle.dump(isolateSubset, cacheFile)
def loadIsolateList(filename): cfg = config.loadConfig() isolates = pyroprinting.loadIsolatesFromFile("isolatesAll.pickle") isolateIdMap = {iso.name.strip(): iso for iso in isolates} with open(filename) as listFile: isoIds = {isoId.strip().strip("'").strip() for isoId in listFile.readline().split(',')} # print(isoIds) missingIsos = [iso.name for iso in isolates if iso.name.strip() not in isoIds] extraIsos = [isoId for isoId in isoIds if isoId not in isolateIdMap] print(extraIsos) print("extraIsoCount: {}".format(len(extraIsos))) print(missingIsos) print("missingIsoCount: {}".format(len(missingIsos))) sharedIsos = [iso for iso in isolates if iso.name.strip() in isoIds] print("{}/{} shared".format(len(sharedIsos), len(isolates))) with open("isolatesShared.pickle", mode='w+b') as cacheFile: pickle.dump(sharedIsos, cacheFile)
# fullGetClusters = {frozenset(cluster) for cluster in fullGetClusters} # fullPopClusters = {frozenset(cluster) for cluster in fullPopClusters} preFullClusters = {frozenset(cluster) for cluster in preFullClusters} # printClusters(preFullClusters) # assert len(getMultipleClusterPoints(isolates, preFullClusters)) == 0 assert spatialPopClusters == preFullClusters # assert spatialGetClusters == spatialPopClusters # assert fullGetClusters == fullPopClusters # assert verifyClusters(isolates, correctNeighbors, cfg.minNeighbors, clusters) if __name__ == "__main__": cfg = config.loadConfig() # isolates = pyroprinting.loadIsolates(cfg) isolates = pyroprinting.loadIsolatesFromFile("isolates{}.pickle".format(sys.argv[1])) # correctNeighbors = fullsearch.getNeighborsMap(isolates, cfg) print(sys.argv) if sys.argv[2] == "spatial": index = spatial.SpatialIndex(isolates, cfg) elif sys.argv[2] == "fullsearch": index = fullsearch.FullSearchIndex(isolates) else: print("bad index. use 'spatial' or 'fullsearch'") if sys.argv[3] == "dbscan": dbscan(index, cfg.radii, cfg.minNeighbors) elif sys.argv[3] == "popDBSCAN": popDBSCAN(index, cfg.radii, cfg.minNeighbors) else: