From e89d620b7359230de952e0f1ef6905a998167e3b Mon Sep 17 00:00:00 2001 From: tdayris Date: Wed, 21 Feb 2024 13:47:31 +0100 Subject: [PATCH] multiqc update --- .github/workflows/main.yaml | 14 +-- CHANGELOG.md | 1 + README.md | 48 +++++----- workflow/rules/common.smk | 92 ++----------------- .../rules/fair_bowtie2_mapping_pipeline.smk | 2 +- workflow/rules/multiqc.smk | 88 ++++++++++++++++-- 6 files changed, 123 insertions(+), 122 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 1f21c34..35ed721 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -49,10 +49,10 @@ jobs: with: directory: .test snakefile: workflow/Snakefile - args: "--use-conda --use-singularity --show-failed-logs --cores 2 --conda-cleanup-pkgs cache" - # - name: Test report - # uses: snakemake/snakemake-github-action@v1.25.1 - # with: - # directory: .test - # snakefile: workflow/Snakefile - # args: "--use-conda --use-singularity --cores 2 --report report.zip" \ No newline at end of file + args: "--software-deployment-method conda --show-failed-logs --cores 2 --conda-cleanup-pkgs cache" + - name: Test report + uses: snakemake/snakemake-github-action@v1.25.1 + with: + directory: .test + snakefile: workflow/Snakefile + args: "--software-deployment-method conda --cores 2 --report report.zip" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 343f3f2..d538dff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * Relies on fair_genome_indexer version 3.1.4 * Relies on fair_bowtie2_mapping version 3.1.0 * Relies on fair_fastqc_multiqc version 2.0.3 +* MultiQC now holds only one `{species}.{build}.{release}` ## Fixes: diff --git a/README.md b/README.md index ed11301..800a055 100644 --- a/README.md +++ b/README.md @@ -26,16 +26,16 @@ The tools used in this pipeline are described [here](https://github.com/tdayris/ | Step | Commands | | -------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| Download DNA Fasta from Ensembl | [ensembl-sequence](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/reference/ensembl-sequence.html) | +| Download DNA Fasta from Ensembl | [ensembl-sequence](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/reference/ensembl-sequence.html) | | Remove non-canonical chromosomes | [pyfaidx](https://github.com/mdshw5/pyfaidx) | -| Index DNA sequence | [samtools](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/samtools/faidx.html) | -| Creatse sequence Dictionary | [picard](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/picard/createsequencedictionary.html) | +| Index DNA sequence | [samtools](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/samtools/faidx.html) | +| Creatse sequence Dictionary | [picard](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/picard/createsequencedictionary.html) | #### Get genome annotation (GTF) | Step | Commands | | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| Download GTF annotation | [ensembl-annotation](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/reference/ensembl-annotation.html) | +| Download GTF annotation | [ensembl-annotation](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/reference/ensembl-annotation.html) | | Fix format errors | [Agat](https://agat.readthedocs.io/en/latest/tools/agat_convert_sp_gff2gtf.html) | | Remove non-canonical chromosomes, based on above DNA Fasta | [Agat](https://agat.readthedocs.io/en/latest/tools/agat_sq_filter_feature_from_fasta.html) | | Remove `` Transcript support levels | [Agat](https://agat.readthedocs.io/en/latest/tools/agat_sp_filter_feature_by_attribute_value.html) | @@ -44,9 +44,9 @@ The tools used in this pipeline are described [here](https://github.com/tdayris/ | Step | Commands | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Download dbSNP variants | [ensembl-variation](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/reference/ensembl-variation.html) | -| Filter non-canonical chromosomes | [pyfaidx](https://github.com/mdshw5/pyfaidx) + [BCFTools](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/bcftools/filter.html) | -| Index variants | [tabix](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/tabix/index.html) | +| Download dbSNP variants | [ensembl-variation](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/reference/ensembl-variation.html) | +| Filter non-canonical chromosomes | [pyfaidx](https://github.com/mdshw5/pyfaidx) + [BCFTools](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/bcftools/filter.html) | +| Index variants | [tabix](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/tabix/index.html) | ### Bowtie2 Mapping with [`fair_bowtie2_mapping`](https://github.com/tdayris/fair_bowtie2_mapping/tree/main) @@ -54,22 +54,22 @@ The tools used in this pipeline are described [here](https://github.com/tdayris/ | Step | Meta-Wrapper | Wrapper | | ---------------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | -| Bowtie2-build | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [bowtie2-build](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/bowtie2/build.html) | +| Bowtie2-build | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [bowtie2-build](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/bowtie2/build.html) | | Fastp | | [fastp](https://snakemake-wrappers.readthedocs.io/en/stable/wrappers/fastp.html) | -| Bowtie2-align | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [bowtie2-align](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/bowtie2/align.html) | -| Sambamba sort | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [sambamba-sort](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/sambamba/sort.html) | -| Sambamba-view | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [sambamba-view](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/sambamba/view.html) | -| Sambamba-markdup | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [sambamba-markdup](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/sambamba/markdup.html) | -| Sambamba-index | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/bowtie2_sambamba.html) | [sambamba-index](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/sambamba/index.html) | +| Bowtie2-align | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [bowtie2-align](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/bowtie2/align.html) | +| Sambamba sort | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [sambamba-sort](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/sambamba/sort.html) | +| Sambamba-view | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [sambamba-view](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/sambamba/view.html) | +| Sambamba-markdup | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [sambamba-markdup](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/sambamba/markdup.html) | +| Sambamba-index | [bowtie2-sambamba meta-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/bowtie2_sambamba.html) | [sambamba-index](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/sambamba/index.html) | #### Quality controls | Step | Wrapper | | -------- | -------------------------------------------------------------------------------------------------------------------------------- | | Picard | [picard-collectmultiplemetrics](https://snakemake-wrappers.readthedocs.io/en/stable/wrappers/picard/collectmultiplemetrics.html) | -| Samtools | [samtools-stats](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/samtools/stats.html) | -| FastQC | [fastqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/fastqc.html) | -| MultiQC | [multiqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/multiqc.html) | +| Samtools | [samtools-stats](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/samtools/stats.html) | +| FastQC | [fastqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/fastqc.html) | +| MultiQC | [multiqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/multiqc.html) | ### Call variants with Mutect2 @@ -78,17 +78,17 @@ The tools used in this pipeline are described [here](https://github.com/tdayris/ | Step | Meta-Wrapper | Wrapper | | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| Per-sample annotation | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [add-or-replace-groups](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/picard/addorreplacereadgroups.html) | -| Mutect2 calling | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [mutect2](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/mutect.html) | -| Infer contaminations | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [get-pileup-summaries](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/getpileupsummaries.html) | -| Estimate corss-sample contamination | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [calculate-contamination](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/calculatecontamination.html) | -| Search for sequencing artifact bias | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [learn-read-orientation-model](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/learnreadorientationmodel.html) | -| Filtering calls | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/meta-wrappers/gatk_mutect2_calling.html) | [filter-mutect-calls](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/filtermutectcalls.html) | +| Per-sample annotation | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [add-or-replace-groups](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/picard/addorreplacereadgroups.html) | +| Mutect2 calling | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [mutect2](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/mutect.html) | +| Infer contaminations | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [get-pileup-summaries](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/getpileupsummaries.html) | +| Estimate corss-sample contamination | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [calculate-contamination](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/calculatecontamination.html) | +| Search for sequencing artifact bias | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [learn-read-orientation-model](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/learnreadorientationmodel.html) | +| Filtering calls | [GATK short variant calling](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/meta-wrappers/gatk_mutect2_calling.html) | [filter-mutect-calls](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/filtermutectcalls.html) | #### Quality controls | Step | Wrapper | | ------------------ | -------------------------------------------------------------------------------------------------- | -| Variant Evaluation | [variant-eval](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/gatk/varianteval.html) | -| MultiQC | [multiqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.3/wrappers/multiqc.html) | \ No newline at end of file +| Variant Evaluation | [variant-eval](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/gatk/varianteval.html) | +| MultiQC | [multiqc-wrapper](https://snakemake-wrappers.readthedocs.io/en/v3.3.6/wrappers/multiqc.html) | \ No newline at end of file diff --git a/workflow/rules/common.smk b/workflow/rules/common.smk index e17615b..edaa05f 100644 --- a/workflow/rules/common.smk +++ b/workflow/rules/common.smk @@ -342,85 +342,6 @@ def get_gatk_germline_varianteval_input( return gatk_germline_varianteval_input -def get_fair_gatk_mutect_germline_multiqc_report_input( - wildcards: snakemake.io.Wildcards, - sample: pandas.DataFrame = samples, -) -> dict[str, str | list[str]]: - """ - Return expected input files for Multiqc peak calling report, - according to user-input, and snakemake-wrapper requirements - - Parameters: - wildcards (snakemake.io.Wildcards): Required for snakemake unpacking function - samples (pandas.DataFrame) : Describe sample names and related paths/genome - - Return (dict[str, Union[str, list[str]]]): - Input files dict, as required by MultiQC's snakemake-wrapper - """ - results: dict[str, list[str]] = { - "picard_qc": [], - "fastp_pair_ended": collect( - "tmp/fair_bowtie2_mapping/fastp_trimming_pair_ended/{sample.sample_id}.fastp.json", - sample=lookup(query="downstream_file == downstream_file", within=samples), - ), - "fastp_single_ended": collect( - "tmp/fair_bowtie2_mapping/fastp_trimming_single_ended/{sample.sample_id}.fastp.json", - sample=lookup(query="downstream_file != downstream_file", within=samples), - ), - "fastqc_pair_ended": collect( - "results/QC/report_pe/{sample.sample_id}.{stream}_fastqc.zip", - sample=lookup( - query="downstream_file == downstream_file", - within=samples, - ), - stream=stream_list, - ), - "fastqc_single_ended": collect( - "results/QC/report_pe/{sample.sample_id}_fastqc.zip", - sample=lookup(query="downstream_file != downstream_file", within=samples), - ), - "bowtie2": [], - "samtools": [], - "bcftools": [], - } - datatype: str = "dna" - sample_iterator = zip( - samples.sample_id, - samples.species, - samples.build, - samples.release, - ) - for sample, species, build, release in sample_iterator: - results["picard_qc"] += multiext( - f"tmp/fair_bowtie2_mapping/picard_create_multiple_metrics/{species}.{build}.{release}.{datatype}/stats/{sample}", - ".alignment_summary_metrics", - ".insert_size_metrics", - ".insert_size_histogram.pdf", - ".base_distribution_by_cycle_metrics", - ".base_distribution_by_cycle.pdf", - ".gc_bias.detail_metrics", - ".gc_bias.summary_metrics", - ".gc_bias.pdf", - ) - - results["bowtie2"].append( - f"logs/fair_bowtie2_mapping/bowtie2_alignment/{species}.{build}.{release}.{datatype}/{sample}.log" - ) - - results["samtools"].append( - f"tmp/fair_bowtie2_mapping/samtools_stats/{species}.{build}.{release}.{datatype}/{sample}.txt" - ) - - results["bcftools"].append( - f"tmp/fair_gatk_mutect_germline/bcftools_mutect2_stats/{species}.{build}.{release}.{datatype}/{sample}.stats.txt" - ) - results["bcftools"].append( - f"logs/fair_gatk_mutect_germline/bcftools_mutect2_stats/{species}.{build}.{release}.{datatype}/{sample}.log" - ) - - return results - - def get_gatk_mutect_germline_targets( wildcards: snakemake.io.Wildcards, samples: pandas.DataFrame = samples, @@ -439,7 +360,6 @@ def get_gatk_mutect_germline_targets( results: dict[str, list[str]] = { "multiqc": [ "results/QC/MultiQC_FastQC.html", - "results/QC/MultiQC_GatkGermlineCalling.html", ], "vcf": [], "vcf_tbi": [], @@ -453,11 +373,19 @@ def get_gatk_mutect_germline_targets( datatype: str = "dna" for sample, species, build, release in sample_iterator: - results["vcf"] = ( + results["multiqc"].append( + f"results/{species}.{build}.{release}.dna/QC/MultiQC_Mapping.html" + ) + results["multiqc"].append( + f"results/{species}.{build}.{release}.dna/QC/MultiQC_GatkGermlineCalling.html" + ) + results["vcf"].append( f"results/{species}.{build}.{release}.{datatype}/VariantCalling/Germline/{sample}.vcf.gz" ) - results["vc_tbi"] = ( + results["vcf_tbi"].append( f"results/{species}.{build}.{release}.{datatype}/VariantCalling/Germline/{sample}.vcf.gz.tbi" ) + results["multiqc"] = list(set(results["multiqc"])) + return results diff --git a/workflow/rules/fair_bowtie2_mapping_pipeline.smk b/workflow/rules/fair_bowtie2_mapping_pipeline.smk index 14d267b..d8b1b43 100644 --- a/workflow/rules/fair_bowtie2_mapping_pipeline.smk +++ b/workflow/rules/fair_bowtie2_mapping_pipeline.smk @@ -1,6 +1,6 @@ module fair_bowtie2_mapping: snakefile: - github("tdayris/fair_bowtie2_mapping", path="workflow/Snakefile", tag="3.1.0") + github("tdayris/fair_bowtie2_mapping", path="workflow/Snakefile", tag="3.1.1") config: { **config, diff --git a/workflow/rules/multiqc.smk b/workflow/rules/multiqc.smk index e2a5eb8..c6d2c99 100644 --- a/workflow/rules/multiqc.smk +++ b/workflow/rules/multiqc.smk @@ -1,26 +1,98 @@ rule fair_gatk_mutect_germline_multiqc_report: input: - unpack(get_fair_gatk_mutect_germline_multiqc_report_input), + picard_qc=collect( + "tmp/fair_bowtie2_mapping/picard_create_multiple_metrics/{sample.species}.{sample.build}.{sample.release}.dna/stats/{sample.sample_id}{ext}", + sample=lookup( + query="species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ext=[ + ".alignment_summary_metrics", + ".insert_size_metrics", + ".insert_size_histogram.pdf", + ".base_distribution_by_cycle_metrics", + ".base_distribution_by_cycle.pdf", + ".gc_bias.detail_metrics", + ".gc_bias.summary_metrics", + ".gc_bias.pdf", + ], + ), + fastp_pair_ended=collect( + "tmp/fair_bowtie2_mapping/fastp_trimming_pair_ended/{sample.sample_id}.fastp.json", + sample=lookup( + query="downstream_file == downstream_file & species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + fastp_single_ended=collect( + "tmp/fair_bowtie2_mapping/fastp_trimming_single_ended/{sample.sample_id}.fastp.json", + sample=lookup( + query="downstream_file != downstream_file & species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + fastqc_pair_ended=collect( + "results/QC/report_pe/{sample.sample_id}.{stream}_fastqc.zip", + sample=lookup( + query="downstream_file == downstream_file & species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + stream=stream_list, + ), + fastqc_single_ended=collect( + "results/QC/report_pe/{sample.sample_id}_fastqc.zip", + sample=lookup( + query="downstream_file != downstream_file & species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + bowtie2=collect( + "logs/fair_bowtie2_mapping/bowtie2_alignment/{sample.species}.{sample.build}.{sample.release}.dna/{sample.sample_id}.log", + sample=lookup( + query="species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + samtools=collect( + "tmp/fair_bowtie2_mapping/samtools_stats/{sample.species}.{sample.build}.{sample.release}.dna/{sample.sample_id}.txt", + sample=lookup( + query="species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + bcftools_log=collect( + "logs/fair_gatk_mutect_germline/bcftools_mutect2_stats/{sample.species}.{sample.build}.{sample.release}.dna/{sample.sample_id}.log", + sample=lookup( + query="species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), + bcftools_stats=collect( + "tmp/fair_gatk_mutect_germline/bcftools_mutect2_stats/{sample.species}.{sample.build}.{sample.release}.dna/{sample.sample_id}.stats.txt", + sample=lookup( + query="species == '{species}' & release == '{release}' & build == '{build}'", + within=samples, + ), + ), output: report( - "results/QC/MultiQC_GatkGermlineCalling.html", + "results/{species}.{build}.{release}.dna/QC/MultiQC_GatkGermlineCalling.html", caption="../report/multiqc.rst", category="Quality Controls", subcategory="General", labels={ "report": "html", "step": "GatkGermlineCalling", + "organirm": "{species}.{build}.{release}", }, ), - "results/QC/MultiQC_GatkGermlineCalling_data.zip", + "results/{species}.{build}.{release}.dna/QC/MultiQC_GatkGermlineCalling_data.zip", params: - extra=config.get("params", {}).get( - "multiqc", "--zip-data-dir --verbose --no-megaqc-upload --no-ansi --force" - ), + extra=lookup(dpath="params/multiqc", within=config), use_input_files_only=True, log: - "logs/fair_gatk_mutect_germline/multiqc_report.log", + "logs/fair_gatk_mutect_germline/multiqc_report/{species}.{build}.{release}.log", benchmark: - "benchmark/fair_gatk_mutect_germline/multiqc_report.tsv" + "benchmark/fair_gatk_mutect_germline/multiqc_report/{species}.{build}.{release}.tsv" wrapper: "v3.3.6/bio/multiqc"