예제 #1
0
    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
예제 #2
0
 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
예제 #3
0
 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