Viash 0.5.14

Argument groups can now be defined in the Viash config

New Release
Author

Viash Team

Published

June 30, 2022

What’s new?

Argument groups allow for grouping arguments together by function or category, making the --help output a lot more clear for components with a lot of arguments.

Full changelog

NEW FUNCTIONALITY

  • Functionality: Allow specifying argument groups. Example:

    functionality:
      ...
      argument_groups:
        - name: First group
          arguments: [foo, bar]
          description: Description
  • Addition of the viash_nxf_schema component for converting a Viash config (for a workflow) into a nextflow schema file.

  • NextflowVdsl3Platform: Use --param_list to initialise a Nextflow channel with multiple parameter sets. Possible formats are csv, json, yaml, or simply a yaml_blob. A csv should have column names which correspond to the different arguments of this pipeline. A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. A yaml blob can also be passed directly as a parameter. Inside the Nextflow pipeline code, params.param_list can also be used to directly a list of parameter sets. When passing a csv, json or yaml, relative path names are relativized to the location of the parameter file.

    Examples:

    nextflow run "target/foo/bar/main.nf" --param_list '[{"id": "foo", "input": "/path/to/bar"}]'
    nextflow run "target/foo/bar/main.nf" --param_list "params.csv" --reference "/path/to/ref"

MAJOR CHANGES

  • NextflowVdsl3Platform: The functionality is now slurped from a json instead of manually taking care of the formatting in Groovy.

  • NextflowVdsl3Platform: The --help is auto-generated from the config.

MINOR CHANGES

  • NextflowVdsl3Platform: Allow both --publish_dir and --publishDir when auto.publish = true.

  • NextflowVdsl3Platform: Allow passing parameters with multiplicity > 1 from Nextflow CLI.

  • Main: Added viash --cli_export which outputs the internal cli construction information to console. This is to be used to automate populating the documentation website.

  • viash ns: Display success and failure summary statistics, printed to stderr.

  • DataObject: .alternatives is now a OneOrMore[String] instead of List[String], meaning you can now specify { type: string, name: "--foo", alternatives: "-f" } instead of { type: string, name: "--foo", alternatives: [ "-f" ] }

  • BashWrapper: Added metadata field meta_executable, which is a shorthand notation for meta_executable="$meta_resources_dir/$meta_functionality_name"

INTERNAL CHANGES

  • Arguments: Internal naming of functionality.arguments is changed from DataObject to Arguments. Change is also applied to child classes, e.g. StringObject -> StringArgument.

  • Script: Allow more control over where injected code ends up.

  • Restructure type system to allow type-specific arguments.

BUG FIXES

  • DockerPlatform: Change org.opencontainers.image.version annotation to functionality.version when set. Additionally fixed retrieving the git tag possibly returning fatal: No names found, cannot describe anything. or similar.

  • viash config inject: Fix config inject when .functionality.inputs or .functionality.outputs is used.

  • BashWrapper: Don’t add bc as dependency. Only perform integer/float min/max checks when bc is available, otherwise ignore.

  • DockerPlatform: Fix inputs & outputs arguments being present twice.

  • viash ns test: Silently skip Nextflow platforms as these don’t support tests and will always fail.

  • Testbenches: Better capture expected error messages while running testbenches. Having these show on the console could be confusing.

  • NextflowVdsl3Platform: Fix issue when running multiple VDSL3 modules concurrently on the same channel.