Rabix is an open-source development project for creating and running computational workflows. It was founded by Seven Bridges with the goal of empowering researchers and developers to easily run reproducible analyses at scale.
The Rabix project is currently supporting two efforts:
The Rabix Executor supports the Common Workflow Language (CWL) and is currently runnable from the command line. It is suitable for local testing and development. Rabix also supports the Global Alliance for Genomics Health (GA4GH) Task Execution Server (TES) as a way to scale to cloud environments.
The Rabix Composer is a standalone integrated development environment for workflow description languages that enables rapid workflow composition, testing, and integration with online services like DockerHub. A beta release is expected in the first half of 2017.
Rabix tools are designed to be easy to install and run. Start using tools and workflows described in CWL at scale in minutes.
The Rabix Executor gives you full control over how to run workflows, including management of intermediate results, parallelization, and software containers.
The primary goal of Rabix is to further reproducibility. With Rabix tools, you can leverage our version control tools, task and error logs, and have the ability to restart and reuse tools and workflows.
Computational reproducibility is incredibly challenging. Complicated software dependencies, poor documentation/communication, and human error leads to a great deal of disharmony and can impede scientific progress.
In recent years, a technology which makes it easier to share software and run everywhere in exactly the same way has become increasingly popular - software containers. Containers allow developers to package software into a discrete environment with its own virtual file system and dependencies. This means that whole teams can operate in a “single environment”, which minimizes errors when sharing and testing code, making it easier to scale. Recent technologies such as Docker (est. 2013) have automated the process of creating and sharing software containers, spurring much broader adoption and lowering the technical barrier to entry.
However, a major hurdle to reproducible software deployment persists - software containers may contain all the “pieces” to perform an analysis (besides data), but not the instructions on how to use them. It’s like having a box of ingredients without a recipe - every chef makes a different dish. To help solve this issue, the concept of workflow descriptions has been applied to containers to further enhance reproducibility, simplify software sharing/publication, and reducing the activation energy needed to start using a new algorithm or verify a scientific finding.
This is why much of the Rabix team are proud to be founding members of the Common Workflow Language, a community-driven effort to create a standard specification for reproducible workflows. Created in 2014, CWL is now widely-adopted among academic centers and industrial partners. The Rabix Executor is an open-source technology for implementing Common Workflow Language to its fullest potential.
Currently, all Rabix projects use the Apache 2.0 license.
Rabix is a portmanteau of Reproducible Analyses for Bioinformatics. It contains, in brief, our guiding mission statement. ‘Rabix’ has the added benefit of sounding like “rabbits,” a species known for its speed, flexibility and, um, reproducibility.
We have a publication outlining the feature set within the Rabix Executor, including how we enable persistence, tracking of jobs, job groups, memoization, parallelization, and scaling. It is available on PubMed and bioRxiv.
The Rabix project was founded by Seven Bridges in 2015. The team includes Nebojsa Tijanić (a co-author of the Common Workflow Language), Janko Simonović, Luka Stojanović, Siniša Ivković, Maja Nedeljković, Ivan Batić, Adrian Sharma and Gaurav Kaushik. We are proud to have collaborators involved in the Global Alliance for Genomics and Health (GA4GH) and academic and non-profit institutions.
The best way for developers to get in contact is through Gitter.
For bug fixes or feature requests, please create a GitHub issue at https://github.com/rabix/bunny.
If you’re interested in joining the Rabix community or learning how to leverage Rabix for your computing needs, you can reach us at firstname.lastname@example.org.