#!/usr/bin/env python3 import os import os.path import shutil import subprocess import sys #Version 4/23/98 #Synopsis: consensus.csh infile program width strand printbest outfile """ ensure that there are enough command line arguments to parse """ if len(sys.argv) < 7: print("Usage: consensus.py INFILE PROGRAM WIDTH STRAND PRINTBEST OUTFILE") exit(); #Convert arguments to variables INFILE = sys.argv[1] PROGRAM = sys.argv[2] WIDTH = sys.argv[3] STRAND = sys.argv[4] PRINTBEST = sys.argv[5] OUTFILE = sys.argv[6] PWD = os.getcwd() # Make a temporary directory to run the program in TEMPDIR = 'CONSENSUS.' + os.getpid() os.mkdir(TEMPDIR) shutil.copyfile(INFILE, TEMPDIR) shutil.copyfile(INFILE + '.alphabet', TEMPDIR) os.chdir(TEMPDIR) infile = open(INFILE, 'r') outfile = open(OUTFILE, 'w') #-------- run consensus ----------- if PROGRAM == "consensus": subprocess.call(['consensus', '-a', INFILE + '.alphabet', STRAND, '-L' + WIDTH, '-pf', PRINTBEST], stdin=infile, stdout=outfile) elif PROGRAM == "wconsensus": if STRAND == "-c3": STRAND = "" subprocess.call(['consensus', '-a', INFILE + '.alphabet', STRAND, '-pf', PRINTBEST], stdin=infile, stdout=outfile) infile.close() outfile.close() #----------- Return results to calling directory---------------- shutil.copyfile(OUTFILE, os.path.join(PWD, OUTFILE)) os.chdir(PWD) shutil.rmtree(TEMPDIR)