def extract(self, experiment, type, indiv): filepath = GetAltFile.getAltTraceFile(experiment, type, indiv) if filepath != False: return TraceDistance.calcDistance(filepath) else: print "WARN: couldn't find alt trace file for experiment {}, indiv {}".format(experiment[0], indiv[0]) return ["NA"] * 4
def extract(self, experiment, type, indiv): filepath = experiment[2] + os.path.sep + "traces_afterPP" + os.path.sep + indiv[0] + ".trace" if os.path.isfile(filepath): return TraceDistance.calcDistance(filepath) else: return ["NA"] * 4
def dataCollector(self): listing = glob.glob(self.pattern) td = TraceDistance() dc = DistanceCalc() with open(self.outputFile, "w") as csvfile: headersWritten = False print listing # Testing for nestFile in listing: print "Experiment folder: " + nestFile # Testing expFolder = nestFile[-2:] experimentNumber = str(expFolder) popListing = glob.glob(nestFile + "/population/*.vxa") for path in popListing: indNumber = path[27:-8] print "Population path: " + path # Testing print "Ind. ID: " + indNumber # Testing backupBasePath = nestFile + "/population_{condition}/" + indNumber + "_vox.vxa" backup_path = os.path.abspath(backupBasePath.format(condition="beforePL")) if not os.path.isfile(backup_path): backup_path = os.path.abspath(backupBasePath.format(condition="MUT")) if not os.path.isfile(backup_path): backup_path = False print "Backups path: " + backup_path # Testing voxProbability, voxLifetime, voxCounts = self.voxCounter(experimentNumber, path, indNumber) voxProb_orig, voxProbLife_orig, voxCounts_orig = self.voxCounter( experimentNumber, backup_path, indNumber ) traceFilename = os.path.abspath(nestFile + "/traces_afterPP/" + indNumber + ".trace") mutatedBasePath = nestFile + "/traces_{condition}/" + indNumber + ".trace" NOMUT_traceFilename = os.path.abspath(mutatedBasePath.format(condition="MUT")) variant = "mut" if not os.path.isfile(NOMUT_traceFilename): NOMUT_traceFilename = os.path.abspath(mutatedBasePath.format(condition="NOMUT")) variant = "nomut" if not os.path.isfile(NOMUT_traceFilename): NOMUT_traceFilename = False if variant == "nomut": fieldnames = [ "Ind_ID", "birthtime", "Exp_Num", "probability", "euclideanStep", "manhattanStep", "euclideanTotal", "manhattanTotal", "lifetime", "size", "totalMuscles", "totalFat", "totalBone", "diseasedMuscle", "diseasedFat", "diseasedBone", "diseasedEuclideanStep", "diseasedManhattanStep", "diseasedEuclideanTotal", "diseasedManhattanTotal", ] else: fieldnames = [ "Ind_ID", "birthtime", "Exp_Num", "probability", "euclideanStep", "manhattanStep", "euclideanTotal", "manhattanTotal", "lifetime", "size", "totalMuscles", "totalFat", "totalBone", "originalMuscle", "originalFat", "originalBone", "originalEuclideanStep", "originalManhattanStep", "originalEuclideanTotal", "originalManhattanTotal", ] if not headersWritten: writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() headersWritten = True if os.path.isfile(traceFilename): distances = td.calcDistance(traceFilename) birthtime = dc.getBirthTime(traceFilename) if not birthtime: birthtime = "NA" print distances # Testing print "Born at: " + str(birthtime) else: distances = ["NA", "NA", "NA", "NA", "NA"] # Batman birthtime = ["NA"] print indNumber + " trace file missing in /traces_afterPP/ of experiment " + experimentNumber if NOMUT_traceFilename: NOMUT_distances = td.calcDistance(NOMUT_traceFilename) print NOMUT_distances else: NOMUT_distances = ["NA", "NA", "NA", "NA", "NA"] # Batman print indNumber + " trace file missing in /traces_NOMUT/ of experiment " + experimentNumber if variant == "mut": columnNames = { "Ind_ID": indNumber, "birthtime": birthtime, "Exp_Num": experimentNumber, "probability": voxProbability, "euclideanStep": distances[0], "manhattanStep": distances[1], "euclideanTotal": distances[2], "manhattanTotal": distances[3], "lifetime": voxLifetime, "size": voxCounts[4], "totalMuscles": voxCounts[3], "totalFat": voxCounts[1], "totalBone": voxCounts[2], "originalMuscle": voxCounts_orig[3], "originalFat": voxCounts_orig[1], "originalBone": voxCounts_orig[2], "originalEuclideanStep": NOMUT_distances[0], "originalManhattanStep": NOMUT_distances[1], "originalEuclideanTotal": NOMUT_distances[2], "originalManhattanTotal": NOMUT_distances[3], } elif variant == "nomut": columnNames = { "Ind_ID": indNumber, "birthtime": birthtime, "Exp_Num": experimentNumber, "probability": voxProbability, "euclideanStep": distances[0], "manhattanStep": distances[1], "euclideanTotal": distances[2], "manhattanTotal": distances[3], "lifetime": voxLifetime, "size": voxCounts[4], "totalMuscles": voxCounts[3], "totalFat": voxCounts[1], "totalBone": voxCounts[2], "diseasedMuscle": voxCounts_orig[3], "diseasedFat": voxCounts_orig[1], "diseasedBone": voxCounts_orig[2], "diseasedEuclideanStep": NOMUT_distances[0], "diseasedManhattanStep": NOMUT_distances[1], "diseasedEuclideanTotal": NOMUT_distances[2], "diseasedManhattanTotal": NOMUT_distances[3], } else: print "File reading (mut/nomut) error!" break writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writerow(columnNames)