annotate commons/launcher/RepeatMaskerProgramLauncher.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 #!/usr/bin/env python
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 ##@file
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4 # Launch RepeatMasker (pairwise alignment for repeat detection).
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 import os
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8 import sys
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 from pyRepet.launcher.AbstractProgramLauncher import AbstractProgramLauncher
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 class RepeatMaskerProgramLauncher( AbstractProgramLauncher ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 Launch RepeatMasker (pairwise alignment for repeat detection).
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 def __init__( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 Constructor.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 AbstractProgramLauncher.__init__( self )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 self._prgName = "RepeatMasker"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 self._formatInFile = "fasta"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 self._sbjFile = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 self._nbProc = 1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 self._calcGc = False
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 self._skipIs = False
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 self._maskSsr = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 self._onlySsr = False
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 self._cmdLineSpecificOptions = "s:n:gblmo:"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 def getSpecificHelpAsString( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 Return the specific help as a string.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 string = ""
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 string += "\nspecific options:"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 string += "\n -s: name of the subject file (repeats, format='fasta')"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 string += "\n -n: nb of processors to use in parallel (default='%i')" % ( self.getNbProcessors() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42 string += "\n -g: calculate the GC content"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 string += "\n -b: skip bacterial insertion element check"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 string += "\n -l: does not mask low-complexity DNA or simple repeats"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 string += "\n -m: only masks low complex/simple repeats (no interspersed repeats)"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 string += "\n -o: name of the output file"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47 string += "\n with -s: format='align', default=inFile+'.cat.align')"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 string += "\n with -m: format='path', default=inFile+'.cat.path')"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49 return string
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 def setASpecificAttributeFromCmdLine( self, o, a="" ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 Set a specific attribute from the command-line arguments.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 if o =="-s":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 self.setSubjectFile( a )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 elif o == "-n":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 self.setNbProcessors( a )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 elif o == "-g":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 self.setCalculateGCcontent()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 elif o == "-b":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 self.setSkipBacterialIsCheck()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 elif o == "-l":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 self.unsetMaskSsr()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 elif o == "-m":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 self.setOnlySsr()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68 elif o == "-o":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 self.setOutputFile( a )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 def setSubjectFile( self, arg ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 self._sbjFile = arg
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 def setNbProcessors( self, arg ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 self._nbProc = int(arg)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 def setCalculateGCcontent( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 self._calcGc = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 def setSkipBacterialIsCheck( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 self._skipIs = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 def unsetMaskSsr( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89 self._maskSsr = False
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92 def setOnlySsr( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93 self._onlySsr = True
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
95
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
96 def getSubjectFile( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
97 return self._sbjFile
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
98
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
99
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
100 def getNbProcessors( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
101 return self._nbProc
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
102
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
103
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
104 def getCalculateGCcontent( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
105 return self._calcGc
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
106
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
107
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
108 def getSkipBacterialIsCheck( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
109 return self._skipIs
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
110
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
111
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
112 def getMaskSsr( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
113 return self._maskSsr
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
114
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
115
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
116 def getOnlySsr( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
117 return self._onlySsr
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
118
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
119
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
120 def checkSpecificAttributes( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
121 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
122 Check the specific attributes before running the program.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
123 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
124 if ( self.getSubjectFile() == "" and not self.getOnlySsr() ) \
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
125 or ( self.getSubjectFile() != "" and self.getOnlySsr() ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
126 string = "ERROR: need to specify -s or -m"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
127 print string
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
128 print self.getHelpAsString()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
129 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
130 if self.getOutputFile() == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
131 if not self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
132 self.setOutputFile( "%s.cat.align" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
133 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
134 self.setOutputFile( "%s.cat.path" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
135
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
136
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
137 def setWrapperCommandLine( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
138 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
139 Set the command-line of the wrapper.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
140 Required for RepeatMaskerClusterLauncher.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
141 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
142 self._wrpCmdLine = self.getWrapperName()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
143 self._wrpCmdLine += " -i %s" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
144 if self.getSubjectFile() != "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
145 self._wrpCmdLine += " -s %s" % ( self.getSubjectFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
146 self._wrpCmdLine += " -n %i" %( self.getNbProcessors() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
147 if self.getCalculateGCcontent():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
148 self._wrpCmdLine += " -g"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
149 if self.getSkipBacterialIsCheck():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
150 self._wrpCmdLine += " -b"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
151 if not self.getMaskSsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
152 self._wrpCmdLine += " -l"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
153 if self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
154 self._wrpCmdLine += " -m"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
155 if self.getOutputFile() != "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
156 self._wrpCmdLine += " -o %s" % ( self.getOutputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
157 if self.getClean():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
158 self._wrpCmdLine += " -c"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
159 if self.getVerbosityLevel() != 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
160 self._wrpCmdLine += " -v %i" % ( self.getVerbosityLevel() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
161
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
162
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
163 def setProgramCommandLine( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
164 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
165 Set the command-line of the program.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
166 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
167 self._prgCmdLine = self.getProgramName()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
168 self._prgCmdLine += " -dir ."
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
169 self._prgCmdLine += " -pa %i" % ( self.getNbProcessors() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
170 if self.getCalculateGCcontent():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
171 self._prgCmdLine += " -gccalc"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
172 if self.getSkipBacterialIsCheck():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
173 self._prgCmdLine += " -no_is"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
174 if self.getMaskSsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
175 self._prgCmdLine += " -nolow"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
176 if self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
177 self._prgCmdLine += " -int"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
178 if self.getSubjectFile() != "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
179 self._prgCmdLine += " -lib %s" % ( self.getSubjectFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
180 self._prgCmdLine += " %s" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
181
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
182
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
183 def setListFilesToKeep( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
184 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
185 Set the list of files to keep.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
186 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
187 if self.getOutputFile() == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
188 if not self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
189 self.setOutputFile( "%s.cat.align" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
190 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
191 self.setOutputFile( "%s.cat.path" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
192 self.appendFileToKeep( self.getOutputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
193 self.appendFileToKeep( "%s.cat" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
194
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
195
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
196 def setListFilesToRemove( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
197 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
198 Set the list of files to remove.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
199 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
200 self.appendFileToRemove( "%s.stderr" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
201 self.appendFileToRemove( "%s.tbl" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
202 self.appendFileToRemove( "%s.ori.out" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
203 self.appendFileToRemove( "%s.masked" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
204 self.appendFileToRemove( "%s.out" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
205 self.appendFileToRemove( "%s.log" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
206 self.appendFileToRemove( "%s.ref" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
207
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
208
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
209 def convertCatIntoAlign( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
210 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
211 Convert a 'cat' file into the 'align' format.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
212 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
213 cmd = os.environ["REPET_PATH"] + "/bin/RMcat2align.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
214 cmd += " -i %s.cat" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
215 cmd += " -o %s.cat.align" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
216 exitStatus = os.system( cmd )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
217 if exitStatus != 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
218 string = "ERROR while converting 'cat' file into 'align' format"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
219 print string
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
220 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
221
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
222
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
223 def convertCatIntoPath( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
224 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
225 Convert a 'cat' file into the 'path' format.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
226 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
227 cmd = os.environ["REPET_PATH"] + "/bin/RMcat2path.py"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
228 cmd += " -i %s.cat" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
229 cmd += " -o %s.cat.path" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
230 exitStatus = os.system( cmd )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
231 if exitStatus != 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
232 string = "ERROR while converting 'cat' file into 'path' format"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
233 print string
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
234 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
235
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
236
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
237 def setSummary( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
238 self._summary = "input file: %s" % ( self.getInputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
239 if self.getSubjectFile() != "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
240 self._summary += "\nsubject file: %s" % ( self.getSubjectFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
241 self._summary += "\nnb processors: %i" % ( self.getNbProcessors() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
242 if self.getCalculateGCcontent():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
243 self._summary += "\ncalculate the GC content"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
244 if self.getSkipBacterialIsCheck():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
245 self._summary += "\nskip bacterial insertion element check"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
246 if self.getMaskSsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
247 self._summary += "\nmask low-complexity DNA or simple repeats"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
248 if self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
249 self._summary = "\nonly masks low complex/simple repeats (no interspersed repeats)"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
250 if self.getOutputFile() == "":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
251 if not self.getMaskSsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
252 self.setOutputFile( "%s.cat.align" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
253 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
254 self.setOutputFile( "%s.cat.path" % ( self.getInputFile() ) )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
255 self._summary += "\noutput file: %s" % ( self.getOutputFile() )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
256
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
257
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
258 def run( self ):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
259 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
260 Run the program.
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
261 """
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
262 self.start()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
263
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
264 self.setProgramCommandLine()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
265 cmd = self.getProgramCommandLine()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
266 if self.getVerbosityLevel() > 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
267 print "LAUNCH: %s" % ( cmd )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
268 sys.stdout.flush()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
269 exitStatus = os.system( cmd )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
270 if exitStatus != 0:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
271 string = "ERROR: program '%s' returned exit status '%i'" % ( self.getProgramName(), exitStatus )
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
272 print string
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
273 sys.exit(1)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
274
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
275 if not self.getOnlySsr():
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
276 self.convertCatIntoAlign()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
277 else:
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
278 self.convertCatIntoPath()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
279
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
280 self.end()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
281
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
282
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
283 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
284 i = RepeatMaskerProgramLauncher()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
285 i.setAttributesFromCmdLine()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
286 i.run()