0
|
1 # -*- coding: utf-8 -*-
|
|
2 """
|
|
3 Glimmer --> extract
|
|
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 Extract input options...'
|
|
14 parser = optparse.OptionParser()
|
|
15 parser.add_option('--exSequence', dest='sequence', help='')
|
|
16 parser.add_option('--exCoords', dest='coords', help='')
|
|
17 parser.add_option('--ex2Fields', action='store_true', dest='twofields', help='')
|
|
18 parser.add_option('--exDir', action='store_true', dest='dir', help='')
|
|
19 parser.add_option('--exMinLen', dest='minlen', type='int', help='')
|
|
20 parser.add_option('--exNoStart', action='store_true', dest='nostart', help='')
|
|
21 parser.add_option('--exNoStop', action='store_true', dest='nostop', help='')
|
|
22 parser.add_option('--exNoWrap', action='store_true', dest='nowrap', help='')
|
|
23 parser.add_option('--exOutput', dest='output', help='')
|
|
24 parser.add_option('--logfile', dest='logfile', help='')
|
|
25 (options, args) = parser.parse_args()
|
|
26 if len(args) > 0:
|
|
27 parser.error('Wrong number of arguments')
|
|
28
|
|
29 # build Extract command to be executed
|
|
30 sequence = options.sequence
|
|
31 coords = options.coords
|
|
32 if options.twofields:
|
|
33 twofields = '--2_fields'
|
|
34 else:
|
|
35 twofields = ''
|
|
36 if options.dir:
|
|
37 direct = '--dir'
|
|
38 else:
|
|
39 direct = ''
|
|
40 if options.minlen is not None:
|
|
41 minlen = '--minlen %d' % (options.minlen)
|
|
42 else:
|
|
43 minlen = ''
|
|
44 if options.nostart:
|
|
45 nostart = '--nostart'
|
|
46 else:
|
|
47 nostart = ''
|
|
48 if options.nostop:
|
|
49 nostop = '--nostop'
|
|
50 else:
|
|
51 nostop = ''
|
|
52 if options.nowrap:
|
|
53 nowrap = '--nowrap'
|
|
54 else:
|
|
55 nowrap = ''
|
|
56 output = options.output
|
|
57 logfile = options.logfile
|
|
58
|
|
59 # Build Extract command
|
|
60 cmd = 'extract %s %s %s %s %s %s %s %s > %s' % (twofields, direct, minlen, nostart, nostop, nowrap, sequence, coords, output)
|
|
61 print '\nExtract command to be executed: \n %s' % (cmd)
|
|
62
|
|
63 print 'Executing Extract...'
|
|
64 if logfile:
|
|
65 log = open(logfile, 'w')
|
|
66 else:
|
|
67 log = sys.stdout
|
|
68 try:
|
|
69 subprocess.check_call(cmd, stdout=log, stderr=subprocess.STDOUT, shell=True)
|
|
70 finally:
|
|
71 if log != sys.stdout:
|
|
72 log.close()
|
|
73 print 'Extract executed!'
|
|
74
|
|
75
|
|
76 if __name__ == "__main__":
|
|
77 __main__()
|