Nextflow Best Practices

Best Practices

Following are some best practices for creating tools. Our intention is that this document will evolve as descriptor languages evolve so feel free to provide suggestions and/or improvements.

In this tutorial, we will be using examples from one-workflow-many-ways.

Authorship Metadata

Dockstore parses metadata and allows it to be used in Dockstore search which helps others find your tool/workflow more easily. “Author” is one of the metadata fields that is searchable:

search-metadata

search-metadata

Additionally, metadata is displayed in the tool/workflow’s “Info” tab. The highlighted sections below will appear once metadata is added to the descriptor:

info-tab-metadata

info-tab-metadata

For all developers, we highly recommend the following minimal metadata for your tools and workflows.

This example includes author and description metadata:

nextflow-workflow/nextflow.config

manifest {
    description = 'Generate some stats on a BAM file'
    author = 'Andrew Duncan'
}

params {
    flagstat_to_json = 'flagstat2json.sh'
    bamqc_pl = 'bamqc/bamqc.pl'
    bamfile = 'bamqc/t/test/neat_5x_EX_hg19_chr21.bam'
    bedfile = 'bamqc/t/test/SureSelect_All_Exon_V4_Covered_Sorted_chr21.bed'
    outjson = 'bamqc/t/test/neat_5x_EX_hg19_chr21.json'
    samtools = 'samtools'
}

This results in the workflow’s Info Tab being populated like:

wdl-info-tab-metadata

wdl-info-tab-metadata

Next Steps

At this juncture, you have completed all of the developer tutorials.

Please continue onwards with specific topics of interest via our Advanced Developer Topics or our End User Topics