diff commons/pyRepetUnit/hmmer/LaunchPreProcessHmmpfamPostProcessNotInParallel.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commons/pyRepetUnit/hmmer/LaunchPreProcessHmmpfamPostProcessNotInParallel.py	Tue Apr 30 14:33:21 2013 -0400
@@ -0,0 +1,122 @@
+import os
+import unittest
+from pyRepet.launcher.programLauncher import *
+from pyRepet.util.file.FileUtils import *
+import commons.pyRepetUnit.fastaTranslation.allFrames.TranslateInAllFramesAndReplaceStopByX
+import commons.pyRepetUnit.hmmer.hmmOutput.HmmpfamOutputProcessing
+import ConfigParser 
+
+class LaunchPreProcessHmmpfamPostProcessNotInParallel:
+
+    def __init__( self ): 
+          
+        #for global analysis
+        self._configFile = ""
+        self._inputFile = ""
+        self._outputFile = ""
+        self.fileUtils = FileUtils()
+        self._programLauncherInstance = programLauncher()
+        #specific to PreProcess
+        self.bioseq = Bioseq()
+        self.preProcess = commons.pyRepetUnit.fastaTranslation.allFrames.TranslateInAllFramesAndReplaceStopByX.TranslateInAllFramesAndReplaceStopByX()        
+        self._outputFilePreprocess =  "" 
+        #specific to PostProcess
+        self.hmmpfamOutputProcess = commons.pyRepetUnit.hmmer.hmmOutput.HmmpfamOutputProcessing.HmmpfamOutputProcessing()       
+
+    def _cleanTemporaryFiles(self, outputFilePreProcess, outputFileHmmpfam):        
+        os.remove( outputFilePreProcess )       
+        os.remove( outputFileHmmpfam )       
+        
+    def _launchPostProcess(self, outputFileHmmpfam):
+        return self.hmmpfamOutputProcess.readHmmOutputsAndWriteAlignFile(outputFileHmmpfam, self._outputFile)
+
+
+    def _launchHmmpfam(self, outputFilePreprocess):
+        config = ConfigParser.ConfigParser()
+        config.readfp(open(self._configFile))
+        self._programLauncherInstance.reset(outputFilePreprocess)
+        outputFileHmmpfam = outputFilePreprocess + ".hmmpfamOut"
+        self._programLauncherInstance.setOutputFileName(outputFileHmmpfam)
+        self._programLauncherInstance.launchHmmpfam(evalFilter=config.get("profil_search", "Evalue"), inputFormat=config.get("profil_search", "InputFormat"), profilDatabank=config.get("profil_search", "ProfilDatabank"))
+        return outputFileHmmpfam
+
+
+    def _launchHmmpfamPreProcess(self):
+        self.preProcess.setInputFile(self._inputFile)
+        outputFilePreprocess = self._inputFile + ".translated"
+        self.preProcess.setOutputFile(outputFilePreprocess)
+        self.preProcess.run()
+        return outputFilePreprocess
+          
+    def setInputFile( self, input ):
+         self._inputFile = input;
+
+    def setOutputFile( self, output ):
+         self._outputFile = output;
+            
+    def setConfigFile ( self, configFile ):
+        self._configFile = configFile
+    
+    def checkInputFile(self):
+        return self._checkFileExitsAndNotEmpty( self._inputFile )
+    
+    def checkConfigFile(self):
+        return self._checkFileExitsAndNotEmpty( self._configFile )
+    
+    def _checkFileExitsAndNotEmpty(self, fileName):
+        fileUtils = FileUtils() 
+        if fileUtils.isRessourceExists(fileName) and not fileUtils.isFileEmpty(fileName):
+            return 1
+        return 0
+    
+    def run(self):
+        
+        if not self.checkInputFile():
+            print "Warning : there is no input file : " + self._inputFile + "\n"
+            return 0        
+        if not self.checkConfigFile():
+            print "Warning : there is no config file : " + self._configFile + "\n"
+            return 0 
+        outputFilePreProcess = self._launchHmmpfamPreProcess()    
+        outputFileHmmpfam = self._launchHmmpfam(outputFilePreProcess)
+        self._launchPostProcess(outputFileHmmpfam)
+        self._cleanTemporaryFiles(outputFilePreProcess, outputFileHmmpfam)
+        
+        
+if __name__ == "__main__":                 
+    main() 
+          
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if __name__ == "__main__":                 
+    main() 
\ No newline at end of file