CLI Wrappers

blue-cwl wrappers are helper command line interfaces for the various stages of the workflow. The most common categories of wrappers are:

  • staging

  • registering

  • tools

Staging Wrappers

Staging CLI wrappers convert NEXUS resources to local files or directories, which can be then used downstream. They decouple comunication with a database and tool execution that most of times works with local files or directories.

Although there is no limitation on how many staging tasks a workflow may have, usually one is created that stages all NEXUS resources that are needed in the workflow.

Note

Staging tasks need NEXUS_BASE, NEXUS_ORG, NEXUS_PROJ, NEXUS_TOKEN in their environment in order to talk to NEXUS and download the resources.

Registering Wrappers

Registering CLI wrappers do the opposite of staging ones: they convert local files or directories into NEXUS resources.

Although there is no limitation on how many registering tasks a workflow may have, usually one is created that registers the final resource that is assigned to the workflow main output.

Note

Registering tasks need NEXUS_BASE, NEXUS_ORG, NEXUS_PROJ, NEXUS_TOKEN in their environment in order to talk to NEXUS and download the resources.

Tool Wrappers

Tool wrappers are CLIs that wrap a python tool so that it can readily be used in a workflow. They are rarely needed, however sometimes it is more convenient to create a tailored CLI for a workflow task, rather than using the tool’s existing one.

Warning

Wrapping tools comes at a price: the tool needs to be imported in python and by extension become a direct dependency of blue-cwl. It is therefore preferred to avoid increasing the dependencies if the tool can be invoked using Environments.