NAME
BioX::Workflow - A very opinionated template based workflow writer.
SYNOPSIS
Most of the functionality can be accessed through the biox-workflow.pl script.
biox-workflow.pl --workflow /path/to/workflow.yml
This module was written with Bioinformatics workflows in mind, but should be extensible to any sort of workflow or pipeline.
Usage
Please check out the full Usage Docs at BioX::Workflow::Usage
Alternately, check out the github pages at http://jerowe.github.io/BioX-Workflow-Docs/showcase.html. This format may be easier to read.
In Code Documenation
You shouldn't really need to look here unless you have some reason to do some serious hacking.
Attributes
Moose attributes. Technically any of these can be changed, but may break everything.
comment_char
This should really be in BioX::Wrapper
workflow
Path to workflow workflow. This must be a YAML file.
rule_based
This is the default. The outer loop are the rules, not the samples
sample_based
Default Value. The outer loop is samples, not rules. Must be set in your global values or on the command line --sample_based 1
If you ever have resample: 1 in your config you should NOT set this value to true!
stash
This isn't ever used in the code. Its just there incase you want to persist objects across rules
It uses Moose::Meta::Attribute::Native::Trait::Hash and supports all the methods.
set_stash => 'set',
get_stash => 'get',
has_no_stash => 'is_empty',
num_stashs => 'count',
delete_stash => 'delete',
stash_pairs => 'kv',
plugins
Load plugins as an opt
No GetOpt Here
attr
attributes read in from runtime
global_attr
Attributes defined in the global section of the yaml file
local_attr
Attributes defined in the rules->rulename->local section of the yaml file
local_rule
process
Our bash string
bowtie2 -p 12 -I {$sample}.fastq -O {$sample}.bam
key
Name of the rule
pkey
Name of the previous rule
Subroutines
Subroutines can also be overriden and/or extended in the usual Moose fashion.
run
Starting point.
init_things
Load the workflow, additional classes, and plugins
Initialize the global_attr, make the global outdir, and find samples
workflow_load
use Config::Any to load configuration files - yaml, json, etc
plugin_load
Load plugins defined in yaml or on command line with --plugins with MooseX::Object::Pluggable
class_load
Load classes defined in yaml with Class::Load
make_template
Make the template for interpolating strings
init_global_attr
Add our global key from config file to the global_attr, and then to attr
Deprecated: set_global_yaml
create_attr
Add attributes to $self-> namespace
eval_attr
Evaluate the keys for variables using Text::Template {$sample} -> SampleA {$self->indir} -> data/raw (or the indir of the rule)
If variables are themselves hashes/array refs, leave them alone
clear_attr
After each rule is processe clear the $self->attr
check_keys
There should be one key and one key only!
clear_process_attr
Clear the process attr
Deprecated: clear_process_vars
init_process_vars
Initialize the process vars
add_attr
Add the local attr onto the global attr
DESCRIPTION
BioX::Workflow - A very opinionated template based workflow writer.
AUTHOR
Jillian Rowe <jillian.e.rowe@gmail.com>
Acknowledgements
Before version 0.03
This module was originally developed at and for Weill Cornell Medical College in Qatar within ITS Advanced Computing Team. With approval from WCMC-Q, this information was generalized and put on github, for which the authors would like to express their gratitude.
As of version 0.03:
This modules continuing development is supported by NYU Abu Dhabi in the Center for Genomics and Systems Biology. With approval from NYUAD, this information was generalized and put on bitbucket, for which the authors would like to express their gratitude.
COPYRIGHT
Copyright 2015- Weill Cornell Medical College in Qatar
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.