def simpleRepeatTest(): print("Hello!\n"); MACROSTATES = enum("E-DHF-NADPH", "E-NADPH", "E-OPEN", "E-THF", "E-THF-NADPX", "TS"); RESIDUES = enum('A', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'Y'); ensembleSizes = numpy.array([50]); backrubTemps = numpy.array([0.3, 0.6, 0.9, 1.2, 1.5, 1.8]); boltzmannTemps = numpy.array([0, -1, 1, 5.0]); steepnessRange = numpy.array([0.5, 5]); minWeights = numpy.array([0, 0, 0, 0, 0, 1]); maxWeights = numpy.array([0, 0, 0, 0, 0, 1]); print("Initializing objects\n"); targetFreqs = "C:\\Users\\Candy\\SkyDrive\\Documents\\rotation 2\\ecDHFR_openseq_bacterial_representative_final_align_trim.fasta"; targetFreqsAlt = "C:\\Users\\Candy_000\\SkyDrive\\Documents\\rotation 2\\ecDHFR_openseq_bacterial_representative_final_align_trim.fasta"; data = "C:\\Users\\Candy\\SkyDrive\\Documents\\rotation 2\\DHFR_MSD_M20loop\\DHFR_MSD_M20loop_repeat1.tsv"; dataAlt = "C:\\Users\\Candy_000\\SkyDrive\\Documents\\rotation 2\\DHFR_MSD_M20loop\\DHFR_MSD_M20loop_repeat1.tsv"; dataMicro = "C:\\Users\\Candy\\SkyDrive\\Documents\\rotation 2\\20160120_M20_enumeration_scores\\20160120_M20_enumeration_scores.tsv"; dataMicroAlt = "C:\\Users\\Candy_000\\SkyDrive\\Documents\\rotation 2\\20160120_M20_enumeration_scores\\20160120_M20_enumeration_scores.tsv"; optimizer = Optimizer(MACROSTATES); # slightly different paths on my two computers try: optimizer.readTargetFrequencies(targetFreqs); optimizer.readData(data); except: optimizer.readTargetFrequencies(targetFreqsAlt); optimizer.readData(dataAlt); print("Files read in"); search = CuckooSearch(optimizer.models, JensenShannonDistance(optimizer.targetFrequencies), False, 1, 1, 0.25); search.setMaxIterations(1); search.setParamBounds(ensembleSizes, backrubTemps, boltzmannTemps, steepnessRange, minWeights, maxWeights); #search.setSearchParameters(False, True, True, True, numpy.array([True, True, False, True, True, True])); search.setAllSearchToFalse(); search.suppressOutputs = True; optimizer.useAlgorithm(search); print("\nJS Dist"); for i in range(64): optimizer.optimize(); params = optimizer.getBestParameters(); m = search.population[0]; #print(search.similarityMeasure.getSimilarityMeasure(m.getFrequencies())); # TODO: getModelByParams doesn't always return the same object. m1 = Model.constructFromExisting(optimizer.getModelByParams(m.backrubTemp, m.ensembleSize, m.boltzmannTemp), m.ensembleSize, m.backrubTemp, m.boltzmannTemp, m.getWeights(), m.steepness); #print(search.similarityMeasure.getSimilarityMeasure(m1.getFrequencies())); if not m.equalTo(m1): print("\t{:s}".format(Optimizer.calcParamsID(m.backrubTemp, m.ensembleSize, m.boltzmannTemp))); print("\t{:s}".format(Optimizer.calcParamsID(m1.backrubTemp, m1.ensembleSize, m1.boltzmannTemp))); #m2 = Model.constructFromExisting(m, m.ensembleSize, m.backrubTemp, m.boltzmannTemp, m.getWeights(), m.steepness); #print(search.similarityMeasure.getSimilarityMeasure(m2.getFrequencies())); #print(m.equalTo(m2)); #print(m2.backrubTemp); #print(m2.boltzmannTemp); #print(m2.ensembleSize); #print(m2.steepness); #print(m2.weights); #print(search.similarityMeasure.getSimilarityMeasure(m2.getFrequencies())); #print(numpy.sum(numpy.sum(numpy.abs( m.getFrequencies() - m2.getFrequencies())))); return None;