BioX-Workflow-Plugin-Drake

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME

    BioX::Workflow::Plugin::Drake - A very opinionated template based
    bioinformatics workflow writer for Drake.

SYNOPSIS

    The main documentation for this module is at BioX::Workflow. This
    module extends Workflow in order to add functionality for outputing
    workflows in drake format.

        biox-workflow.pl --workflow workflow.yml > workflow.drake
        drake --workflow workflow.drake  #with other functionality such as --jobs for asynchronous output, etc.
    
        List your plugins in your workflow.yml file
    
        ---
        plugins:
            - Drake
        global:
            - indir: /home/user/gemini
            - outdir: /home/user/gemini/gemini-wrapper
            - file_rule: (.vcf)$|(.vcf.gz)$
            - infile:
            - min: 1 ##IF USING MIN
        #So On and So Forth

    More information about Drake can be found here
    https://github.com/Factual/drake.

 Default Variables

    BioX::Workflow::Plugin::Drake assumes your INPUT/OUTPUT and
    indir/outdirs are linked.

    This means the output from step1 is the input for step2.

    You can override this behavior by either declaring any of these values,
    or in the global variables set auto_input: 0, disable automatic
    indir/outdir naming with auto_name: 0, and disable automatically naming
    outdirectories by rule names with enforce_struct: 0.

 Example

  workflow.yml

        ---
        plugins:
            - Drake
        global:
            - indir: /home/user/workflow
            - outdir: /home/user/workflow/output
            - file_rule: (.csv)$
        rules:
            - backup:
                local:
                    - INPUT: "{$self->indir}/{$sample}.csv"
                    - OUTPUT: "{$self->outdir}/{$sample}.csv"
                    - thing: "other thing"
                process: |
                    cp $INPUT $OUTPUT
            - grep_VARA:
                local:
                    - OUTPUT: "{$self->outdir}/{$sample}.grep_VARA.csv"
                process: |
                    echo "Working on {$self->{indir}}/{$sample.csv}"
                    grep -i "VARA" {$self->indir}/{$sample}.csv >> {$self->outdir}/{$sample}.grep_VARA.csv \
                    || touch {$self->OUTPUT}
            - grep_VARB:
                local:
                    - OUTPUT: "{$self->outdir}/{$sample}.grep_VARA.grep_VARB.csv"
                process: |
                    grep -i "VARB" {$self->indir}/{$sample}.grep_VARA.csv >> {$self->outdir}/{$sample}.grep_VARA.grep_VARB.csv || touch {$self->OUTPUT}



( run in 2.219 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )