diff --git a/modules/icgc-argo-workflows/payload/germlinevariant/main.nf b/modules/icgc-argo-workflows/payload/germlinevariant/main.nf
new file mode 100644
index 0000000..7752022
--- /dev/null
+++ b/modules/icgc-argo-workflows/payload/germlinevariant/main.nf
@@ -0,0 +1,43 @@
+process PAYLOAD_GERMLINEVARIANT {
+ tag "$meta.id"
+ label 'process_single'
+
+
+ conda "bioconda::multiqc=1.13"
+ container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' :
+ 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }"
+
+ input: // input, make update as needed
+ tuple val(meta), path(files_to_upload), path(metadata_analysis)
+ path pipeline_yml
+ val tarball
+
+
+ output: // output, make update as needed
+ tuple val(meta), path("*.payload.json"), path("out/*"), emit: payload_files
+ path "versions.yml", emit: versions
+
+ script:
+ // add and initialize variables here as needed
+ def arg_pipeline_yml = pipeline_yml.name != 'NO_FILE' ? "-p $pipeline_yml" : ''
+ """
+ main.py \
+ -f ${files_to_upload} \
+ -a ${metadata_analysis} \
+ -b "${meta.genomeBuild}" \
+ -w "DNA Seq Germline Variant Workflow" \
+ -r ${workflow.runName} \
+ -s "${workflow.sessionId}" \
+ -v "${workflow.manifest.version}" \
+ -t "${meta.tool}" \
+ -l "${tarball}" \
+ -d "${meta.dataType}" \
+ $arg_pipeline_yml
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ python: \$(python --version | sed 's/Python //g')
+ END_VERSIONS
+ """
+ }
diff --git a/modules/icgc-argo-workflows/payload/germlinevariant/meta.yml b/modules/icgc-argo-workflows/payload/germlinevariant/meta.yml
new file mode 100644
index 0000000..105e61b
--- /dev/null
+++ b/modules/icgc-argo-workflows/payload/germlinevariant/meta.yml
@@ -0,0 +1,60 @@
+name: "payload_germlinevariant"
+## TODO nf-core: Add a description of the module and list keywords
+description: write your description here
+keywords:
+ - sort
+tools:
+ - "payload_germlinevariant":
+ description: "A simple wrapper written in `nextflow` for the payload generation tool to generate ARGO Song payloads containing QC metrics files."
+ licence: ["MIT"]
+
+input:
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing sample information
+ e.g. [ id:'test', single_end:false ]
+
+ - files_to_upload:
+ type: file
+ description: QC metrics files
+
+ - metadata_analysis:
+ type: file
+ description: Song metadata in JSON format
+
+ - genome_annotation:
+ type: string
+ description: genome annotation name
+
+ - genome_build:
+ type: string
+ description: genome build name
+
+ - path pipeline_yml:
+ type: file
+ description: yml file collect from CUSTOM_DUMPSOFTWAREVERSIONS
+ - tool:
+ type: string
+ description: name of tool
+
+output:
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing sample information
+ e.g. [ id:'test', single_end:false ]
+
+ - payload_files:
+ type: file
+ description: Generated payload and QC files with normalized names
+
+ - versions:
+ type: file
+ description: File containing software versions
+ pattern: "versions.yml"
+
+
+
+authors:
+ - "@edsu7"
diff --git a/modules/icgc-argo-workflows/payload/germlinevariant/resources/usr/bin/main.py b/modules/icgc-argo-workflows/payload/germlinevariant/resources/usr/bin/main.py
new file mode 100755
index 0000000..94b1c24
--- /dev/null
+++ b/modules/icgc-argo-workflows/payload/germlinevariant/resources/usr/bin/main.py
@@ -0,0 +1,343 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""
+ Copyright (C) 2021, Ontario Institute for Cancer Research
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+ Authors:
+ Edmund Su
+ Linda Xiang
+"""
+
+import os
+import sys
+import argparse
+import subprocess
+import json
+import re
+import hashlib
+import uuid
+import tarfile
+from datetime import date
+import copy
+from glob import glob
+import yaml
+import csv
+import io
+import shutil
+
+def calculate_size(file_path):
+ return os.stat(file_path).st_size
+
+
+def calculate_md5(file_path):
+ md5 = hashlib.md5()
+ with open(file_path, 'rb') as f:
+ for chunk in iter(lambda: f.read(1024 * 1024), b''):
+ md5.update(chunk)
+ return md5.hexdigest()
+
+def get_files_info(file_to_upload, date_str, analysis_dict, process_indicator,tool,new_dir,pipeline_info,tarball,data_type):
+ file_info = {
+ 'fileSize': calculate_size(file_to_upload),
+ 'fileMd5sum': calculate_md5(file_to_upload),
+ 'fileAccess': 'controlled',
+ 'info': {
+ 'data_category': "Simple Nucleotide Variation",
+ }
+ }
+
+ if tarball=="false":
+ if tool=="deepvariant":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="strelka":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="tiddit":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="haplotypecaller" :
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="manta":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="freebayes":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="mpileup":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tool=="cnvkit":
+ if re.match(r'.*.vcf.gz$', file_to_upload):
+ file_type = 'VCF'
+ file_info.update({'dataType': 'Raw %s Calls' % data_type})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ elif re.match(r'.*.vcf.gz.tbi$', file_to_upload):
+ file_type = 'TBI'
+ file_info.update({'dataType': 'VCF Index'})
+ file_info['info'].update({'analysis_tools': [{key.split(":")[-1]:pipeline_info[key]} for key in pipeline_info.keys()]})
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+ elif tarball=="true":
+ if tool=="cnvkit":
+ file_type = 'TGZ'
+ file_info.update({'dataType': "CNV Supplement"})
+
+ file_info['info']['files_in_tgz']=[]
+ with tarfile.open(file_to_upload, 'r') as tar:
+ for member in tar.getmembers():
+ file_info['info']['files_in_tgz'].append(member.name)
+
+ else:
+ sys.exit('Error: unknown QC metrics file: %s' % file_to_upload)
+
+ #LUCA-KR.DO231106.SA602282.wxs.20210112.gatk-mutect2.somatic.snv.open-filter.vcf.gz.tbi"
+ #"TEST-PR.DO250183.SA610228.wxs.20230501.snv-strelka.gvcf.gz",
+ suffix={
+ "VCF":"vcf.gz",
+ "TBI":"vcf.gz.tbi",
+ "TGZ":"tgz"
+ }
+ # file naming patterns:
+ # pattern: .......
+ # process_indicator: pre-alignment, alignment(aligner), post-alignment(caller)
+ # example: TEST-PR.DO250183.SA610229.rna-seq.20200319.star.genome_aln.cram
+ new_fname = '.'.join([
+ analysis_dict['studyId'],
+ analysis_dict['samples'][0]['donor']['donorId'],
+ analysis_dict['samples'][0]['sampleId'],
+ analysis_dict['experiment']['experimental_strategy'].lower() if analysis_dict['experiment'].get('experimental_strategy') else analysis_dict['experiment']['library_strategy'],
+ date_str,
+ process_indicator,
+ suffix[file_type]
+ ])
+
+ new_dir = 'out'
+ try:
+ os.mkdir(new_dir)
+ except FileExistsError:
+ pass
+
+ dst = os.path.join(os.getcwd(), new_dir, new_fname)
+ os.symlink(os.path.abspath(file_to_upload), dst)
+
+ file_info['fileName'] = new_fname
+ file_info['fileType'] = file_type
+
+ return file_info
+
+def get_basename(metadata):
+ study_id = metadata['studyId']
+ donor_id = metadata['samples'][0]['donor']['donorId']
+ sample_id = metadata['samples'][0]['sampleId']
+
+ if not sample_id or not donor_id or not study_id:
+ sys.exit('Error: missing study/donor/sample ID in the provided metadata')
+
+ return ".".join([study_id, donor_id, sample_id])
+
+def get_sample_info(sample_list):
+ samples = copy.deepcopy(sample_list)
+ for sample in samples:
+ for item in ['info', 'sampleId', 'specimenId', 'donorId', 'studyId']:
+ sample.pop(item, None)
+ sample['specimen'].pop(item, None)
+ sample['donor'].pop(item, None)
+
+ return samples
+
+def prepare_tarball(sampleId, qc_files, tool):
+
+ tgz_dir = 'tarball'
+ try:
+ os.mkdir(tgz_dir)
+ except FileExistsError:
+ pass
+
+ files_to_tar=[]
+ for f in sorted(qc_files):
+ files_to_tar.append(f)
+
+ tarfile_name = f"{tgz_dir}/{sampleId}.{tool}.tgz"
+ with tarfile.open(tarfile_name, "w:gz", dereference=True) as tar:
+ for f in files_to_tar:
+ tar.add(f, arcname=os.path.basename(f))
+
+ return(tarfile_name)
+def main():
+ """
+ Python implementation of tool: payload-gen-qc
+ """
+
+ parser = argparse.ArgumentParser(description='Tool: payload-gen-qc')
+ parser.add_argument("-a", "--metatada-analysis", dest="metadata_analysis", required=True,
+ help="Input metadata analysis", type=str)
+ parser.add_argument("-f", "--files_to_upload", dest="files_to_upload", type=str, required=True,
+ nargs="+", help="All files to upload")
+ parser.add_argument("-g", "--genome_annotation", dest="genome_annotation", default="", help="Genome annotation")
+ parser.add_argument("-b", "--genome_build", dest="genome_build", default="", help="Genome build")
+ parser.add_argument("-w", "--wf-name", dest="wf_name", required=True, help="Workflow name")
+ parser.add_argument("-s", "--wf-session", dest="wf_session", required=True, help="workflow session ID")
+ parser.add_argument("-r", "--wf-run", dest="wf_run", required=True, help="workflow run ID")
+ parser.add_argument("-v", "--wf-version", dest="wf_version", required=True, help="Workflow version")
+ parser.add_argument("-p", "--pipeline_yml", dest="pipeline_yml", required=False, help="Pipeline info in yaml")
+ parser.add_argument("-l", "--tarball", dest="tarball", required=True,default="false", help="Tarball files")
+ parser.add_argument("-t", "--tool", dest="tool", required=True,type=str, help="Tool used for variant calling",
+ choices=['strelka','cnvkit','deepvariant','tiddit','manta','haplotypecaller','freebayes','mpileup'])
+ parser.add_argument("-d", "--data-type", dest="data_type", required=True,type=str, help="Data type for upload",choices=['InDel',"SNV","CNV"])
+
+ args = parser.parse_args()
+
+ with open(args.metadata_analysis, 'r') as f:
+ analysis_dict = json.load(f)
+
+ pipeline_info = {}
+ if args.pipeline_yml:
+ with open(args.pipeline_yml, 'r') as f:
+ pipeline_info = yaml.safe_load(f)
+
+ payload = {
+ 'analysisType': {
+ 'name': 'variant_processing'
+ },
+ "variant_class":"Germline",
+ 'studyId': analysis_dict.get('studyId'),
+ 'workflow': {
+ 'workflow_name': "%s-%s" % (args.wf_name,args.tool),
+ 'workflow_version': args.wf_version,
+ 'session_id': args.wf_session,
+ 'genome_build': args.genome_build,
+ 'run_id': args.wf_run,
+ "workflow_short_name": "%s-%s" % (args.wf_name.replace("DNA Seq","").replace("Workflow","").replace(" ",""),args.tool),
+ 'inputs': [
+ {
+ 'analysis_type': analysis_dict['analysisType']['name'],
+ 'normal_analysis_id': analysis_dict.get('analysisId')
+ }
+ ],
+ },
+ 'files': [],
+ 'experiment': analysis_dict.get('experiment'),
+ 'samples': get_sample_info(analysis_dict.get('samples'))
+ }
+
+ for key in ['platform_model',"sequencing_center","sequencing_date","submitter_sequencing_experiment_id"]:
+ if payload['experiment'].get(key):
+ payload['experiment'].pop(key)
+
+ if args.genome_build:
+ payload['workflow']['genome_build'] = args.genome_build
+ if args.genome_annotation:
+ payload['workflow']['genome_annotation'] = args.genome_annotation
+
+ # pass `info` dict from seq_experiment payload to new payload
+ if 'info' in analysis_dict.keys():
+ payload.pop('info')
+
+ if 'library_strategy' in payload['experiment']:
+ experimental_strategy = payload['experiment'].pop('library_strategy')
+ payload['experiment']['experimental_strategy'] = experimental_strategy
+
+ new_dir = 'out'
+ try:
+ os.mkdir(new_dir)
+ except FileExistsError:
+ pass
+
+ # generate date string
+ date_str = date.today().strftime("%Y%m%d")
+
+
+ # prepare tarball to include all QC files generated by one tool
+ if args.tarball=="true":
+ process_indicator = ".".join([args.tool,"germline",args.tool+"-"+"supplement"])
+ tarball_file=prepare_tarball(analysis_dict['samples'][0]['sampleId'], args.files_to_upload, args.tool)
+ file_info = get_files_info(tarball_file, date_str, analysis_dict, process_indicator,args.tool,new_dir,pipeline_info,args.tarball,args.data_type)
+ payload['files'].append(file_info)
+ elif args.tarball=="false":
+ process_indicator = ".".join([args.tool,"germline",args.data_type.lower()])
+ for f in sorted(args.files_to_upload):
+ file_info = get_files_info(f, date_str, analysis_dict, process_indicator,args.tool,new_dir,pipeline_info,args.tarball,args.data_type)
+ payload['files'].append(file_info)
+
+ with open("%s.%s.payload.json" % (str(uuid.uuid4()), args.wf_name.replace(" ","_")), 'w') as f:
+ f.write(json.dumps(payload, indent=2))
+
+
+
+if __name__ == "__main__":
+ main()
+
diff --git a/tests/config/nextflow.config b/tests/config/nextflow.config
index 4c14e4a..80f3bee 100644
--- a/tests/config/nextflow.config
+++ b/tests/config/nextflow.config
@@ -1,4 +1,5 @@
+
manifest {
homePage = 'https://github.com/icgc-argo-workflows/argo-modules'
description = 'ARGO Generic Modules to be shared across workflows for RDPC processing'
@@ -57,4 +58,15 @@ includeConfig 'modules.config'
includeConfig 'test_data.config'
// Enable locally defined binary scripts for modules
-nextflow.enable.moduleBinaries = true
\ No newline at end of file
+nextflow.enable.moduleBinaries = true
+
+process {
+ withName: 'PAYLOAD_GERMLINEVARIANT' {
+ publishDir = [
+ mode: params.publish_dir_mode,
+ path: { "${params.outdir}/variant_calling/"},
+ pattern: "{*payload.json,out/*vcf.gz,out/*vcf.gz.tbi}",
+ saveAs: { "${meta.tool}/${meta.id}/${it}" }
+ ]
+ }
+}
diff --git a/tests/config/test_data.config b/tests/config/test_data.config
index 2bcd53d..bc9aff4 100644
--- a/tests/config/test_data.config
+++ b/tests/config/test_data.config
@@ -1,6 +1,5 @@
// Base directory for test data in RDPC QA
// Should be ="../data"
-
params {
test_data {
'rdpc_qa' {
@@ -30,4 +29,90 @@ params {
analysis_id_stage = "c62cee87-04ae-4988-acee-8704aec988d4"
}
}
+ profiles {
+ deepvariant_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz","${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="deepvariant"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ freebayes_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz","${params.test_data_base}/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="freebayes"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ haplotypecaller_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz","${params.test_data_base}/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="haplotypecaller"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ manta_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz","${params.test_data_base}/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="manta"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ strelka_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz","${params.test_data_base}/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="strelka"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ tiddit_vcf {
+ metadata_analysis="${params.test_data_base}/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json"
+ files_to_upload=["${params.test_data_base}/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz","${params.test_data_base}/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi"]
+ pipeline_yml="${params.test_data_base}/tiddit/collated_versions.yml"
+ tool="tiddit"
+ study_id = "TEST-PR"
+ id = "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ gender = "Male"
+ experimentalStrategy = "WGS"
+ genomeBuild = "GRCh38_hla_decoy_ebv"
+ tumourNormalDesignation = "Normal"
+ sampleType = "Total DNA"
+ dataType = "SNV"
+ }
+ }
}
diff --git a/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz
new file mode 100644
index 0000000..65cc129
Binary files /dev/null and b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz differ
diff --git a/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi
new file mode 100644
index 0000000..5e4aeb4
Binary files /dev/null and b/tests/data/qa/deepvariant/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi differ
diff --git a/tests/data/qa/deepvariant/collated_versions.yml b/tests/data/qa/deepvariant/collated_versions.yml
new file mode 100644
index 0000000..941acd2
--- /dev/null
+++ b/tests/data/qa/deepvariant/collated_versions.yml
@@ -0,0 +1,14 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_DEEPVARIANT:MERGE_DEEPVARIANT_VCF":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_DEEPVARIANT:DEEPVARIANT":
+ deepvariant: 1.4.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
diff --git a/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz
new file mode 100644
index 0000000..7a5638e
Binary files /dev/null and b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz differ
diff --git a/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi
new file mode 100644
index 0000000..89a3b5e
Binary files /dev/null and b/tests/data/qa/freebayes/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi differ
diff --git a/tests/data/qa/freebayes/collated_versions.yml b/tests/data/qa/freebayes/collated_versions.yml
new file mode 100644
index 0000000..c3e25f0
--- /dev/null
+++ b/tests/data/qa/freebayes/collated_versions.yml
@@ -0,0 +1,24 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:BCFTOOLS_SORT":
+ bcftools: 1.16
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:FREEBAYES":
+ freebayes: 1.3.6
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:MERGE_FREEBAYES":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:BCFTOOLS_SORT":
+ bcftools: 1.16
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:BCFTOOLS_SORT":
+ bcftools: 1.16
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:FREEBAYES":
+ freebayes: 1.3.6
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_FREEBAYES:FREEBAYES":
+ freebayes: 1.3.6
diff --git a/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz
new file mode 100644
index 0000000..2721fbf
Binary files /dev/null and b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz differ
diff --git a/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz.tbi b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz.tbi
new file mode 100644
index 0000000..b782b83
Binary files /dev/null and b/tests/data/qa/haplotypecaller/aaf8d346-c24f-493b-b8d3-46c24f393b92.haplotypecaller.filtered.vcf.gz.tbi differ
diff --git a/tests/data/qa/haplotypecaller/collated_versions.yml b/tests/data/qa/haplotypecaller/collated_versions.yml
new file mode 100644
index 0000000..08b6906
--- /dev/null
+++ b/tests/data/qa/haplotypecaller/collated_versions.yml
@@ -0,0 +1,22 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:FILTERVARIANTTRANCHES":
+ gatk4: 4.4.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:GATK4_HAPLOTYPECALLER":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:MERGE_HAPLOTYPECALLER":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:GATK4_HAPLOTYPECALLER":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:CNNSCOREVARIANTS":
+ gatk4: 4.4.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_GATK_HAPLOTYPECALLER:GATK4_HAPLOTYPECALLER":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
diff --git a/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz
new file mode 100644
index 0000000..156538d
Binary files /dev/null and b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz differ
diff --git a/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi
new file mode 100644
index 0000000..8ab61e0
Binary files /dev/null and b/tests/data/qa/manta/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi differ
diff --git a/tests/data/qa/manta/collated_versions.yml b/tests/data/qa/manta/collated_versions.yml
new file mode 100644
index 0000000..7199083
--- /dev/null
+++ b/tests/data/qa/manta/collated_versions.yml
@@ -0,0 +1,14 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_MANTA:MERGE_MANTA_DIPLOID":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_MANTA:MANTA_GERMLINE":
+ manta: 1.6.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
diff --git a/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz
new file mode 100644
index 0000000..c062997
Binary files /dev/null and b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz differ
diff --git a/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi
new file mode 100644
index 0000000..0c84643
Binary files /dev/null and b/tests/data/qa/strelka/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi differ
diff --git a/tests/data/qa/strelka/collated_versions.yml b/tests/data/qa/strelka/collated_versions.yml
new file mode 100644
index 0000000..b6a800d
--- /dev/null
+++ b/tests/data/qa/strelka/collated_versions.yml
@@ -0,0 +1,18 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_STRELKA:MERGE_STRELKA":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_STRELKA:STRELKA_GERMLINE":
+ strelka: 2.9.10
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_STRELKA:STRELKA_GERMLINE":
+ strelka: 2.9.10
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_STRELKA:STRELKA_GERMLINE":
+ strelka: 2.9.10
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
diff --git a/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
new file mode 100644
index 0000000..dc1d78a
--- /dev/null
+++ b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.analysis.json
@@ -0,0 +1,117 @@
+{
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "studyId" : "TEST-PR",
+ "analysisState" : "PUBLISHED",
+ "analysisType" : {
+ "name" : "sequencing_alignment",
+ "version" : 15
+ },
+ "samples" : [
+ {
+ "sampleId" : "SA610228",
+ "specimenId" : "SP210201",
+ "submitterSampleId" : "COLO-829-BL",
+ "sampleType" : "Total DNA",
+ "matchedNormalSubmitterSampleId" : null,
+ "specimen" : {
+ "specimenId" : "SP210201",
+ "donorId" : "DO250183",
+ "submitterSpecimenId" : "COLO-829-BL",
+ "tumourNormalDesignation" : "Normal",
+ "specimenTissueSource" : "Blood derived",
+ "specimenType" : "Normal"
+ },
+ "donor" : {
+ "donorId" : "DO250183",
+ "studyId" : "TEST-PR",
+ "submitterDonorId" : "COLO-829",
+ "gender" : "Female"
+ }
+ }
+ ],
+ "files" : [
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "581f8e5b-0601-5dde-8ace-78eef3a6db47",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram",
+ "fileType" : "CRAM",
+ "fileMd5sum" : "e0146aa3a5a196e4cb5593f545e95c31",
+ "fileSize" : 76810,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads"
+ },
+ {
+ "info" : {
+ "analysis_tools" : [
+ "BWA-MEM",
+ "biobambam2:bammarkduplicates2"
+ ],
+ "data_category" : "Sequencing Reads"
+ },
+ "objectId" : "57a23de6-044c-555b-8070-bd278d449a63",
+ "studyId" : "TEST-PR",
+ "analysisId" : "aaf8d346-c24f-493b-b8d3-46c24f393b92",
+ "fileName" : "test.paired_end.sorted.cram.crai",
+ "fileType" : "CRAI",
+ "fileMd5sum" : "31ffc1b11f53210e4ac0d55092de0652",
+ "fileSize" : 62,
+ "fileAccess" : "controlled",
+ "dataType" : "Aligned Reads Index"
+ }
+ ],
+ "createdAt" : "2023-04-18T21:30:04.11549",
+ "updatedAt" : "2023-04-18T21:32:47.73069",
+ "firstPublishedAt" : "2023-04-18T21:32:47.728311",
+ "publishedAt" : "2023-04-18T21:32:47.728311",
+ "analysisStateHistory" : [
+ {
+ "initialState" : "UNPUBLISHED",
+ "updatedState" : "PUBLISHED",
+ "updatedAt" : "2023-04-18T21:32:47.728311"
+ }
+ ],
+ "experiment" : {
+ "experimental_strategy" : "WXS",
+ "platform" : "ILLUMINA",
+ "platform_model" : "HiSeq 2000",
+ "sequencing_center" : "EXT",
+ "sequencing_date" : "2014-12-12",
+ "submitter_sequencing_experiment_id" : "TEST_EXP"
+ },
+ "read_group_count" : 1,
+ "read_groups" : [
+ {
+ "file_r1" : "test.paired_end.sorted.cram",
+ "file_r2" : "test.paired_end.sorted.cram",
+ "insert_size" : 298,
+ "is_paired_end" : true,
+ "library_name" : "testN",
+ "platform_unit" : "1",
+ "read_length_r1" : 75,
+ "read_length_r2" : 75,
+ "sample_barcode" : null,
+ "submitter_read_group_id" : "1"
+ }
+ ],
+ "workflow" : {
+ "genome_build" : "GRCh38_hla_decoy_ebv",
+ "inputs" : [
+ {
+ "analysis_type" : "sequencing_experiment",
+ "input_analysis_id" : "08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b"
+ }
+ ],
+ "run_id" : "wes-d4f902992b3d443595d05dbf1490ab9e",
+ "session_id" : "9da55181-2fb8-443e-a82f-b8b8e33d9f2a",
+ "workflow_name" : "DNA Seq Alignment",
+ "workflow_version" : "1.9.0"
+ }
+}
diff --git a/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz
new file mode 100644
index 0000000..f282041
Binary files /dev/null and b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz differ
diff --git a/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi
new file mode 100644
index 0000000..b9e0990
Binary files /dev/null and b/tests/data/qa/tiddit/aaf8d346-c24f-493b-b8d3-46c24f393b92.vcf.gz.tbi differ
diff --git a/tests/data/qa/tiddit/collated_versions.yml b/tests/data/qa/tiddit/collated_versions.yml
new file mode 100644
index 0000000..f51fe64
--- /dev/null
+++ b/tests/data/qa/tiddit/collated_versions.yml
@@ -0,0 +1,14 @@
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_APPLYBQSR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_TIDDIT:TIDDIT_SV":
+ tiddit: 3.3.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:scoreDn":
+ score-client: 5.8.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_SONG_SCORE_DOWNLOAD:songGet":
+ song-client: 5.0.2
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:GATK4_BASERECALIBRATOR":
+ gatk4: 4.3.0.0
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:NORMAL_GATK4_RECALIBRATE:SAMTOOLS_INDEX":
+ samtools: 1.16.1
+"NFCORE_ARGOGERMLINE:ARGOGERMLINE:MATCHED_GERMLINE_VARIANTS:GERMLINE_VARIANT_TIDDIT:TABIX_BGZIPTABIX":
+ tabix: 1.12
diff --git a/tests/modules/icgc-argo-workflows/payload/germlinevariant/main.nf b/tests/modules/icgc-argo-workflows/payload/germlinevariant/main.nf
new file mode 100644
index 0000000..fcce522
--- /dev/null
+++ b/tests/modules/icgc-argo-workflows/payload/germlinevariant/main.nf
@@ -0,0 +1,34 @@
+#!/usr/bin/env nextflow
+
+nextflow.enable.dsl = 2
+
+include { PAYLOAD_GERMLINEVARIANT } from '../../../../../modules/icgc-argo-workflows/payload/germlinevariant/main.nf'
+
+workflow test_payload_germlinevariant {
+ analysis_ch=Channel.of(file(params.metadata_analysis))
+ files_ch=Channel.fromPath(params.files_to_upload).map{it->file(it)}
+ pipeline_ch=Channel.of(file(params.pipeline_yml))
+
+
+ ch_payload=analysis_ch.combine(files_ch.collect().toList())
+ .map {analysis_json,files ->
+ [
+ [
+ id : params.id,
+ experimentalStrategy : params.experimentalStrategy,
+ genomeBuild : params.genomeBuild,
+ tumourNormalDesignation : params.tumourNormalDesignation,
+ sampleType : params.sampleType,
+ gender : params.gender,
+ study_id : params.study_id,
+ tool : params.tool,
+ dataType : params.dataType
+ ],
+ files, analysis_json]
+ }
+ PAYLOAD_GERMLINEVARIANT(
+ ch_payload,
+ pipeline_ch,
+ false
+ )
+}
diff --git a/tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config b/tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config
new file mode 100644
index 0000000..e60f059
--- /dev/null
+++ b/tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config
@@ -0,0 +1,6 @@
+manifest {
+ name = 'Germline variant calls'
+ mainScript = 'main.nf'
+ nextflowVersion = '!>=22.10.1'
+ version = '1.0dev'
+}
\ No newline at end of file
diff --git a/tests/modules/icgc-argo-workflows/payload/germlinevariant/test.yml b/tests/modules/icgc-argo-workflows/payload/germlinevariant/test.yml
new file mode 100644
index 0000000..6f0ac2a
--- /dev/null
+++ b/tests/modules/icgc-argo-workflows/payload/germlinevariant/test.yml
@@ -0,0 +1,55 @@
+## TODO nf-core: Please run the following command to build this file:
+# nf-core modules create-test-yml payload/germlinevariant
+- name: "payload germlinevariant haplotypecaller"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,haplotypecaller_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ - path: "output/variant_calling/haplotypecaller/*.json"
+ - path: "output/variant_calling/haplotypecaller/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.haplotypecaller.germline.snv.vcf.gz"
+ - path: "output/variant_calling/haplotypecaller/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.haplotypecaller.germline.snv.vcf.gz.tbi"
+- name: "payload germlinevariant freebayes"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,freebayes_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ files:
+ - path: "output/variant_calling/freebayes/*.json"
+ - path: "output/variant_calling/freebayes/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.freebayes.germline.snv.vcf.gz"
+ - path: "output/variant_calling/freebayes/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.freebayes.germline.snv.vcf.gz.tbi"
+- name: "payload germlinevariant strelka"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,strelka_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ files:
+ - path: "output/variant_calling/strelka/*.json"
+ - path: "output/variant_calling/strelka/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.strelka.germline.snv.vcf.gz"
+ - path: "output/variant_calling/strelka/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.strelka.germline.snv.vcf.gz.tbi"
+- name: "payload germlinevariant manta"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,manta_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ files:
+ - path: "output/variant_calling/manta/*.json"
+ - path: "output/variant_calling/manta/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.manta.germline.snv.vcf.gz"
+ - path: "output/variant_calling/manta/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.manta.germline.snv.vcf.gz.tbi"
+- name: "payload germlinevariant deepvariant"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,deepvariant_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ files:
+ - path: "output/variant_calling/deepvariant/*.json"
+ - path: "output/variant_calling/deepvariant/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.deepvariant.germline.snv.vcf.gz"
+ - path: "output/variant_calling/deepvariant/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.deepvariant.germline.snv.vcf.gz.tbi"
+- name: "payload germlinevariant tiddit"
+ command: nextflow run ./tests/modules/icgc-argo-workflows/payload/germlinevariant -entry test_payload_germlinevariant -c ./tests/config/nextflow.config -c ./tests/modules/icgc-argo-workflows/payload/germlinevariant/nextflow.config -profile docker,tiddit_vcf
+ tags:
+ - "payload"
+ - "payload/germlinevariant"
+ files:
+ - path: "output/variant_calling/tiddit/*.json"
+ - path: "output/variant_calling/tiddit/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.tiddit.germline.snv.vcf.gz"
+ - path: "output/variant_calling/tiddit/08e7c5b1-b3af-4e20-a7c5-b1b3af2e206b/out/*.tiddit.germline.snv.vcf.gz.tbi"
\ No newline at end of file