All Projects → common-workflow-lab → wdl2cwl

common-workflow-lab / wdl2cwl

Licence: Apache-2.0 license
[Experimental] Workflow Definition Language (WDL) to CWL

Programming Languages

python
139335 projects - #7 most used programming language
wdl
31 projects

Projects that are alternatives of or similar to wdl2cwl

tibanna
Tibanna helps you run your genomic pipelines on Amazon cloud (AWS). It is used by the 4DN DCIC (4D Nucleome Data Coordination and Integration Center) to process data. Tibanna supports CWL/WDL (w/ docker), Snakemake (w/ conda) and custom Docker/shell command.
Stars: ✭ 61 (+134.62%)
Mutual labels:  cwl, wdl-workflow
hotsub
Command line tool to run batch jobs concurrently with ETL framework on AWS or other cloud computing resources
Stars: ✭ 29 (+11.54%)
Mutual labels:  cwl, wdl-workflow
workflows
Bioinformatics workflows developed for and used on the St. Jude Cloud project.
Stars: ✭ 16 (-38.46%)
Mutual labels:  cwl, wdl-workflow
cwlexec
A new open source tool to run CWL workflows on LSF
Stars: ✭ 34 (+30.77%)
Mutual labels:  cwl
user guide
The CWL v1.0 user guide
Stars: ✭ 20 (-23.08%)
Mutual labels:  cwl
reana
REANA: Reusable research data analysis platform
Stars: ✭ 86 (+230.77%)
Mutual labels:  cwl
benten
A language server for Common Workflow Language
Stars: ✭ 50 (+92.31%)
Mutual labels:  cwl
dxCompiler
WDL and CWL compiler for the DNAnexus platform
Stars: ✭ 15 (-42.31%)
Mutual labels:  cwl
cwl-ts
Typescript data model for Common Workflow Language
Stars: ✭ 42 (+61.54%)
Mutual labels:  cwl
VIRTUS
A bioinformatics pipeline for viral transcriptome detection and quantification considering splicing.
Stars: ✭ 28 (+7.69%)
Mutual labels:  cwl
emg-viral-pipeline
VIRify: detection of phages and eukaryotic viruses from metagenomic and metatranscriptomic assemblies
Stars: ✭ 38 (+46.15%)
Mutual labels:  cwl
ipython2cwl
IPython2CWL is a tool for converting IPython Jupyter Notebooks to CWL Command Line Tools by simply providing typing annotation.
Stars: ✭ 15 (-42.31%)
Mutual labels:  cwl
scriptcwl
Create cwl workflows by writing a simple Python script
Stars: ✭ 40 (+53.85%)
Mutual labels:  cwl
GGR-cwl
CWL tools and workflows for GGR
Stars: ✭ 20 (-23.08%)
Mutual labels:  cwl
janis
[Alpha] Janis: an open source tool to machine generate type-safe CWL and WDL workflows
Stars: ✭ 35 (+34.62%)
Mutual labels:  cwl
tool-registry-service-schemas
APIs for discovering genomics tools, their metadata and their containers
Stars: ✭ 27 (+3.85%)
Mutual labels:  cwl
dockstore
Our VM/Docker sharing infrastructure and management component
Stars: ✭ 99 (+280.77%)
Mutual labels:  cwl

Replaced by https://github.com/common-workflow-lab/wdl-cwl-translator

Converter from the Broad Institute's Workflow Definition Language (WDL) to the Common Workflow Language.

Generates a set of CWL files from a WDL workflow which can be executed with a CWL implementation.

Installation

git clone https://github.com/common-workflow-language/wdl2cwl.git
cd wdl2cwl
python setup.py install

PyPi package coming soon

Usage:

Pass a wdl workflow or a directory with wdl files to wdl2cwl

wdl2cwl <workflow.wdl> | <directory> [options]

By default, a directory with a name of the wdl file will be created and all generated CWL files will be placed in that directory.

Additional options

'-d', '--directory' - Target directory to place CWL files

'-q', '--quiet' - Do not print generated tools to stdout

--no-folder - Do not create a separate folder for each CWL toolset (convenient whilst bulk conversion of standalone tools, not workflows)

Notes on autoconverting

Not every WDL workflow can be automatically mapped to CWL. Sometimes some additional tweaks after CWL generation are required:

Secondary files

If any of the input parameters include files that must be processed together, they should be mentioned in secondaryFiles field:

secondaryFiles
- .fai
- ^.dict

Runtime (WDL)

docker [] -> DockerRequirement, only one image

resources -> ResourceRequirement, megabytes -> mebibytes string

Outputs

If the output {...} section is omitted in WDL, then the CWL workflow includes all outputs from all calls in its final output.

WDL standard library functions

Not all WDL functions are covered.

Some of WDL functions can be effectively replaced by a CWL expression. For instance, if you need to get the basename of a file, sub - effectively replaced by inputs.path.basename

read_X() functions:

if an input parameter is read from a file by a function like read_tsv or read_csv, it must start with a backslash. wdl2cwl has to transform file inputs in plain strings to a CWL File object. wdl2cwl only recognizes a filepath in a .txt file if it starts with a backslash. Moreover, all strings starting with '/' will be treated as filepathes.

Resource and docker requirements:

Resource requirements in WDL are set in megabytes vs mebibytes in CWL

References:

CWL spec https://github.com/common-workflow-language/common-workflow-language

WDL spec https://github.com/broadinstitute/wdl

Python WDL parser https://github.com/broadinstitute/pywdl

cwl2wdl (convert the other way) https://github.com/adamstruck/cwl2wdl

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].