Mercurial > repos > yufei-luo > s_mart
comparison commons/core/parsing/multifastaParserLauncher.py @ 38:2c0c0a89fad7
Uploaded
author | m-zytnicki |
---|---|
date | Thu, 02 May 2013 09:56:47 -0400 |
parents | 769e306b7933 |
children |
comparison
equal
deleted
inserted
replaced
37:d22fadc825e3 | 38:2c0c0a89fad7 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 """ | |
4 Launcher for the multifasta parser. | |
5 @param b: Name of the batch of sequences | |
6 @param g: Name of the gene | |
7 @param t: Scientific name of the taxon concerned | |
8 @param f: Name of the multifasta input file | |
9 """ | |
10 | |
11 | |
12 import os | |
13 import sys | |
14 import getopt | |
15 from commons.core.parsing.Multifasta2SNPFile import Multifasta2SNPFile | |
16 | |
17 CURRENT_DIR = os.getcwd() | |
18 | |
19 def help(): | |
20 | |
21 """ | |
22 Give the list of the command-line options. | |
23 """ | |
24 | |
25 print "Usage: ",sys.argv[0],"[ options ]" | |
26 print " -h: this help" | |
27 print "Mandatory option:" | |
28 print " -t: Scientific name of the taxon concerned" | |
29 print "Exclusive options (use either the first or the second, one should be used)" | |
30 print " -f: Name of the multifasta input file in one batch mode" | |
31 print " -d: Name of the directory containing multifasta input file(s) in multi-batch mode" | |
32 print "Only in one batch mode: mandatory options (when -f is used):" | |
33 print " -b: Name of the batch of submitted sequences" | |
34 print " -g: Name of the gene" | |
35 print "" | |
36 | |
37 | |
38 def runOneInputFile(batchName, geneName, taxon, inputFileName): | |
39 print "Multifasta parseur launched:!\n" | |
40 print "-- Input File: " + inputFileName + "\n" | |
41 print "-- Batch name: " + batchName + "\n" | |
42 print "-- Gene name: " + geneName + "\n" | |
43 print "-- Taxon: " + taxon + "\n" | |
44 #TODO: gerer le delete des fichiers(mode append) | |
45 multifasta2SNPFile = Multifasta2SNPFile(taxon, batchName, geneName) | |
46 multifasta2SNPFile.runOneBatch(inputFileName) | |
47 print "OK: Files generated!" | |
48 | |
49 | |
50 def runSeveralInputFile(taxon, rootDirectoryName): | |
51 multifasta2SNPFile = Multifasta2SNPFile(taxon) | |
52 multifasta2SNPFile.runSeveralBatches(rootDirectoryName) | |
53 | |
54 def main(): | |
55 batchName = "" | |
56 geneName = "" | |
57 taxon = "" | |
58 inputFileName = "" | |
59 rootDirectoryName = "" | |
60 | |
61 | |
62 try: | |
63 opts,args = getopt.getopt(sys.argv[1:],"hb:g:t:f:d:") | |
64 except getopt.GetoptError: | |
65 print "Invalid options\n" | |
66 help() | |
67 sys.exit(2) | |
68 | |
69 for o, a in opts: | |
70 if o == "-h": | |
71 help() | |
72 exit(0) | |
73 elif o == "-b": | |
74 batchName = a | |
75 elif o == "-g": | |
76 geneName = a | |
77 elif o == "-t": | |
78 taxon = a | |
79 elif o == "-f": | |
80 inputFileName = a | |
81 elif o == "-d": | |
82 rootDirectoryName = os.path.abspath(a) | |
83 | |
84 if taxon == "": | |
85 print "*** Error: The mandatory option -t is missing" | |
86 help() | |
87 sys.exit(1) | |
88 | |
89 if (inputFileName == "" and rootDirectoryName == "") or (inputFileName != "" and rootDirectoryName != ""): | |
90 print "*** Error: You have to specify the input mode: choose either -f (for one file) or -d (for one directory of several files)" | |
91 help() | |
92 sys.exit(1) | |
93 | |
94 if(inputFileName != ""): | |
95 if batchName == "" or geneName == "": | |
96 print "*** Error: A mandatory option is missing in one batch mode (-b or -g)" | |
97 help() | |
98 sys.exit(1) | |
99 | |
100 if(inputFileName != ""): | |
101 runOneInputFile(batchName, geneName, taxon, inputFileName) | |
102 else: | |
103 runSeveralInputFile(taxon, rootDirectoryName) | |
104 | |
105 | |
106 return 0 | |
107 | |
108 #------------------------------------------------------------------------------ | |
109 if __name__ == "__main__": | |
110 main() |