Introduction to Rabix and Rabix Composer
Rabix (Reproducible Analyses for Bioinformatics) is an open-source development kit from Seven Bridges for creating and running computational workflows in the Common Workflow Language (CWL) on your local machine. Rabix consists of the Rabix Composer and the Rabix Executor.
Rabix Composer provides an intuitive, visual editor to view and edit CWL tools and workflows. Rabix Executor allows you to execute and test CWL tools and workflows from the command line. The Rabix suite aims to make it easier than ever to write and run CWL.
The Rabix suite supports both the older CWL version, sbg:draft-2, and the more recent CWL version, v1.0. CWL sbg:draft-2 includes extensions to CWL draft-2 that are specific to Seven Bridges. CWL v1.0 includes most of the Seven Bridges extensions from CWL sbg:draft-2 as part of the standard specification and is fully portable to other CWL v1.0-conformant executors.
Rabix Composer allows you to mix CWL 1.0 and CWL sbg:draft-2 components in the same workflow. Rabix Executor can execute these mixed workflows, but note that many other CWL executors don’t currently support mixed workflows.
CWL is a specification for describing analysis tools and workflows in a way that makes them portable and scalable across a variety of software and hardware environments, from workstations to cluster, cloud, and high performance computing environments. CWL is designed to meet the needs of data-intensive science, such as bioinformatics, medical imaging, astronomy, physics, and chemistry.
CWL is developed by an informal, multi-vendor working group consisting of organizations and individuals aiming to enable scientists to share data analysis workflows. The CWL project is on GitHub and builds on technologies such as JSON-LD for data modeling and Docker for portable runtime environments. You can read more about CWL here.
About tools, workflows and apps
A tool is a CWL description of an individual command line utility, and its options, inputs and outputs. The CWL specification allows tools to be described in a standard and portable way.
Tools can be executed in isolation, or built into workflows, which are chains of one or more connected tools. As well as tools, workflows can contain other workflows. Workflows are also described in CWL.
Collectively, tools and workflows are often referred to as apps.
About Rabix Composer
Rabix Composer is the tool and workflow editor for Rabix. It allows you to browse and edit tools and workflows using a GUI graph view or the CWL code view.
Rabix Composer runs as an application on your local machine. You can use Rabix Composer to create and edit CWL tools and workflows (apps) locally and also to access and edit apps from the supported cloud Platforms (the Seven Bridges Platform, the Cancer Genomics Cloud (CGC) and Cavatica).
Local apps can be uploaded to any of these Platforms and executed there as usual, but they can also be executed and tested locally using Rabix Executor (project Bunny) or another suitable CWL executor, for example, CWL Tool. When you are developing and testing an app, this is a major advantage, as it is more efficient, and saves Platform time and execution costs. Because you are working locally, you can store your apps safely in your source control system while you are developing them, then upload them to your Platform when they are completed.
Another useful feature is the ability to switch between the visual editor and the CWL code view. Changes made in one view are immediately reflected in the other view so you can use whichever view is most suitable, without needing to transfer files between separate visual and text editors.
Rabix Composer has a simple and intuitive navigation structure, which allows you to easily and simultaneously view local apps, public apps and apps from your Platform projects. Unlike the standard tool and workflow editors on the Platforms, Rabix Composer allows you to open multiple tools and workflows in different tabs, making it easier to develop complex workflows.
You do not need a Platform account to use Rabix Composer, but if you connect a Platform account you can:
- access public tools and workflows from the Platform
- access, edit and run tools and workflows from your Platform projects
- develop and test new tools and workflows locally, efficiently and without computation charges, then upload them to the Platform to use in your Platform projects when they are ready.
About Rabix Executor
Rabix Executor allows you to execute CWL apps locally from the command line. You can use the integrated Rabix Executor to test apps locally you have developed using Rabix Composer.
You can find more information about Rabix Executor here.
About the Seven Bridges Platform
The Seven Bridges Platform is a cloud-based environment for analyzing genomics data. It provides cloud-based access to public genomics reference files and datasets, and to public tools and workflows. You can also add your own data, tools and workflows and use them to build new workflows in combination with the publicly available tools and data.
The Seven Bridges Platform brings the power, efficiency and security of cloud infrastructure to your bioinformatics analyses. You can share your tools, data and results with your colleagues, and analyses are repeatable and reproducible.
About the CGC
The Cancer Genomics Cloud (CGC) offers similar functionality to the Seven Bridges Platform, but for academic users. It is funded by the National Cancer Institute, and includes The Cancer Genomics Atlas (TGCA) data.
If you do not have a Platform account, you can sign up for a free CGC account with a small amount of computational credit. You can connect your CGC account to Rabix Composer and use that to explore the Platform integration features.
Note that CGC accounts are intended for academic users. If you like what you see, and want to continue using the functionality on the CGC Platform for ongoing commercial purposes, you can contact Seven Bridges Genomics and discuss a paid-for account on the Seven Bridges Platform.
Cavatica also offers similar functionality to the Seven Bridges Platform, but is focussed on data analysis of pediatric cancers and rare diseases. It is accessible by licensed users only.
About CWL formats and versions
The Rabix Composer workflow editor and tool editor allow you to create either CWL v1.0 or CWL sbg:draft-2, in either JSON or YAML format. When choosing the CWL version and format, you should be aware that:
- YAML is generally easier to view and edit if you want to work at the code level.
- The Platform always generates JSON format CWL. You can push a locally-created YAML app to the Platform, but it will be converted to JSON when it is published on the Platform.
- The Platform only partially supports CWL 1.0 apps at present. You can run CWL 1.0 tools and workflows, but not edit them yet, although Platform support for CWL 1.0 is coming soon. If you want to edit your apps in Rabix Composer and on the Platform, you should choose CWL sbg:draft-2 format for now.
- A few features that are supported in the earlier CWL sbg:draft-2 have not been included in CWL 1.0. For example, CWL v1.0 does not allow dynamic expressions in base commands when wrapping tools, whereas CWL sbg:draft-2 does. If you would like to include a dynamic expression as part of a base command in CWL v1.0, you should put the dynamic expression in an argument instead as you can include dynamic expressions in arguments.
- Subject to the restrictions above, both CWL V1.0 and CWL sbg:draft-2 workflows can include a mix of CWL V1.0 and CWL sbg:draft-2 apps, and mixed workflows can be edited in Rabix Composer, executed in Rabix Executor, and executed on the Platform. Note that other CWL executors may not support mixed workflows.
If you are creating new tools or workflows, we recommend that you use CWL V1.0 if possible, as this is the current standard and your tools and workflows will execute reliably on all Platforms.
Read more about the differences between CWL sbg:draft-2 and CWL v1.0 below.
CWL sbg:draft-2 and CWL v1.0 differences