Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Note: This project is no longer under active development

This is a prototype conversion tool from Common Workflow Language (CWL) to Nextflow. Example workflows to demonstrate the conversion are included in the 'sample_data' folder with additional information on how to convert and run each exmaple.

CircleCI status

Supported features

  • Parsing of CWL v1.0 documents.
  • Basic scatter support
  • Support of 'runtime' and limited supported for 'inputs' JS evaluation
  • secondaryFiles
  • Conditional commandline inclusion.
    • In CWL if an input is null it is excluded from the commandline
  • Commandline parsing supports default values and prefixs
  • InitialWorkDirRequirement: can handle files listed both for running locally and deployed to other compute resources.

Unsupported features

  • Parsing of CWL draft-3 or earlier specifications
  • Subworkflows.
    • Currently each workflow step must be an individual CWL commandline tool file
  • JS expressions are currently not implemented
  • Record types
  • outputBinding only supports 'glob'. outputEval and loadContents are unsupported.
    • limited support for outputEval is now functional
  • import statements do not work.
  • JS expressions for File type with checksum, size, format, contents are all not supported at this time

Building cwl2nxf

Note: Make sure to have Java 8 installed.

Clone this repository with the following command:

git clone && cwl2nxf && export CWL2NXF_HOME=$PWD

Then build the project by using the following command:

./gradlew uberjar

Finally you can execute the cwl2nxf application as shown below:

cd sample_data/tutorial_tar_test
java -jar $CWL2NXF_HOME/build/libs/cwl2nxf-*.jar -o wf.cwl wf.yml 

Upon execution file will be created in the base folder. This file will then be runnable using Nextflow:

nextflow run


Compile and run from sources by using the following command:

./gradlew jar 
./ <wf.cwl> <wf.yml>

Debug the execution by using a remote debugger (eg. IntelliJ IDEA) as shown below:

./ -remote-debug <wf.cwl> <wf.yml>

Run the code coverage by using the command:

./gradlew cobertura  

The generated report is available at the following path:

open ./build/reports/cobertura/index.html


A comparison of native CWL graph to the Nextflow generated graph after conversion.

CWL graph:

Alt text

Nextflow graph after conversion:

Alt text


The cwl2nxf is released under the Apache 2.0 License.


Import a CWL workflow specification to Nextflow script (experimental)







No releases published


No packages published