0
|
1 # -*- coding: utf-8 -*-
|
|
2 """
|
|
3 Glimmer --> long-orfs
|
|
4 version 0.2 (andrea.pinna@crs4.it)
|
|
5 """
|
|
6
|
|
7 import optparse
|
|
8 import subprocess
|
|
9 import sys
|
|
10
|
|
11 def __main__():
|
|
12 # load arguments
|
|
13 print 'Parsing Long-ORFs input options...'
|
|
14 parser = optparse.OptionParser()
|
|
15 parser.add_option('--loSequence', dest='sequence', help='')
|
|
16 parser.add_option('--loStartCodons', dest='start_codons', help='')
|
|
17 parser.add_option('--loEntropy', dest='entropy', help='')
|
|
18 parser.add_option('--loFixed', action='store_true', dest='fixed', help='')
|
|
19 parser.add_option('--loMinLen', dest='min_len', type='int', help='')
|
|
20 parser.add_option('--loIgnore', dest='ignore', help='')
|
|
21 parser.add_option('--loLinear', action='store_true', dest='linear', help='')
|
|
22 parser.add_option('--loLengthOpt', action='store_true', dest='length_opt', help='')
|
|
23 parser.add_option('--loNoHeader', action='store_true', dest='no_header', help='')
|
|
24 parser.add_option('--loMaxOverlap', dest='max_olap', type='int', help='')
|
|
25 parser.add_option('--loCutoff', dest='cutoff', type='float', help='')
|
|
26 parser.add_option('--loWithoutStops', action='store_true', dest='without_stops', help='')
|
|
27 parser.add_option('--loTransTable', dest='trans_table', type='int', help='')
|
|
28 parser.add_option('--loStopCodons', dest='stop_codons', help='')
|
|
29 parser.add_option('--loOutput', dest='output', help='')
|
|
30 parser.add_option('--logfile', dest='logfile', help='')
|
|
31 (options, args) = parser.parse_args()
|
|
32 if len(args) > 0:
|
|
33 parser.error('Wrong number of arguments')
|
|
34
|
|
35 # build Long-ORFs command to be executed
|
|
36 sequence = options.sequence
|
|
37 if options.start_codons:
|
|
38 start_codons = '--start_codons %s' % (options.start_codons)
|
|
39 else:
|
|
40 start_codons = ''
|
|
41 if options.entropy:
|
|
42 entropy = '--entropy %s' % (options.entropy)
|
|
43 else:
|
|
44 entropy = ''
|
|
45 if options.fixed:
|
|
46 fixed = '--fixed'
|
|
47 else:
|
|
48 fixed = ''
|
|
49 if options.min_len is not None:
|
|
50 min_len = '--min_len %d' % (options.min_len)
|
|
51 else:
|
|
52 min_len = ''
|
|
53 if options.ignore:
|
|
54 ignore = '--ignore %s' % (options.ignore)
|
|
55 else:
|
|
56 ignore = ''
|
|
57 if options.linear:
|
|
58 linear = '--linear'
|
|
59 else:
|
|
60 linear = ''
|
|
61 if options.length_opt:
|
|
62 length_opt = '--length_opt'
|
|
63 else:
|
|
64 length_opt = ''
|
|
65 if options.no_header:
|
|
66 no_header = '--no_header'
|
|
67 else:
|
|
68 no_header = ''
|
|
69 if options.max_olap is not None:
|
|
70 max_olap = '--max_olap %d' % (options.max_olap)
|
|
71 else:
|
|
72 max_olap = ''
|
|
73 if options.cutoff is not None:
|
|
74 cutoff = '--cutoff %s' % (options.cutoff)
|
|
75 else:
|
|
76 cutoff = ''
|
|
77 if options.without_stops:
|
|
78 without_stops = '--without_stops'
|
|
79 else:
|
|
80 without_stops = ''
|
|
81 if options.trans_table is not None:
|
|
82 trans_table = '--trans_table %s' % (options.trans_table)
|
|
83 else:
|
|
84 trans_table = ''
|
|
85 if options.stop_codons:
|
|
86 stop_codons = '--stop_codons %s' % (options.stop_codons)
|
|
87 else:
|
|
88 stop_codons = ''
|
|
89 output = options.output
|
|
90 logfile = options.logfile
|
|
91
|
|
92 # Build Long-ORFs command
|
|
93 cmd = 'long-orfs %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (sequence, start_codons, entropy, fixed, min_len, ignore, linear, length_opt, no_header, max_olap, cutoff, without_stops, trans_table, stop_codons, output)
|
|
94 print '\nLong-ORFs command to be executed: \n %s' % (cmd)
|
|
95
|
|
96 print 'Executing Long-ORFs...'
|
|
97 if logfile:
|
|
98 log = open(logfile, 'w')
|
|
99 else:
|
|
100 log = sys.stdout
|
|
101 try:
|
|
102 subprocess.check_call(cmd, stdout=log, stderr=subprocess.STDOUT, shell=True)
|
|
103 finally:
|
|
104 if log != sys.stdout:
|
|
105 log.close()
|
|
106 print 'Long-ORFs executed!'
|
|
107
|
|
108
|
|
109 if __name__ == "__main__":
|
|
110 __main__()
|