示例#1
0
 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
示例#3
0
    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)