| 6 | 1 #! /usr/bin/env python | 
|  | 2 | 
|  | 3 import os | 
|  | 4 import sys | 
|  | 5 import getopt | 
|  | 6 from pyRepetUnit.commons.checker.CheckerException import CheckerException | 
|  | 7 | 
|  | 8 SMART_PATH = "%s/SMART" % os.environ["REPET_PATH"] | 
|  | 9 | 
|  | 10 class WrappGetLetterDistribution(object): | 
|  | 11 | 
|  | 12     def __init__(self): | 
|  | 13         self._inputFileName = "" | 
|  | 14         self._inputFileFormat = "" | 
|  | 15         self._outputFileName = "tmpOutputFile" | 
|  | 16         self._csv = False | 
|  | 17 | 
|  | 18     def help( self ): | 
|  | 19         print | 
|  | 20         print "usage: %s [ options ]" % ( sys.argv[0] ) | 
|  | 21         print "options:" | 
|  | 22         print "     -h: this help" | 
|  | 23         print "     -i: input file" | 
|  | 24         print "     -f: 'fasta' or 'fastq'" | 
|  | 25         print "     -c: CSV output file" | 
|  | 26         print "     -a: first PNG output file" | 
|  | 27         print "     -b: second PNG output file" | 
|  | 28         print | 
|  | 29         print "Exemple:" | 
|  | 30         print | 
|  | 31         print "1:\n\tpython WrappGetLetterDistribution.py -i inputFile.fasta -f fasta -c outputFile1.csv -a outputFile2.png -b outputFile3.png" | 
|  | 32         print | 
|  | 33         print "2:\n\tpython WrappGetLetterDistribution.py -i inputFile.fastq -f fastq -c outputFile1.csv -a outputFile2.png -b outputFile3.png" | 
|  | 34         print | 
|  | 35         print | 
|  | 36 | 
|  | 37 | 
|  | 38     def setAttributesFromCommandLine(self): | 
|  | 39         try: | 
|  | 40             opts, args = getopt.getopt( sys.argv[1:], "hi:f:a:b:c:" ) | 
|  | 41         except getopt.GetoptError, err: | 
|  | 42             print str(err); sys.exit(1) | 
|  | 43         for o, a in opts: | 
|  | 44             if o == "-h": | 
|  | 45                 self.help() | 
|  | 46                 sys.exit(0) | 
|  | 47             if o == "-i": | 
|  | 48                 self._inputFileName = a | 
|  | 49             elif o == "-f": | 
|  | 50                 self._inputFileFormat = a | 
|  | 51             elif o == "-c": | 
|  | 52                 self._outputFileNameCSV = a | 
|  | 53                 self._csv = True | 
|  | 54             elif o == "-a": | 
|  | 55                 self._outputFileNamePNG = a | 
|  | 56             elif o == "-b": | 
|  | 57                 self._outputFileNamePerNtPNG = a | 
|  | 58 | 
|  | 59     def checkAttributes(self): | 
|  | 60         lMsg = [] | 
|  | 61         if self._inputFileName == "" and not os.path.exists(self._inputFileName): | 
|  | 62             lMsg.append("ERROR: This input file doesn't exist!") | 
|  | 63         if self._inputFileFormat == "": | 
|  | 64             lMsg.append("ERROR: No input file format specified in option!") | 
|  | 65         if self._outputFileNamePNG == "": | 
|  | 66             lMsg.append("ERROR: No output file.png specified in option!") | 
|  | 67         if self._outputFileNamePerNtPNG == "": | 
|  | 68             lMsg.append("ERROR: No output filePerNt.png specified in option!") | 
|  | 69         if self._outputFileNameCSV == "" and self._csv == True : | 
|  | 70             lMsg.append("ERROR: No output file.csv specified in option!") | 
|  | 71 | 
|  | 72         print ">>> lMsg " + str(lMsg) | 
|  | 73         if lMsg != []: | 
|  | 74             exp = CheckerException() | 
|  | 75             exp.setMessages(lMsg) | 
|  | 76             raise (exp) | 
|  | 77 | 
|  | 78     def _cleanWorkingDir(self, cDir): | 
|  | 79         os.system("rm %s/tmpData* %s/tmpScript*" % (cDir, cDir)) | 
|  | 80 | 
|  | 81     def wrapp(self): | 
|  | 82         self.checkAttributes() | 
|  | 83 	cDir = os.getcwd() | 
|  | 84 | 
|  | 85         if self._csv == True: | 
|  | 86             os.system("python %s/Java/Python/getLetterDistribution.py -i %s -f %s -o %s/%s -c" % (SMART_PATH, self._inputFileName, self._inputFileFormat, cDir, self._outputFileName)) | 
|  | 87             os.system("mv %s/%s.csv %s" % (cDir, self._outputFileName, self._outputFileNameCSV)) | 
|  | 88             os.system("mv %s/%s.png %s" % (cDir, self._outputFileName, self._outputFileNamePNG)) | 
|  | 89             os.system("mv %s/%sPerNt.png %s" % (cDir, self._outputFileName, self._outputFileNamePerNtPNG)) | 
|  | 90 | 
|  | 91         self._cleanWorkingDir(cDir) | 
|  | 92 | 
|  | 93 if __name__ == '__main__': | 
|  | 94     launcher = WrappGetLetterDistribution() | 
|  | 95     launcher.setAttributesFromCommandLine() | 
|  | 96     launcher.wrapp() | 
|  | 97 |