Beispiel #1
0
    def writeAnnotatedTargets(self,objective,model,annotationName,regex,iteration,oPrediction={},nPrediction={},outputFileName=None):
        
        if outputFileName == None:
            outputFileName = "Target_Report_T_%s_C_%s_M_%s_N_%s_S_%s_K_%s_I_%s.txt" % (self.resultTag,self.control,self.modelName,self.naturalObjectiveName,self.syntheticObjectiveName,self.con.controlMax,iteration)
            
        aValue = self._annotateObjective(objective, model, annotationName, regex)
        controlValues = self._condenseObjective(objective)
        controlValues = self._annotateGenes(controlValues, model, annotationName, regex)
        controlScores = self._controlScore(objective,oPrediction, nPrediction)
        controlScores = self._annotateGenes(controlScores, model, annotationName, regex)
        controlScore = self._condenseMap(controlScores,sum)
        
        report = Report()
        report.addColumnHash("Control", aValue)
        report.addColumnHash("Flux", controlScore)
        report.addColumnHash("Reaction Control", controlValues)
        report.addColumnHash("Flux Changes", controlScores)

        oName = self.resultDirectory + outputFileName
        try:
            writer = ReportWriter()
            writer.setFile(oName)
            writer.write(report) 
            writer.closeFile()
            if self.verbose: print "Report written [%s]" % (outputFileName)
        except:
            if self.verbose: print "Failed to write report [%s] " % (outputFileName)
        
        return None
Beispiel #2
0
 def writeReport(self,ltReport,fluxModel, oPredVal,sPredVal,s2PredVal,neighborhood,iterations,fObjective,resultDir):
     if self.verbose: print "Preparing report ..."        
     report = Report()
     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)
         
     #--------------------
     #Analysis in report
     #--------------------
     report.addColumnHash("Original", oPredVal)
     report.addColumnHash("Synthetic", sPredVal)
     report.addColumnHash("Synthetic mBio", s2PredVal)
     report.extend(ltReport)
         
     report.addColumnHash("Final Objective", fObjective)
 
     #--------------------
     #Write Report
     #--------------------
     if self.verbose: print "Writing report ..."
     outputFileName = resultDir + "RD_" + self.resultTag + "_" + self.modelName + "_" + self.syntheticObjectiveName + "_" + str(neighborhood) + "_" + str(iterations) +  "_" + strftime('%Y%m%dT%H%M%S') + ".txt"  
     
     writer = ReportWriter()
     writer.setFile(outputFileName)
     writer.write(report) 
     writer.closeFile()
     if self.verbose: print "Report Written [%s]" % (outputFileName)
     
     return report