Nextflow VDSL3
Nextflow is a highly popular and widely-used workflow manager in computational biology, featuring outstanding portability, reproducibility and scalability. However, while Nextflow’s advantages are impressive, developing a Nextflow pipeline can be challenging, requiring significant domain knowledge and verbose code that is labour-intensive. Fortunately, Viash provides a solution to the barriers of Nextflow pipeline development.
Viash can help developers wrap their code into a state-of-the-art Nextflow script called a VDSL3 module. As we will demonstrate in the remainder of this guide, VDSL3 is effectively a separate DSL layer on top of Nextflow enabled by Viash, hence it is called Viash + Nextflow DSL 3, or VDSL3 for short. VDSL3’s benefits extend beyond Nextflow pipeline development, including reusability, test-driven development, separation of concerns, and continuous testing.
You can use Viash to speed up or replace your pipeline development processes in the following steps:
- Use Viash to generate VDSL3 modules
- Run a module as a standaline pipeline
- Import a VDSL3 module
- Create a Nextflow workflow using one or more modules
Improvements of VDSL3 modules over standard Nextflow modules
- No need to write any Nextflow Groovy code, just your script and the Viash config.
- VDSL3 module are also standalone pipelines.
- Help documentation is automatically generated.
- Standardized interface for passing parameter lists.
- Automatically uses the Docker platform’s container.