From 0499ebfc3e8c57d87653fd1ebf738cf467078e8a Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 21 Jun 2023 12:14:45 +0000 Subject: [PATCH 1/6] Modifications for import and displaying Sentieon-Dedup metrics as custom content in MultiQC report --- assets/multiqc_config.yml | 31 +++++++++++++++++++ conf/modules/sentieon_dedup.config | 2 +- modules.json | 3 +- modules/nf-core/sentieon/dedup/main.nf | 4 +++ .../sentieon/dedup/sentieon-dedup.diff | 23 ++++++++++++++ subworkflows/local/bam_sentieon_dedup/main.nf | 1 + 6 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 modules/nf-core/sentieon/dedup/sentieon-dedup.diff diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 942f95e5bb..c1396cc4f8 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -66,7 +66,38 @@ sample_names_replace: "\\.[0-9]{4}$": ".md" # should match ".0001" but only at the end of strings for module Markduplicates/EstimateLibraryComplexity module: picard +custom_data: + dedup_metrics: + id: 'dedup_metrics' + section_name: 'Sentieon Dedup Metrics' + plot_type: 'table' + pconfig: + id: 'dedup_metrics' + namespace: 'Sentieon Dedup Metrics' + headers: + LIBRARY: + description: 'LIBRARY' + UNPAIRED_READS_EXAMINED: + description: 'UNPAIRED_READS_EXAMINE' + READ_PAIRS_EXAMINED: + description: 'READ_PAIRS_EXAMINED' + SECONDARY_OR_SUPPLEMENTARY_RDS: + description: 'SECONDARY_OR_SUPPLEMENTARY_RDS' + UNMAPPED_READS: + description: 'UNMAPPED_READS' + UNPAIRED_READ_DUPLICATES: + description: 'UNPAIRED_READ_DUPLICATES' + READ_PAIR_DUPLICATES: + description: 'READ_PAIR_DUPLICATES' + READ_PAIR_OPTICAL_DUPLICATES: + description: 'READ_PAIR_OPTICAL_DUPLICATES' + PERCENT_DUPLICATION: + description: 'PERCENT_DUPLICATION' + ESTIMATED_LIBRARY_SIZE: + description: 'ESTIMATED_LIBRARY_SIZE' sp: snpeff: contents: "SnpEff_version" max_filesize: 5000000 + dedup_metrics: + fn: "*.metrics.multiqc.tsv" diff --git a/conf/modules/sentieon_dedup.config b/conf/modules/sentieon_dedup.config index 891c2acd67..6f5531cb4b 100644 --- a/conf/modules/sentieon_dedup.config +++ b/conf/modules/sentieon_dedup.config @@ -28,7 +28,7 @@ process { [ mode: params.publish_dir_mode, path: { "${params.outdir}/reports/" }, - pattern: "*metrics", + pattern: "*{metrics,metrics.multiqc.tsv}", saveAs: { !(params.skip_tools && params.skip_tools.split(',').contains('sentieon_dedup_report')) ? "sentieon_dedup/${meta.id}/${it}" : null} ] ] diff --git a/modules.json b/modules.json index 755c99b08f..37940fef6c 100644 --- a/modules.json +++ b/modules.json @@ -384,7 +384,8 @@ "sentieon/dedup": { "branch": "master", "git_sha": "2cb2012b268b3502ac74463e510e76be99e2cdbf", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/sentieon/dedup/sentieon-dedup.diff" }, "sentieon/gvcftyper": { "branch": "master", diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index def50e2483..7f6d1ce736 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -24,6 +24,7 @@ process SENTIEON_DEDUP { tuple val(meta), path("*.bai"), emit: bai tuple val(meta), path("*.score"), emit: score tuple val(meta), path("*.metrics"), emit: metrics + tuple val(meta), path("*.metrics.multiqc.tsv"), emit: metrics_multiqc_tsv path "versions.yml", emit: versions when: @@ -60,6 +61,9 @@ process SENTIEON_DEDUP { sentieon driver $args $input_list -r ${fasta} --algo LocusCollector $args2 --fun score_info ${prefix}.score sentieon driver $args3 -t $task.cpus $input_list -r ${fasta} --algo Dedup $args4 --score_info ${prefix}.score --metrics ${metrics} ${prefix}${suffix} + # This following tsv-file is produced in order to get a proper tsv-file with Dedup-metrics for importing in MultiQC as "custom content". + # It should be removed once MultiQC has a module for displaying Dedup-metrics. + head -3 ${metrics} > ${metrics}.multiqc.tsv cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/sentieon/dedup/sentieon-dedup.diff b/modules/nf-core/sentieon/dedup/sentieon-dedup.diff new file mode 100644 index 0000000000..ad0d49daa8 --- /dev/null +++ b/modules/nf-core/sentieon/dedup/sentieon-dedup.diff @@ -0,0 +1,23 @@ +Changes in module 'nf-core/sentieon/dedup' +--- modules/nf-core/sentieon/dedup/main.nf ++++ modules/nf-core/sentieon/dedup/main.nf +@@ -24,6 +24,7 @@ + tuple val(meta), path("*.bai"), emit: bai + tuple val(meta), path("*.score"), emit: score + tuple val(meta), path("*.metrics"), emit: metrics ++ tuple val(meta), path("*.metrics.multiqc.tsv"), emit: metrics_multiqc_tsv + path "versions.yml", emit: versions + + when: +@@ -60,6 +61,9 @@ + + sentieon driver $args $input_list -r ${fasta} --algo LocusCollector $args2 --fun score_info ${prefix}.score + sentieon driver $args3 -t $task.cpus $input_list -r ${fasta} --algo Dedup $args4 --score_info ${prefix}.score --metrics ${metrics} ${prefix}${suffix} ++ # This following tsv-file is produced in order to get a proper tsv-file with Dedup-metrics for importing in MultiQC as "custom content". ++ # It should be removed once MultiQC has a module for displaying Dedup-metrics. ++ head -3 ${metrics} > ${metrics}.multiqc.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + +************************************************************ diff --git a/subworkflows/local/bam_sentieon_dedup/main.nf b/subworkflows/local/bam_sentieon_dedup/main.nf index 72d7f0408d..bb0d8b5d5f 100644 --- a/subworkflows/local/bam_sentieon_dedup/main.nf +++ b/subworkflows/local/bam_sentieon_dedup/main.nf @@ -34,6 +34,7 @@ workflow BAM_SENTIEON_DEDUP { // Gather all reports generated reports = reports.mix(SENTIEON_DEDUP.out.metrics) + reports = reports.mix(SENTIEON_DEDUP.out.metrics_multiqc_tsv) reports = reports.mix(SENTIEON_DEDUP.out.score) reports = reports.mix(CRAM_QC_MOSDEPTH_SAMTOOLS.out.reports) From 73e215e96c52a7ba99a4fe8ebee829cff32bf61f Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 21 Jun 2023 12:34:23 +0000 Subject: [PATCH 2/6] Adding test for Sentieon-Dedup metrics in multiQC-report --- tests/test_sentieon_dedup_from_bam.yml | 2 ++ tests/test_sentieon_dedup_from_cram.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/test_sentieon_dedup_from_bam.yml b/tests/test_sentieon_dedup_from_bam.yml index ba1ce42a50..f23d9f00aa 100644 --- a/tests/test_sentieon_dedup_from_bam.yml +++ b/tests/test_sentieon_dedup_from_bam.yml @@ -13,6 +13,8 @@ - path: results/csv/recalibrated.csv md5sum: 1888a924bc70bd80165a96ad641e22d6 - path: results/multiqc + - path: results/multiqc/multiqc_report.html + contains: ["Sentieon Dedup Metrics", "PERCENT_DUPLICATION", "ESTIMATED_LIBRARY_SIZE"] - path: results/preprocessing/sentieon_dedup/test/test.md.cram # binary changes md5sums on reruns - path: results/preprocessing/sentieon_dedup/test/test.md.cram.crai diff --git a/tests/test_sentieon_dedup_from_cram.yml b/tests/test_sentieon_dedup_from_cram.yml index 3d85f83630..7a576cbc61 100644 --- a/tests/test_sentieon_dedup_from_cram.yml +++ b/tests/test_sentieon_dedup_from_cram.yml @@ -13,6 +13,8 @@ - path: results/csv/recalibrated.csv md5sum: 1888a924bc70bd80165a96ad641e22d6 - path: results/multiqc + - path: results/multiqc/multiqc_report.html + contains: ["Sentieon Dedup Metrics", "PERCENT_DUPLICATION", "ESTIMATED_LIBRARY_SIZE"] - path: results/preprocessing/sentieon_dedup/test/test.md.cram # binary changes md5sums on reruns - path: results/preprocessing/sentieon_dedup/test/test.md.cram.crai From 19cf71e6f8ce2baef648eceb537252925e395f19 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 21 Jun 2023 12:47:27 +0000 Subject: [PATCH 3/6] prettier --- assets/multiqc_config.yml | 56 +++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index c1396cc4f8..1eff688fcf 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -67,34 +67,34 @@ sample_names_replace: module: picard custom_data: - dedup_metrics: - id: 'dedup_metrics' - section_name: 'Sentieon Dedup Metrics' - plot_type: 'table' - pconfig: - id: 'dedup_metrics' - namespace: 'Sentieon Dedup Metrics' - headers: - LIBRARY: - description: 'LIBRARY' - UNPAIRED_READS_EXAMINED: - description: 'UNPAIRED_READS_EXAMINE' - READ_PAIRS_EXAMINED: - description: 'READ_PAIRS_EXAMINED' - SECONDARY_OR_SUPPLEMENTARY_RDS: - description: 'SECONDARY_OR_SUPPLEMENTARY_RDS' - UNMAPPED_READS: - description: 'UNMAPPED_READS' - UNPAIRED_READ_DUPLICATES: - description: 'UNPAIRED_READ_DUPLICATES' - READ_PAIR_DUPLICATES: - description: 'READ_PAIR_DUPLICATES' - READ_PAIR_OPTICAL_DUPLICATES: - description: 'READ_PAIR_OPTICAL_DUPLICATES' - PERCENT_DUPLICATION: - description: 'PERCENT_DUPLICATION' - ESTIMATED_LIBRARY_SIZE: - description: 'ESTIMATED_LIBRARY_SIZE' + dedup_metrics: + id: "dedup_metrics" + section_name: "Sentieon Dedup Metrics" + plot_type: "table" + pconfig: + id: "dedup_metrics" + namespace: "Sentieon Dedup Metrics" + headers: + LIBRARY: + description: "LIBRARY" + UNPAIRED_READS_EXAMINED: + description: "UNPAIRED_READS_EXAMINE" + READ_PAIRS_EXAMINED: + description: "READ_PAIRS_EXAMINED" + SECONDARY_OR_SUPPLEMENTARY_RDS: + description: "SECONDARY_OR_SUPPLEMENTARY_RDS" + UNMAPPED_READS: + description: "UNMAPPED_READS" + UNPAIRED_READ_DUPLICATES: + description: "UNPAIRED_READ_DUPLICATES" + READ_PAIR_DUPLICATES: + description: "READ_PAIR_DUPLICATES" + READ_PAIR_OPTICAL_DUPLICATES: + description: "READ_PAIR_OPTICAL_DUPLICATES" + PERCENT_DUPLICATION: + description: "PERCENT_DUPLICATION" + ESTIMATED_LIBRARY_SIZE: + description: "ESTIMATED_LIBRARY_SIZE" sp: snpeff: contents: "SnpEff_version" From 0981511551aa02bcce1d62438cef8801ef9341e8 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 21 Jun 2023 15:12:38 +0000 Subject: [PATCH 4/6] updating sentieon dedup module --- modules.json | 2 +- modules/nf-core/sentieon/dedup/meta.yml | 6 ++++- .../sentieon/dedup/sentieon-dedup.diff | 23 ------------------- 3 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 modules/nf-core/sentieon/dedup/sentieon-dedup.diff diff --git a/modules.json b/modules.json index 37940fef6c..8b1d96755b 100644 --- a/modules.json +++ b/modules.json @@ -383,7 +383,7 @@ }, "sentieon/dedup": { "branch": "master", - "git_sha": "2cb2012b268b3502ac74463e510e76be99e2cdbf", + "git_sha": "e311732e4d878d7e47872226bef5f8630dc81675", "installed_by": ["modules"], "patch": "modules/nf-core/sentieon/dedup/sentieon-dedup.diff" }, diff --git a/modules/nf-core/sentieon/dedup/meta.yml b/modules/nf-core/sentieon/dedup/meta.yml index 37ca9c67d5..6813d663bc 100644 --- a/modules/nf-core/sentieon/dedup/meta.yml +++ b/modules/nf-core/sentieon/dedup/meta.yml @@ -64,8 +64,12 @@ output: pattern: "*.score" - metrics: type: file - description: Output file containing the metrics data from Dedup. + description: Output file containing Dedup metrics incl. histogram data. pattern: "*.metrics" + - metrics_multiqc_tsv: + type: file + description: Output tsv-file containing Dedup metrics excl. histogram data. + pattern: "*.metrics.multiqc.tsv" - versions: type: file description: File containing software versions diff --git a/modules/nf-core/sentieon/dedup/sentieon-dedup.diff b/modules/nf-core/sentieon/dedup/sentieon-dedup.diff deleted file mode 100644 index ad0d49daa8..0000000000 --- a/modules/nf-core/sentieon/dedup/sentieon-dedup.diff +++ /dev/null @@ -1,23 +0,0 @@ -Changes in module 'nf-core/sentieon/dedup' ---- modules/nf-core/sentieon/dedup/main.nf -+++ modules/nf-core/sentieon/dedup/main.nf -@@ -24,6 +24,7 @@ - tuple val(meta), path("*.bai"), emit: bai - tuple val(meta), path("*.score"), emit: score - tuple val(meta), path("*.metrics"), emit: metrics -+ tuple val(meta), path("*.metrics.multiqc.tsv"), emit: metrics_multiqc_tsv - path "versions.yml", emit: versions - - when: -@@ -60,6 +61,9 @@ - - sentieon driver $args $input_list -r ${fasta} --algo LocusCollector $args2 --fun score_info ${prefix}.score - sentieon driver $args3 -t $task.cpus $input_list -r ${fasta} --algo Dedup $args4 --score_info ${prefix}.score --metrics ${metrics} ${prefix}${suffix} -+ # This following tsv-file is produced in order to get a proper tsv-file with Dedup-metrics for importing in MultiQC as "custom content". -+ # It should be removed once MultiQC has a module for displaying Dedup-metrics. -+ head -3 ${metrics} > ${metrics}.multiqc.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - -************************************************************ From b3352acebef565651bf97fc874cfb635ac73fc64 Mon Sep 17 00:00:00 2001 From: Anders Sune Pedersen <37172585+asp8200@users.noreply.github.com> Date: Wed, 21 Jun 2023 17:59:13 +0200 Subject: [PATCH 5/6] Update modules.json Co-authored-by: Maxime U Garcia --- modules.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules.json b/modules.json index 8b1d96755b..1b32dd3ce7 100644 --- a/modules.json +++ b/modules.json @@ -384,8 +384,8 @@ "sentieon/dedup": { "branch": "master", "git_sha": "e311732e4d878d7e47872226bef5f8630dc81675", - "installed_by": ["modules"], - "patch": "modules/nf-core/sentieon/dedup/sentieon-dedup.diff" + "installed_by": ["modules"] + }, "sentieon/gvcftyper": { "branch": "master", From aa1ce9adf2ead3010d54082e9ece7b5201ec36bf Mon Sep 17 00:00:00 2001 From: Anders Sune Pedersen <37172585+asp8200@users.noreply.github.com> Date: Wed, 21 Jun 2023 18:16:04 +0200 Subject: [PATCH 6/6] Update modules.json Co-authored-by: Maxime U Garcia --- modules.json | 1 - 1 file changed, 1 deletion(-) diff --git a/modules.json b/modules.json index 1b32dd3ce7..a865ad0df3 100644 --- a/modules.json +++ b/modules.json @@ -385,7 +385,6 @@ "branch": "master", "git_sha": "e311732e4d878d7e47872226bef5f8630dc81675", "installed_by": ["modules"] - }, "sentieon/gvcftyper": { "branch": "master",