comparison commons/launcher/BlatClusterLauncher.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
comparison
equal deleted inserted replaced
17:b0e8584489e6 18:94ab73e8a190
1 #!/usr/bin/env python
2
3 ##@file
4 # Launch BlatProgramLauncher on several files in parallel on a cluster.
5
6
7 from pyRepet.launcher.AbstractClusterLauncher import *
8 from commons.launcher.BlatProgramLauncher import BlatProgramLauncher
9 from commons.core.coord.AlignUtils import AlignUtils
10 from commons.tools import srptBlasterMatcher
11
12
13 class BlatClusterLauncher( AbstractClusterLauncher ):
14 """
15 Launch Blat on several files in parallel on a cluster.
16 """
17
18 def __init__( self ):
19 """
20 Constructor.
21 """
22 AbstractClusterLauncher.__init__( self )
23 AbstractClusterLauncher.setAcronym( self, "Blat" )
24
25 self._cmdLineSpecificOptions = "s:p:A"
26
27 self._exeWrapper = "BlatProgramLauncher.py"
28 self._prgLauncher = BlatProgramLauncher()
29 self._prgLauncher.setInputFile( GENERIC_IN_FILE )
30 self._prgLauncher.setClean()
31 self._prgLauncher.setVerbosityLevel( 1 )
32 self._prgLauncher.setListFilesToKeep()
33 self._prgLauncher.setListFilesToRemove()
34
35
36 def getSpecificHelpAsString( self ):
37 """
38 Return the specific help as a string.
39 """
40 string = ""
41 string += "\nspecific options:"
42 string += "\n -s: name of the subject file (format='fasta')"
43 string += "\n -p: parameters for '%s'" % ( self._prgLauncher.getProgramName() )
44 string += "\n -Z: concatenate output files"
45 string += "\n -A: same sequences (all-by-all)"
46 return string
47
48
49 def getSubjectFile( self ):
50 return self._prgLauncher.getSubjectFile()
51
52
53 def getProgramParameters( self ):
54 return self._prgLauncher.getProgramParameters()
55
56
57 def processOutputFile( self, tmpFile, outFile ):
58 sortFile = "%s.sort" % ( tmpFile )
59 AlignUtils.sortAlignFile( tmpFile, sortFile )
60 if self._prgLauncher.getAllByAll():
61 srptBlasterMatcher.filterRedundantMatches( sortFile,
62 outFile )
63 os.remove( sortFile )
64 else:
65 os.rename( sortFile, outFile )
66
67 def setASpecificAttributeFromCmdLine( self, o, a="" ):
68 if o =="-s":
69 self._prgLauncher.setSubjectFile( a )
70
71 if __name__ == "__main__":
72 i = BlatClusterLauncher()
73 i.setAttributesFromCmdLine()
74 i.run()