diff SMART/galaxy/WrappGetLetterDistribution.py @ 38:2c0c0a89fad7

Uploaded
author m-zytnicki
date Thu, 02 May 2013 09:56:47 -0400
parents 94ab73e8a190
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SMART/galaxy/WrappGetLetterDistribution.py	Thu May 02 09:56:47 2013 -0400
@@ -0,0 +1,97 @@
+#! /usr/bin/env python
+
+import os
+import sys
+import getopt
+from commons.core.checker.CheckerException import CheckerException
+
+SMART_PATH = "%s/SMART" % os.environ["REPET_PATH"]
+
+class WrappGetLetterDistribution(object):
+    
+    def __init__(self):
+        self._inputFileName = ""
+        self._inputFileFormat = ""
+        self._outputFileName = "tmpOutputFile"
+        self._csv = False
+
+    def help( self ):
+        print 
+        print "usage: %s [ options ]" % ( sys.argv[0] )
+        print "options:"
+        print "     -h: this help"
+        print "     -i: input file"
+        print "     -f: 'fasta' or 'fastq'"
+        print "     -c: CSV output file"
+        print "     -a: first PNG output file"
+        print "     -b: second PNG output file"
+        print
+        print "Exemple:"
+        print
+        print "1:\n\tpython WrappGetLetterDistribution.py -i inputFile.fasta -f fasta -c outputFile1.csv -a outputFile2.png -b outputFile3.png"
+        print
+        print "2:\n\tpython WrappGetLetterDistribution.py -i inputFile.fastq -f fastq -c outputFile1.csv -a outputFile2.png -b outputFile3.png"
+        print
+        print
+
+
+    def setAttributesFromCommandLine(self):
+        try:
+            opts, args = getopt.getopt( sys.argv[1:], "hi:f:a:b:c:" )
+        except getopt.GetoptError, err:
+            print str(err); sys.exit(1)
+        for o, a in opts:
+            if o == "-h":
+                self.help()
+                sys.exit(0)
+            if o == "-i":
+                self._inputFileName = a
+            elif o == "-f":
+                self._inputFileFormat = a
+            elif o == "-c":             
+                self._outputFileNameCSV = a  
+                self._csv = True
+            elif o == "-a":
+                self._outputFileNamePNG = a
+            elif o == "-b":
+                self._outputFileNamePerNtPNG = a 
+
+    def checkAttributes(self):
+        lMsg = []
+        if self._inputFileName == "" and not os.path.exists(self._inputFileName):
+            lMsg.append("ERROR: This input file doesn't exist!")
+        if self._inputFileFormat == "":
+            lMsg.append("ERROR: No input file format specified in option!")
+        if self._outputFileNamePNG == "":
+            lMsg.append("ERROR: No output file.png specified in option!")            
+        if self._outputFileNamePerNtPNG == "":
+            lMsg.append("ERROR: No output filePerNt.png specified in option!")
+        if self._outputFileNameCSV == "" and self._csv == True :
+            lMsg.append("ERROR: No output file.csv specified in option!")   
+            
+        print ">>> lMsg " + str(lMsg)
+        if lMsg != []:
+            exp = CheckerException()
+            exp.setMessages(lMsg)
+            raise (exp)
+
+    def _cleanWorkingDir(self, cDir):
+        os.system("rm %s/tmpData* %s/tmpScript*" % (cDir, cDir))
+        
+    def wrapp(self):
+        self.checkAttributes()
+	cDir = os.getcwd()
+
+        if self._csv == True:
+            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))
+            os.system("mv %s/%s.csv %s" % (cDir, self._outputFileName, self._outputFileNameCSV))
+            os.system("mv %s/%s.png %s" % (cDir, self._outputFileName, self._outputFileNamePNG))
+            os.system("mv %s/%sPerNt.png %s" % (cDir, self._outputFileName, self._outputFileNamePerNtPNG))
+
+        self._cleanWorkingDir(cDir)
+
+if __name__ == '__main__':
+    launcher = WrappGetLetterDistribution()
+    launcher.setAttributesFromCommandLine()
+    launcher.wrapp()
+