def start_assembly(args, logger): '''Start assembly of solid reads''' import mlst_modules from mlst_classes import Moab from mlst_classes import Semaphore import os # set queueing paths = mlst_modules.setSystem() home = os.getcwd() if args.partition == 'uv': cpuV = 'ncpus=%i,mem=%s,walltime=172800' % (args.n, args.m) cpuA = 'ncpus=1,mem=512mb,walltime=172800' cpuC = 'ncpus=1,mem=2gb,walltime=172800' cpuE = 'ncpus=1,mem=5gb,walltime=172800' cpuF = 'ncpus=2,mem=2gb,walltime=172800' cpuB = 'ncpus=16,mem=10gb,walltime=172800' else: cpuV = 'nodes=1:ppn=%i,mem=%s,walltime=172800' % (args.n, args.m) cpuA = 'nodes=1:ppn=1,mem=512mb,walltime=172800' cpuC = 'nodes=1:ppn=1,mem=2gb,walltime=172800' cpuE = 'nodes=1:ppn=1,mem=5gb,walltime=172800' cpuF = 'nodes=1:ppn=2,mem=2gb,walltime=172800' cpuB = 'nodes=1:ppn=16,mem=10gb,walltime=172800' solid_calls = solid(args) # set environment variable (add solid binaries to bin): env_var = 'denovo2=%s' % paths['solid_home'] # submit and release jobs print "Submitting jobs" solid_moab = Moab(solid_calls, logfile=logger, runname='run_mlst_solid', queue=args.q, cpu=cpuV, env=env_var, partition=args.partition, host='cge-s2.cbs.dtu.dk') # release jobs solid_moab.release(host='cge-s2.cbs.dtu.dk')
def start_assembly(args, logger): '''start newbler assembly''' import mlst_modules from mlst_classes import Moab from mlst_classes import Semaphore import os # set queueing paths = mlst_modules.setSystem() home = os.getcwd() if args.partition == 'uv': cpuV = 'ncpus=%i,mem=%s,walltime=172800' % (args.n, args.m) cpuA = 'ncpus=1,mem=512mb,walltime=172800' cpuC = 'ncpus=1,mem=2gb,walltime=172800' cpuE = 'ncpus=1,mem=5gb,walltime=172800' cpuF = 'ncpus=2,mem=2gb,walltime=172800' cpuB = 'ncpus=16,mem=10gb,walltime=172800' else: cpuV = 'nodes=1:ppn=%i,mem=%s,walltime=172800' % (args.n, args.m) cpuA = 'nodes=1:ppn=1,mem=512mb,walltime=172800' cpuC = 'nodes=1:ppn=1,mem=2gb,walltime=172800' cpuE = 'nodes=1:ppn=1,mem=5gb,walltime=172800' cpuF = 'nodes=1:ppn=2,mem=2gb,walltime=172800' cpuB = 'nodes=1:ppn=16,mem=10gb,walltime=172800' newbler_calls = newbler(args) newblerstats_calls = newbler_stats(args) # set environment variable (add newbler binaries to bin): env_var = 'PATH=/panvol1/simon/bin/454/bin/' # submit and release jobs print "Submitting jobs" newbler_moab = Moab(newbler_calls, logfile=logger, runname='run_mlst_newbler', queue=args.q, cpu=cpuV, env=env_var, partition=args.partition, host='cge-s2.cbs.dtu.dk') newblerstats_moab = Moab(newblerstats_calls, logfile=logger, runname='run_mlst_newblerstats', queue=args.q, cpu=cpuA, depend=True, depend_type='one2one', depend_val=[1], depend_ids=newbler_moab.ids, partition=args.partition, host='cge-s2.cbs.dtu.dk') # release jobs newbler_moab.release('cge-s2.cbs.dtu.dk') newblerstats_moab.release('cge-s2.cbs.dtu.dk')
def start_assembly(args, logger): '''Start assembly''' import mlst_modules from mlst_classes import Moab from mlst_classes import Semaphore import os # set queueing paths = mlst_modules.setSystem() home = os.getcwd() if args.partition == 'uv': cpuV = 'procs=%i,mem=%s,walltime=172800,flags=sharedmem' % (args.n, args.m) cpuA = 'procs=1,mem=512mb,walltime=172800,flags=sharedmem' cpuC = 'procs=1,mem=2gb,walltime=172800,flags=sharedmem' cpuE = 'procs=1,mem=5gb,walltime=172800,flags=sharedmem' cpuF = 'procs=2,mem=%s,walltime=172800,flags=sharedmem' % args.m cpuB = 'procs=16,mem=10gb,walltime=172800,flags=sharedmem' else: cpuV = 'nodes=1:ppn=%i,mem=%s,walltime=172800' % (args.n, args.m) cpuA = 'nodes=1:ppn=1,mem=512mb,walltime=172800' cpuC = 'nodes=1:ppn=1,mem=2gb,walltime=172800' cpuE = 'nodes=1:ppn=1,mem=5gb,walltime=172800' cpuF = 'nodes=1:ppn=2,mem=%s,walltime=172800' % args.m cpuB = 'nodes=1:ppn=16,mem=10gb,walltime=172800' # set kmersizes (if auto) if args.ksizes == ['auto']: args.ksizes = set_kmersizes(args) # trimming calls if args.trim: illuminatrim_calls = illumina_trim(args, int(args.ksizes[0]), 15, 20, 15, False) if not os.path.exists('trimmed'): os.makedirs('trimmed') # velvet calls velvet_calls = create_velvet_calls(args) # velvet parse calls postprocess_calls = postprocess(args) # set environment variable: env_var = 'OMP_NUM_THREADS=%i' % int(args.n - 1) # submit and release jobs # NB: mlst_denovo_velvet is run from a compute node, it will then ssh to "host" and submit the jobs from there (cge-s2) print "Submitting jobs" # if trimming is needed if args.trim: illuminatrim_moab = Moab(illuminatrim_calls, logfile=logger, runname='run_mlst_trim', queue=args.q, cpu=cpuF, partition=args.partition, host='cge-s2.cbs.dtu.dk') velvet_moab = Moab(velvet_calls, logfile=logger, runname='run_mlst_velvet', queue=args.q, cpu=cpuV, depend=True, depend_type='all', depend_val=[1], depend_ids=illuminatrim_moab.ids, env=env_var, partition=args.partition, host='cge-s2.cbs.dtu.dk') # if no trimming else: velvet_moab = Moab(velvet_calls, logfile=logger, runname='run_mlst_velvet', queue=args.q, cpu=cpuV, env=env_var, partition=args.partition, host='cge-s2.cbs.dtu.dk') # submit job for postprocessing postprocess_moab = Moab(postprocess_calls, logfile=logger, runname='run_mlst_postprocess', queue=args.q, cpu=cpuA, depend=True, depend_type='conc', depend_val=[len(velvet_calls)], depend_ids=velvet_moab.ids, partition=args.partition, host='cge-s2.cbs.dtu.dk') # release jobs print "Releasing jobs" if args.trim and len(illuminatrim_calls) > 0: illuminatrim_moab.release(host='cge-s2.cbs.dtu.dk') velvet_moab.release('cge-s2.cbs.dtu.dk') postprocess_moab.release(host='cge-s2.cbs.dtu.dk')