Resolvers & Publish Keys

Name important outputs and provide a small function to find each one.

In the template

publish:
  fastq_dir:
    resolver: resolvers.fastq:main
  multiqc_report:
    resolver: resolvers.reports:find
    args: {pattern: "**/multiqc_report.html"}

Resolver signature

# resolvers/fastq.py
def main(ctx):
    # Return an absolute path to the FASTQ directory
    return f"{ctx.project_dir}/{ctx.project.name}/{ctx.template.id}/fastq"

Result in project.yaml

templates:
  - id: hello
    published:
      fastq_dir: /abs/250903_TEST/hello/fastq

Naming rules

  • Use short, stable snake_case keys: fastq_dir, bam_dir, vcf, multiqc_report.
  • Document the type/shape (dir, file, URL, table) in your template README.