Mercurial > repos > crs4 > glimmer
diff long-orfs_wrapper.py @ 0:9c8ffce71f7c draft default tip
Uploaded
author | crs4 |
---|---|
date | Mon, 09 Sep 2013 12:16:17 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/long-orfs_wrapper.py Mon Sep 09 12:16:17 2013 -0400 @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +""" +Glimmer --> long-orfs +version 0.2 (andrea.pinna@crs4.it) +""" + +import optparse +import subprocess +import sys + +def __main__(): + # load arguments + print 'Parsing Long-ORFs input options...' + parser = optparse.OptionParser() + parser.add_option('--loSequence', dest='sequence', help='') + parser.add_option('--loStartCodons', dest='start_codons', help='') + parser.add_option('--loEntropy', dest='entropy', help='') + parser.add_option('--loFixed', action='store_true', dest='fixed', help='') + parser.add_option('--loMinLen', dest='min_len', type='int', help='') + parser.add_option('--loIgnore', dest='ignore', help='') + parser.add_option('--loLinear', action='store_true', dest='linear', help='') + parser.add_option('--loLengthOpt', action='store_true', dest='length_opt', help='') + parser.add_option('--loNoHeader', action='store_true', dest='no_header', help='') + parser.add_option('--loMaxOverlap', dest='max_olap', type='int', help='') + parser.add_option('--loCutoff', dest='cutoff', type='float', help='') + parser.add_option('--loWithoutStops', action='store_true', dest='without_stops', help='') + parser.add_option('--loTransTable', dest='trans_table', type='int', help='') + parser.add_option('--loStopCodons', dest='stop_codons', help='') + parser.add_option('--loOutput', dest='output', help='') + parser.add_option('--logfile', dest='logfile', help='') + (options, args) = parser.parse_args() + if len(args) > 0: + parser.error('Wrong number of arguments') + + # build Long-ORFs command to be executed + sequence = options.sequence + if options.start_codons: + start_codons = '--start_codons %s' % (options.start_codons) + else: + start_codons = '' + if options.entropy: + entropy = '--entropy %s' % (options.entropy) + else: + entropy = '' + if options.fixed: + fixed = '--fixed' + else: + fixed = '' + if options.min_len is not None: + min_len = '--min_len %d' % (options.min_len) + else: + min_len = '' + if options.ignore: + ignore = '--ignore %s' % (options.ignore) + else: + ignore = '' + if options.linear: + linear = '--linear' + else: + linear = '' + if options.length_opt: + length_opt = '--length_opt' + else: + length_opt = '' + if options.no_header: + no_header = '--no_header' + else: + no_header = '' + if options.max_olap is not None: + max_olap = '--max_olap %d' % (options.max_olap) + else: + max_olap = '' + if options.cutoff is not None: + cutoff = '--cutoff %s' % (options.cutoff) + else: + cutoff = '' + if options.without_stops: + without_stops = '--without_stops' + else: + without_stops = '' + if options.trans_table is not None: + trans_table = '--trans_table %s' % (options.trans_table) + else: + trans_table = '' + if options.stop_codons: + stop_codons = '--stop_codons %s' % (options.stop_codons) + else: + stop_codons = '' + output = options.output + logfile = options.logfile + + # Build Long-ORFs command + 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) + print '\nLong-ORFs command to be executed: \n %s' % (cmd) + + print 'Executing Long-ORFs...' + if logfile: + log = open(logfile, 'w') + else: + log = sys.stdout + try: + subprocess.check_call(cmd, stdout=log, stderr=subprocess.STDOUT, shell=True) + finally: + if log != sys.stdout: + log.close() + print 'Long-ORFs executed!' + + +if __name__ == "__main__": + __main__()