Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Workflow Management System
Python JavaScript
Pull request Compare This branch is 104 commits ahead, 1 commit behind chris-zen:moved-to-bitbucket.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Wok is a workflow management system implemented in Python that makes very easy to structure the workflows, parallelize their execution and monitor its progress among other things. It is designed in a modular way allowing to adapt it to different infraestructures.

For the time being it is strongly focused on clusters implementing any DRMAA compatible resource manager (i.e. Oracle Grid Engine) which working nodes have a shared folder in common. Other, more flexible infrastructures (such as the Amazon EC2) are considered for future implementations.

Workflows in Wok are defined in an xml file with the .flow extension. This definition includes:

  • the different modules (or pieces of processing)
  • the interconnections between modules (i.e. the input of module B links with the output of module A)
  • explicit dependencies (i.e. module A cannot be executed until module B has finished)
  • descriptions that can be used to generate documentation automatically or to create web forms

Each module corresponds with a piece of software that has to be run in order to process some input and generate an output. For now, only Python scripts are allowed, but they can be used to execute software written in other languages.

Workflows in Wok can be treated as any software project and managed with version control system tools and the IDE of your choice.

Wok can be used as a terminal script or can be runned in server mode.

The execution of a workflow in the terminal is done using the script which allows few options:

  • An instance name (-n name), which allows to run the same workflow many times simultaneously independently
  • Configuration files (-c file.conf), the configuration can be splitted in as much files as desired
  • Configuration parameters (-D param=value), which overwrite any previous configuration in configuration files

The workflow definition file (i.e. myworkflow.flow) is passed as the first argument.

To monitor the execution of the workflow there are different resources available:

  • The web server that allows to interact with the engine in a very straightforward way. Recommended!.
  • The logs emited by the through the standard output,
  • The intermediate files generated by Wok (i.e. the tasks output files)

It has been designed for workflow developers who feel more confortable programming than doing hundred of clicks and drag & drop's, and also for those who want infraestructure flexibility and full control and monitorization of the execution.


It is being developed by Christian Pérez-Llamas under the Biomedical Genomics Research Group.


Wok is used in different projects of the group by many of the group members who contribute with great feedback.

Maik Röder (at CRG) and Giovanni Dall'Olio (at Institut de Biologia Evolutiva) are also giving nice feedback that helps on improving the software and the documentation.


This documentation is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License

The Wok software is licensed under the GPL v3.0, for more information read the attached LICENSE file.

Something went wrong with that request. Please try again.