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

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
comparison
equal deleted inserted replaced
30:5677346472b5 31:0ab839023fe4
1 import os
2 import unittest
3 from pyRepet.launcher.programLauncher import *
4 from pyRepet.util.file.FileUtils import *
5 import commons.pyRepetUnit.fastaTranslation.allFrames.TranslateInAllFramesAndReplaceStopByX
6 import commons.pyRepetUnit.hmmer.hmmOutput.HmmpfamOutputProcessing
7 import ConfigParser
8
9 class LaunchPreProcessHmmpfamPostProcessNotInParallel:
10
11 def __init__( self ):
12
13 #for global analysis
14 self._configFile = ""
15 self._inputFile = ""
16 self._outputFile = ""
17 self.fileUtils = FileUtils()
18 self._programLauncherInstance = programLauncher()
19 #specific to PreProcess
20 self.bioseq = Bioseq()
21 self.preProcess = commons.pyRepetUnit.fastaTranslation.allFrames.TranslateInAllFramesAndReplaceStopByX.TranslateInAllFramesAndReplaceStopByX()
22 self._outputFilePreprocess = ""
23 #specific to PostProcess
24 self.hmmpfamOutputProcess = commons.pyRepetUnit.hmmer.hmmOutput.HmmpfamOutputProcessing.HmmpfamOutputProcessing()
25
26 def _cleanTemporaryFiles(self, outputFilePreProcess, outputFileHmmpfam):
27 os.remove( outputFilePreProcess )
28 os.remove( outputFileHmmpfam )
29
30 def _launchPostProcess(self, outputFileHmmpfam):
31 return self.hmmpfamOutputProcess.readHmmOutputsAndWriteAlignFile(outputFileHmmpfam, self._outputFile)
32
33
34 def _launchHmmpfam(self, outputFilePreprocess):
35 config = ConfigParser.ConfigParser()
36 config.readfp(open(self._configFile))
37 self._programLauncherInstance.reset(outputFilePreprocess)
38 outputFileHmmpfam = outputFilePreprocess + ".hmmpfamOut"
39 self._programLauncherInstance.setOutputFileName(outputFileHmmpfam)
40 self._programLauncherInstance.launchHmmpfam(evalFilter=config.get("profil_search", "Evalue"), inputFormat=config.get("profil_search", "InputFormat"), profilDatabank=config.get("profil_search", "ProfilDatabank"))
41 return outputFileHmmpfam
42
43
44 def _launchHmmpfamPreProcess(self):
45 self.preProcess.setInputFile(self._inputFile)
46 outputFilePreprocess = self._inputFile + ".translated"
47 self.preProcess.setOutputFile(outputFilePreprocess)
48 self.preProcess.run()
49 return outputFilePreprocess
50
51 def setInputFile( self, input ):
52 self._inputFile = input;
53
54 def setOutputFile( self, output ):
55 self._outputFile = output;
56
57 def setConfigFile ( self, configFile ):
58 self._configFile = configFile
59
60 def checkInputFile(self):
61 return self._checkFileExitsAndNotEmpty( self._inputFile )
62
63 def checkConfigFile(self):
64 return self._checkFileExitsAndNotEmpty( self._configFile )
65
66 def _checkFileExitsAndNotEmpty(self, fileName):
67 fileUtils = FileUtils()
68 if fileUtils.isRessourceExists(fileName) and not fileUtils.isFileEmpty(fileName):
69 return 1
70 return 0
71
72 def run(self):
73
74 if not self.checkInputFile():
75 print "Warning : there is no input file : " + self._inputFile + "\n"
76 return 0
77 if not self.checkConfigFile():
78 print "Warning : there is no config file : " + self._configFile + "\n"
79 return 0
80 outputFilePreProcess = self._launchHmmpfamPreProcess()
81 outputFileHmmpfam = self._launchHmmpfam(outputFilePreProcess)
82 self._launchPostProcess(outputFileHmmpfam)
83 self._cleanTemporaryFiles(outputFilePreProcess, outputFileHmmpfam)
84
85
86 if __name__ == "__main__":
87 main()
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 if __name__ == "__main__":
122 main()