snakecharm icon indicating copy to clipboard operation
snakecharm copied to clipboard

Inspection: validate that rule defines all required input/output/params/etc keys for wrapper

Open iromeo opened this issue 6 years ago • 2 comments

Inspection: validate that rule defines all required input/output/params/etc keys for wrapper

Wrappers contain meta.yaml and it has information about input, output, params, etc args. We could validate that our rule defines all these params. E.g.

# tool/meta.yaml
arguments:
   input:
        fq: Smth about input fastq file
        index: Smth about index
    output:
        bam: Smth about bam
        report: Smath about report
        stats: Some optional stats
             - optional
     params:
        extra: Some description
            - optional

Than for rule:

rule foo:
   input: 
        fq = ".."
   output:
       bam = ".."
   params:
       eextra = ".."
   wrapper: '../../../tool'

We could inform user, that in input section required argument index is missing, in output argument report is missing, in params section eextra is unexpected element.

iromeo avatar Aug 23 '19 16:08 iromeo

See https://bitbucket.org/snakemake/snakemake/issues/1261/wrapper-arguments-validation-using

iromeo avatar Aug 23 '19 17:08 iromeo

Seems most popular format is smth like

name: epic
authors:
  - Endre Bakken Stovner
description: |
  Find broad enriched domains in ChIP-Seq data with epic
input:
  - treatment: chip .bed(.gz/.bz) files
  - background: input .bed(.gz/.bz) files
output:
  - enriched_regions: main output file with enriched peaks
  - bed: (optional) contains much of the same info as enriched_regions but in a bed format, suitable for viewing in the UCSC genome browser or downstream use with bedtools
  - matrix: (optional) a gzipped matrix of read counts
params:
  - extra: additional parameters
  - log: (optional) file to write the log output to
notes: |
  * All/any of the different bigwig options must be given as extra parameters

So we could add some simple inspection, which warns about missing properties from documentation or even show documentation popup for input/output/.. sections fetching some info from meta.yaml

iromeo avatar Aug 23 '19 17:08 iromeo