|
| 1 | +--- |
| 2 | +title: 'wdl2cwl: A Python tool for converting WDL workflow files to CWL workflows' |
| 3 | +tags: |
| 4 | + - Python |
| 5 | + - workflow |
| 6 | + - workflow description language |
| 7 | + - common workflow language |
| 8 | + - Language |
| 9 | +date: August 2022 |
| 10 | +bibliography: paper.bib |
| 11 | +--- |
| 12 | + |
| 13 | +# Summary |
| 14 | + |
| 15 | +Computational workflows are used in data analysis, enabling innovation and |
| 16 | +decision-making in various fields of science. There are several competing workflow description languages, |
| 17 | +WDL (Workflow description Language) and CWL (Common Workflow Languaage) are two examples |
| 18 | +of popularly used systems. WDL is a way to specify data processiing workflows with |
| 19 | +a human-readable and writeable syntax. WDL makes it straightforward to define |
| 20 | +complex analysis tasks, chain them together in workflows, and parallelize their execution [@wdl]. |
| 21 | +CWL is a way to describe command line tools and connect |
| 22 | +the together to create workflows. Because CWL is a specification and not a |
| 23 | +specific piece of software, tools and workflows described using CWL are portable acroos |
| 24 | +a variety of platforms that support the CWL standard [@cwl:2021]. |
| 25 | + |
| 26 | +It can be hard learning and adapting to the various knowledge requirements and |
| 27 | +specifications of a workflow language. This complication makes it hard for analysts and scientists |
| 28 | +share their work and collaborate efficiently with others who are use to working with different language. |
| 29 | + |
| 30 | +``wdl2cwl`` is a Python package for converting workflow files written in WDL to workflows in CWL. Python |
| 31 | +allows flexibility and the ability to import other Python packages. |
| 32 | +The ``wdl2cwl`` package uses the ``miniwdl`` package [@miniwdl], an open-source, Python package, |
| 33 | +developer toolkit and local runner for running wdl files. The ``wdl2cwl`` package was |
| 34 | +designed to provide a class-based and developer-friendly interface for extracting |
| 35 | +the various sections of a wdl file, dynamically create the various objects |
| 36 | +needed to create a valid cwl file ( this is done using the ``cwl.utils`` package [@cwl.utils], |
| 37 | +an open-source, Python package for parsing cwl files) and performing error checking |
| 38 | +for valid imports, input declarations, expressions etc. |
| 39 | + |
| 40 | +``wdl2cwl`` was designed to be used by both cwl and wdl professionals and researchers, as well |
| 41 | +students in courses on bioinformatics and data analytics. It has already been |
| 42 | +used to convert a number of wdl workflows. This tool makes it easier |
| 43 | +to translate your favourite WDL workflows into CWL. This could be because of platform |
| 44 | +dependency issues (like trying to reproduce a WDL workflow on a platform that only allows CWL), |
| 45 | +or it could be to eliminate the need for an anylyst who undersnd and writes CWL to learn WDL language |
| 46 | +in other to quickly use a WDL workflow or it could be to create a more widely available workflow |
| 47 | +that can be used by users of either languages and so much more. |
| 48 | + |
| 49 | +# Acknowledgements |
| 50 | + |
| 51 | +We acknowledge the work by tthe developers of miniwdl, cwl, wdl |
| 52 | + |
| 53 | +# References |
0 commit comments