Ejemplo n.º 1
0
		# seen |= correctR

		if len(resultR) > 0:
			nonZeroCount += 1
		extraCount += len(resultR - correctR)
		missingCount += len(correctR - resultR)

		# # print("{}/{} - {}".format(i, len(queryIsolates), isolate))
		# print("{}/{} - {} - {}:{}".format(i+1, len(queryIsolates), isolate, len(resultR), len(correctR)))
		# # print("\t{} --- {} / {} : {} / {}".format(isolate, len(resultR - correctR), len(resultR), len(correctR - resultR), len(correctR)))
		if resultR == correctR:
			correctCount += 1
			if len(resultR) > 0:
				nonZeroCorrectCount += 1
		else:
			print("\t{} ----- {}".format([(extraIsolate, [isolate.regionDist(extraIsolate, region) for region in cfg.regions]) for extraIsolate in resultR - correctR], [(missingIsolate, [isolate.regionDist(missingIsolate, region) for region in cfg.regions]) for missingIsolate in correctR -resultR]))

	print("total correct: {}/{}".format(correctCount, queryCount))
	print("nonEmpty correct: {}/{}".format(nonZeroCorrectCount, nonZeroCount))
	print("total extra: {}, total missing: {}".format(extraCount, missingCount))

if __name__ == '__main__':
	cfg = config.loadConfig()
	isolates = pyroprinting.loadIsolates(cfg)
	index = SpatialIndex(isolates, cfg)
	correctNeighbors = fullsearch.getNeighborsMap(isolates, cfg)

	# testSpatial(isolates, index, correctNeighbors, cfg)
	cProfile.run("testSpatial(isolates, index, correctNeighbors, cfg)")

Ejemplo n.º 2
0
def computeDBscanClusters(isolates, cfg):
    print("clustering for a subset of size {}...".format(cfg.isolateSubsetSize))
    correctNeighbors = fullsearch.getNeighborsMap(isolates, cfg)
    precomputedSearcher = fullsearch.PrecomputedIndex(correctNeighbors)
    return dbscan(precomputedSearcher, cfg.radii, cfg.minNeighbors)