Mercurial > repos > yufei-luo > s_mart
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() |