def extract(self, experiment, type, indiv): errorReturnVal = ['NA'] * 2 filepath = experiment[2] + os.path.sep + PathConfig.traceFolderNormal + os.path.sep + indiv[0] + ".trace" dc = DistanceCalc() if not os.path.isfile(filepath): filepath = experiment[2] + os.path.sep + PathConfig.traceFoldersAlt[type] + os.path.sep + indiv[ 0] + ".trace" if not os.path.isfile(filepath): return errorReturnVal with open(filepath, 'r') as inputFile: traceLines = [] lines = [] for line in inputFile: lines.append(line) if len(lines) == 110: break if len(lines) < 20: return errorReturnVal for line in lines[-10:]: lineSplit = line.split("\t") if not dc.isValidLine(lineSplit): lineSplit = line.split(" ") if not dc.isValidLine(lineSplit): continue traceLines.append( (float(lineSplit[2]), float(lineSplit[2])) ) if len(traceLines) < 6: return errorReturnVal self._setPoints(traceLines[0], traceLines[3], traceLines[5]) self._getCenter() self._getRadius() self._getCircumference() dist = dc.distanceStep(filepath, "euclidean") percentCircle = dist / self.circumference return [self.radius, percentCircle]