##################################
#                                #
# Last modified 07/26/2011       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string

def run():

    if len(sys.argv) < 5:
        print 'usage: python %s <list of MAF files> <parameters files> <output folder> <outfile prefix> outfile' % sys.argv[0]
        print '      one file per line for the list of MAF ifles'
        print '      a file with all custom parameters on a single line'
        print '      Note: the PhyloCSF output will go into the .out file'
        sys.exit(1)
    
    input = sys.argv[1]
    parametersFile = sys.argv[2]
    outFolder = sys.argv[3]
    outPrefix = sys.argv[4]
    outfilename = sys.argv[5]

    if outFolder.endswith('/'):
        outFolder = outFolder[0:-1]

    outfile=open(outfilename,'w')

    outfile.write('universe=vanilla'+'\n')
    outfile.write('\n')
    outfile.write('environment=' + '\n')
    outfile.write('\n')
    outfile.write('executable=/woldlab/castor/data00/home/georgi/programs/PhyloCSF-e346e1c/PhyloCSF' + '\n')
    outfile.write('\n')
    outfile.write('log=' + outFolder + '/' + outPrefix + '.log\n')
    outfile.write('output=' + outFolder + '/' + outPrefix + '.$(Process).out\n')
    outfile.write('error=' + outFolder + '/' + outPrefix + '.err\n')
    outfile.write('\n')
    outfile.write('request_cpus = 1' + '\n')
    outfile.write('request_memory = 100' + '\n')
    outfile.write('request_disk = 0' + '\n')
    outfile.write('\n')

    files=open(parametersFile)
    linelist=list(files) 
    parameters=linelist[0].strip()

    files=open(input)
    for line1 in files:
        MAF=line1.strip().split('\t')[0]
        outline = 'arguments=' + parameters + ' ' + MAF
        outfile.write(outline + '\n')
        outfile.write('queue' + '\n')

    outfile.close()
   
run()
