Mercurial > repos > crs4 > glimmer
comparison glimmer3_wrapper.py @ 0:9c8ffce71f7c draft default tip
Uploaded
author | crs4 |
---|---|
date | Mon, 09 Sep 2013 12:16:17 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:9c8ffce71f7c |
---|---|
1 # -*- coding: utf-8 -*- | |
2 """ | |
3 Glimmer --> glimmer3 | |
4 version 0.2 (andrea.pinna@crs4.it) | |
5 """ | |
6 | |
7 import optparse | |
8 import shutil | |
9 import subprocess | |
10 import sys | |
11 | |
12 def __main__(): | |
13 # load arguments | |
14 print 'Parsing input options...' | |
15 parser = optparse.OptionParser() | |
16 parser.add_option('--glSequence', dest='sequence', help='') | |
17 parser.add_option('--glIcm', dest='icm', help='') | |
18 #parser.add_option('--glPrefix', dest='prefix', help='') | |
19 parser.add_option('--glStartCodons', dest='start_codons', help='') | |
20 parser.add_option('--glRbsPwm', dest='rbs_pwm', help='') | |
21 parser.add_option('--glGcPercent', dest='gc_percent', type='float', help='') | |
22 parser.add_option('--glEntropy', dest='entropy', help='') | |
23 parser.add_option('--glFirstCodon', action='store_true', dest='first_codon', help='') | |
24 parser.add_option('--glGeneLen', dest='gene_len', type='int', help='') | |
25 parser.add_option('--glIgnore', dest='ignore', help='') | |
26 parser.add_option('--glLinear', action='store_true', dest='linear', help='') | |
27 parser.add_option('--glOrfCoords', dest='orf_coords', help='') | |
28 parser.add_option('--glSeparateGenes', action='store_true', dest='separate_genes', help='') | |
29 parser.add_option('--glMaxOverlap', dest='max_olap', type='int', help='') | |
30 parser.add_option('--glStartProbs', dest='start_probs', help='') | |
31 parser.add_option('--glIgnoreScoreLen', dest='ignore_score_len', type='int', help='') | |
32 parser.add_option('--glNoIndep', action='store_true', dest='no_indep', help='') | |
33 parser.add_option('--glThreshold', dest='threshold', type='int', help='') | |
34 parser.add_option('--glExtend', action='store_true', dest='extend', help='') | |
35 parser.add_option('--glTransTable', dest='trans_table', type='int', help='') | |
36 parser.add_option('--glStopCodons', dest='stop_codons', help='') | |
37 parser.add_option('--glDetail', dest='detail', help='') | |
38 parser.add_option('--glPredict', dest='predict', help='') | |
39 parser.add_option('--logfile', dest='logfile', help='') | |
40 (options, args) = parser.parse_args() | |
41 if len(args) > 0: | |
42 parser.error('Wrong number of arguments') | |
43 | |
44 # build Glimmer3 command to be executed | |
45 # sequence file | |
46 sequence = options.sequence | |
47 # icm file | |
48 icm = options.icm | |
49 # prefix (not needed) | |
50 prefix = 'prefix' | |
51 # start codons | |
52 if options.start_codons: | |
53 start_codons = '--start_codons %s' % (options.start_codons) | |
54 else: | |
55 start_codons = '' | |
56 # rbs_pwm | |
57 if options.rbs_pwm: | |
58 rbs_pwm = '--rbs_pwm %s' % (options.rbs_pwm) | |
59 else: | |
60 rbs_pwm = '' | |
61 # gc percentage | |
62 if options.gc_percent is not None: | |
63 gc_percent = '--gc_percent %s' % (options.gc_percent) | |
64 else: | |
65 gc_percent = '' | |
66 # entropy | |
67 if options.entropy: | |
68 entropy = "--entropy '%s'" % (options.entropy) | |
69 else: | |
70 entropy = '' | |
71 # first_codon | |
72 if options.first_codon: | |
73 first_codon = '--first_codon' | |
74 else: | |
75 first_codon = '' | |
76 # gene length | |
77 if options.gene_len is not None: | |
78 gene_len = '--gene_len %d' % (options.gene_len) | |
79 else: | |
80 gene_len = '' | |
81 # ignore | |
82 if options.ignore: | |
83 ignore = '--ignore %s' % (options.ignore) | |
84 else: | |
85 ignore = '' | |
86 # linear | |
87 if options.linear: | |
88 linear = '--linear' | |
89 else: | |
90 linear = '' | |
91 # orf_coords | |
92 if options.orf_coords: | |
93 orf_coords = '--orf_coords %s' % (options.orf_coords) | |
94 else: | |
95 orf_coords = '' | |
96 # separate genes | |
97 if options.separate_genes: | |
98 separate_genes = '--separate_genes' | |
99 else: | |
100 separate_genes = '' | |
101 # max overlap | |
102 if options.max_olap is not None: | |
103 max_olap = '--max_olap %d' % (options.max_olap) | |
104 else: | |
105 max_olap = '' | |
106 # start probs | |
107 if options.start_probs: | |
108 start_probs = '--start_probs %s' % (options.start_probs) | |
109 else: | |
110 start_probs = '' | |
111 # ignore score length | |
112 if options.ignore_score_len is not None: | |
113 ignore_score_len = '--ignore_score_len %d' % (options.ignore_score_len) | |
114 else: | |
115 ignore_score_len = '' | |
116 # no indep | |
117 if options.no_indep: | |
118 no_indep = '--no_indep' | |
119 else: | |
120 no_indep = '' | |
121 # threshold | |
122 if options.threshold is not None: | |
123 threshold = '--threshold %d' % (options.threshold) | |
124 else: | |
125 threshold = '' | |
126 # extend | |
127 if options.extend: | |
128 extend = '--extend' | |
129 else: | |
130 extend = '' | |
131 # trans table | |
132 if options.trans_table is not None: | |
133 trans_table = '--trans_table %d' % (options.trans_table) | |
134 else: | |
135 trans_table = '' | |
136 # stop codons | |
137 if options.stop_codons: | |
138 stop_codons = '--stop_codons %s' % (options.stop_codons) | |
139 else: | |
140 stop_codons = '' | |
141 logfile = options.logfile | |
142 | |
143 # Build Glimmer3 command | |
144 cmd = 'glimmer3 %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (start_codons, rbs_pwm, gc_percent, entropy, first_codon, gene_len, ignore, linear, orf_coords, separate_genes, max_olap, start_probs, ignore_score_len, no_indep, threshold, extend, trans_table, stop_codons, sequence, icm, prefix) | |
145 print '\nGlimmer3 command to be executed: \n %s' % (cmd) | |
146 | |
147 print 'Executing Glimmer3...' | |
148 if logfile: | |
149 log = open(logfile, 'w') | |
150 else: | |
151 log = sys.stdout | |
152 try: | |
153 subprocess.check_call(cmd, stdout=log, stderr=subprocess.STDOUT, shell=True) | |
154 finally: | |
155 if log != sys.stdout: | |
156 log.close() | |
157 print 'Glimmer3 executed!' | |
158 | |
159 shutil.move(prefix + ".detail", options.detail) | |
160 shutil.move(prefix + ".predict", options.predict) | |
161 | |
162 | |
163 if __name__ == "__main__": | |
164 __main__() |