BioX::Workflow - A very opinionated template based workflow writer.
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.
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.
You shouldn't really need to look here unless you have some reason to do some serious hacking.
Moose attributes. Technically any of these can be changed, but may break everything.
This should really be in BioX::Wrapper
Path to workflow workflow. This must be a YAML file.
This is the default. The outer loop are the rules, not the samples
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!
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',
Load plugins as an opt
attributes read in from runtime
Attributes defined in the global section of the yaml file
Attributes defined in the rules->rulename->local section of the yaml file
Our bash string
bowtie2 -p 12 -I {$sample}.fastq -O {$sample}.bam
Name of the rule
Name of the previous rule
Subroutines can also be overriden and/or extended in the usual Moose fashion.
Starting point.
Load the workflow, additional classes, and plugins
Initialize the global_attr, make the global outdir, and find samples
use Config::Any to load configuration files - yaml, json, etc
Load plugins defined in yaml or on command line with --plugins with MooseX::Object::Pluggable
Load classes defined in yaml with Class::Load
Make the template for interpolating strings
Add our global key from config file to the global_attr, and then to attr
Deprecated: set_global_yaml
Add attributes to $self-> namespace
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
After each rule is processe clear the $self->attr
There should be one key and one key only!
Clear the process attr
Deprecated: clear_process_vars
Initialize the process vars
Add the local attr onto the global attr
BioX::Workflow - A very opinionated template based workflow writer.
Jillian Rowe [email protected]
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 2015- Weill Cornell Medical College in Qatar
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.