diff commons/core/parsing/multifastaParserLauncher.py @ 38:2c0c0a89fad7

Uploaded
author m-zytnicki
date Thu, 02 May 2013 09:56:47 -0400
parents 769e306b7933
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commons/core/parsing/multifastaParserLauncher.py	Thu May 02 09:56:47 2013 -0400
@@ -0,0 +1,110 @@
+#!/usr/bin/env python
+
+"""
+Launcher for the multifasta parser.
+@param b: Name of the batch of sequences
+@param g: Name of the gene
+@param t: Scientific name of the taxon concerned
+@param f: Name of the multifasta input file  
+"""
+
+
+import os
+import sys
+import getopt
+from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFile
+
+CURRENT_DIR = os.getcwd()
+
+def help():
+        
+    """
+    Give the list of the command-line options.
+    """
+        
+    print "Usage: ",sys.argv[0],"[ options ]"
+    print "     -h: this help"
+    print "Mandatory option:"
+    print "     -t: Scientific name of the taxon concerned"
+    print "Exclusive options (use either the first or the second, one should be used)"
+    print "     -f: Name of the multifasta input file in one batch mode"
+    print "     -d: Name of the directory containing multifasta input file(s) in multi-batch mode"
+    print "Only in one batch mode: mandatory options (when -f is used):"    
+    print "     -b: Name of the batch of submitted sequences"
+    print "     -g: Name of the gene"
+    print ""
+    
+
+def runOneInputFile(batchName, geneName, taxon, inputFileName):
+    print "Multifasta parseur launched:!\n"
+    print "-- Input File: " + inputFileName + "\n"
+    print "-- Batch name: " + batchName + "\n"
+    print "-- Gene name: " + geneName + "\n"
+    print "-- Taxon: " + taxon + "\n"
+    #TODO: gerer le delete des fichiers(mode append)
+    multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, geneName)
+    multifasta2SNPFile.runOneBatch(inputFileName)
+    print "OK: Files generated!"
+
+
+def runSeveralInputFile(taxon, rootDirectoryName):
+    multifasta2SNPFile = Multifasta2SNPFile(taxon)
+    multifasta2SNPFile.runSeveralBatches(rootDirectoryName)
+
+def main():
+    batchName = ""
+    geneName = ""
+    taxon = ""
+    inputFileName = ""
+    rootDirectoryName = ""
+    
+    
+    try:
+        opts,args = getopt.getopt(sys.argv[1:],"hb:g:t:f:d:")
+    except getopt.GetoptError:
+        print "Invalid options\n"
+        help()
+        sys.exit(2)
+
+    for o, a in opts:
+        if o == "-h":
+            help()
+            exit(0)
+        elif o == "-b":
+            batchName = a
+        elif o == "-g":
+            geneName = a
+        elif o == "-t":
+            taxon = a
+        elif o == "-f":
+            inputFileName = a
+        elif o == "-d":
+            rootDirectoryName = os.path.abspath(a)
+            
+    if taxon == "":
+        print "*** Error: The mandatory option -t is missing"
+        help()
+        sys.exit(1)
+    
+    if (inputFileName == "" and  rootDirectoryName == "") or (inputFileName != "" and  rootDirectoryName != ""):
+        print "*** Error: You have to specify the input mode: choose either -f (for one file) or -d (for one directory of several files)"
+        help()
+        sys.exit(1)
+        
+    if(inputFileName != ""):
+        if batchName == "" or geneName == "":
+            print "*** Error: A mandatory option is missing in one batch mode (-b or -g)"
+            help()
+            sys.exit(1)
+    
+    if(inputFileName != ""):
+        runOneInputFile(batchName, geneName, taxon, inputFileName)
+    else:
+        runSeveralInputFile(taxon, rootDirectoryName)
+    
+    
+    return 0
+
+#------------------------------------------------------------------------------
+if __name__ == "__main__":
+    main()
\ No newline at end of file