コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)