steps.append(PPS('Map peaks to genes',calls,env=os.environ)) # THEME # extract foreground and generate background sequences fg_fn = "%s_peaks.fa"%opts.exp_name bg_fn = "%s_bg.fa"%opts.exp_name nib_dir = org_settings['genome_dir'] calls = ["peaks_to_fasta.py %(opts)s --output=%(fg_fn)s --bg-fn=%(bg_fn)s %(organism)s %(peaks_fn)s"%{'opts':opts.pk_to_fa_args,'organism':organism,'fg_fn':fg_fn,'bg_fn':bg_fn,'peaks_fn':peaks_fn}] steps.append(PPS('Peaks to Fasta',calls,env=os.environ)) # run THEME on fg motif_fn = '%s_motifs.txt'%opts.exp_name hyp_fn = org_settings['theme_hypotheses'] markov_fn = org_settings['theme_markov'] calls = ["THEME.py %(opts)s --motif-file=%(motif_fn)s %(fg_fn)s %(bg_fn)s %(hyp)s %(markov)s"%{'opts':opts.theme_args,'motif_fn':motif_fn,'fg_fn':fg_fn,'bg_fn':bg_fn,'hyp':hyp_fn,'markov':markov_fn}] steps.append(PPS('Run THEME on foreground',calls,env=os.environ)) # run THEME randomization random_motif_fn = '%s_motifs_rand.txt'%opts.exp_name calls = ["THEME.py %(opts)s --randomization --motif-file=%(motif_fn)s %(fg_fn)s %(bg_fn)s %(hyp)s %(markov)s"%{'opts':opts.theme_args,'motif_fn':random_motif_fn,'fg_fn':fg_fn,'bg_fn':bg_fn,'hyp':hyp_fn,'markov':markov_fn}] steps.append(PPS('Run THEME randomization',calls,env=os.environ)) # cleanup rm_str = "rm -f %(d)s/*.out %(d)s/*.err %(d)s/*.script %(d)s/*.stats %(d)s/*.bed" calls = [rm_str%{'d':exp_wrk_dir}, rm_str%{'d':cnt_wrk_dir}] steps.append(PPS('Clean up',calls,env=os.environ)) pipeline.add_steps(steps) pipeline.run(interactive=not opts.auto)
ls_fn = 'ls_out.txt' steps.append(ProcessPypeStep('Get directory file list','ls -1d > %s'%ls_fn)) # step 2 - do a word count wc_fn = 'wc_out.txt' steps.append(ProcessPypeStep('Get wordcount','wc %s > %s'%(ls_fn,wc_fn))) # step 3 - sort the file and output steps.append(ProcessPypeStep('Sort wordcount','sort -n %s'%wc_fn)) # step 4 - cleanup files def rm_stuff() : import glob from subprocess import call txt_fns = glob.glob('*.txt') for fn in txt_fns : call('rm %s'%fn,shell=True) return True steps.append(PythonPypeStep('Cleanup',rm_stuff)) # step 5 - intentionally fail def epic_fail() : return False steps.append(PythonPypeStep('Cheerfully Ignore Failure',epic_fail)) # step 6 - whistle a happy tune steps.append(ProcessPypeStep('Whistle a Happy Tune','echo Whistling a happy tune')) pipeline.add_steps(steps) pipeline.run(interactive=True)
meme_d = {'meme_args':opts.meme_args, 'meme_log':meme_log, 'fg_fn':fg_fn, #'bg_fn':bg_fn, #'bg_markov':meme_bg_markov, 'meme_oc':meme_oc } calls = ["meme-chip -oc %(meme_oc)s %(meme_args)s %(fg_fn)s 2>&1 | tee %(meme_log)s"%meme_d] steps.append(PPS("Run MEME-ChIP",calls,env=os.environ)) ############################################################################# # build infosite ############################################################################# calls = ['build_chipseq_infosite.py %s'%opts.infosite_args] steps.append(PPS('Build infosite',calls,env=os.environ)) # cleanup rm_str = "rm -f %(d)s/*.out %(d)s/*.err %(d)s/*.script %(d)s/*.stats %(d)s/*.bed" calls = [rm_str%{'d':exp_wrk_dir}] if control_fn : calls.append(rm_str%{'d':cnt_wrk_dir}) #steps.append(PPS('Clean up',calls,env=os.environ)) pipeline.add_steps(steps) if opts.auto and opts.steplist is not None : steplist = parse_steplist(opts.steplist,pipeline) else : steplist = None pipeline.run(interactive=not opts.auto,steplist=steplist)