def parseToReport( self, fileName, keyTag, header = None, unique = True): ''' @var fileName: name of flat (delimited) in text format to be parsed @type fileName: String @var keyTag: ID of column to be used for report key row @type keyTag: String @summary: Primary Function Parses flat file returns report object. ''' if header != None: self.setHeader(header) result = Report() self.startFile(fileName) d = self.getTagedLine() while d != None: if d != "": keyName = d[keyTag] del d[keyTag] for valueTag in d.keys(): v = d[valueTag] result.addElement(keyName,valueTag,v) d = self.getTagedLine() self.closeFile() return result
def getReport(self): report = Report() fluxModel = self reactionNames = fluxModel.network.getOrderedReactionNames() reactionMap = fluxModel.network.getReactionMap() for reactionName in reactionNames: reaction = reactionMap[reactionName] equation = reaction.getEquation() pathway = reaction.getAnnotation("Subsystem") name = reaction.getName()#Currently sensitivity values can be too large for control factors. report.addElement(reactionName,"name",name) report.addElement(reactionName,"equation", equation) report.addElement(reactionName,"Subsystem", pathway) return report
def modelReport(self,dir=1,prediction=None): report = Report() delta = 1e-6 for rowName in self.getRowNames(): rLimit = self.floatLimit(self.getRowLimit(rowName)) rValues =self.getRowValueMap(rowName) rString = self._reportRow(rValues,rLimit,prediction) report.addElement(rowName,"Type","row") report.addElement(rowName,"Equation",rString) rLimitS = "(%s,%s)" % (rLimit[0],rLimit[1]) report.addElement(rowName,"Limit",rLimitS) if prediction != None: rValue = self._vectorValue(rValues, prediction) rValue = round(rValue,6) rValid = rLimit[0]-delta < rValue < rLimit[1] + delta report.addElement(rowName,"Value",rValue) report.addElement(rowName,"Valid",rValid) for colName in self.getColumnNames(): cLimit = self.floatLimit(self.getColumnLimit(colName)) cValues =self.getColumnValueMap(colName) cString = self._reportRow(cValues,cLimit,prediction) report.addElement(colName,"Type","column") report.addElement(colName,"Equation",cString) if prediction != None: if colName in prediction.keys(): cValue = prediction[colName] cValid = cLimit[0]-delta < cValue < cLimit[1] + delta report.addElement(colName,"Value",cValue) report.addElement(colName,"Valid",cValid) return report