From 714672a09fe27900166a4d81a9f8d5ad58d8e215 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 11:46:11 +0100 Subject: [PATCH 1/7] update all modules and subworkflows --- modules.json | 28 ++--- modules/nf-core/bowtie2/build/main.nf | 11 +- modules/nf-core/bowtie2/build/meta.yml | 30 +++-- modules/nf-core/bwamem2/index/environment.yml | 6 +- modules/nf-core/bwamem2/index/main.nf | 18 +-- modules/nf-core/bwamem2/index/meta.yml | 43 +++++-- modules/nf-core/bwamem2/mem/main.nf | 14 +-- modules/nf-core/bwamem2/mem/meta.yml | 45 ++++--- modules/nf-core/fastqc/main.nf | 18 +-- modules/nf-core/fastqc/meta.yml | 51 +++++++- .../fastqscreen-buildfromindex.diff | 76 +++++------- .../fastqscreen/buildfromindex/main.nf | 20 +--- .../fastqscreen/fastqscreen-fastqscreen.diff | 32 ++--- .../nf-core/fastqscreen/fastqscreen/main.nf | 10 +- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 43 +++---- modules/nf-core/multiqc/meta.yml | 45 +++++-- .../nf-core/picard/collecthsmetrics/main.nf | 12 +- .../nf-core/picard/collecthsmetrics/meta.yml | 27 ++++- .../picard/collectmultiplemetrics/main.nf | 10 +- .../picard/collectmultiplemetrics/meta.yml | 28 ++++- modules/nf-core/samtools/faidx/main.nf | 16 +-- modules/nf-core/samtools/faidx/meta.yml | 38 +++--- modules/nf-core/samtools/index/main.nf | 12 +- modules/nf-core/samtools/index/meta.yml | 29 +++-- modules/nf-core/seqtk/sample/main.nf | 12 +- modules/nf-core/seqtk/sample/meta.yml | 30 +++-- subworkflows/local/prepare_genome/main.nf | 7 +- subworkflows/local/qc_bam/main.nf | 2 - .../nf-core/utils_nfschema_plugin/main.nf | 3 +- tests/MiSeq.nf.test.snap | 38 +++--- tests/NovaSeq6000.nf.test.snap | 110 ++++++++++++++---- tests/PromethION.nf.test.snap | 7 +- workflows/seqinspector.nf | 5 - 34 files changed, 487 insertions(+), 391 deletions(-) diff --git a/modules.json b/modules.json index e8a3d49f..1e9c679a 100644 --- a/modules.json +++ b/modules.json @@ -7,50 +7,50 @@ "nf-core": { "bowtie2/build": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "447f7bc0fa41dfc2400c8cad4c0291880dc060cf", "installed_by": ["modules"] }, "bwamem2/index": { "branch": "master", - "git_sha": "b2902040b9cb9b7b32b62400f1c024a709bd4812", + "git_sha": "5dd46a36fca68d6ad1a6b22ec47adc8c6863717d", "installed_by": ["modules"] }, "bwamem2/mem": { "branch": "master", - "git_sha": "d86336f3e7ae0d5f76c67b0859409769cfeb2af2", + "git_sha": "5dd46a36fca68d6ad1a6b22ec47adc8c6863717d", "installed_by": ["modules"], "patch": "modules/nf-core/bwamem2/mem/bwamem2-mem.diff" }, "fastqc": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "3009f27c4e4b6e99da4eeebe82799e13924a4a1f", "installed_by": ["modules"] }, "fastqscreen/buildfromindex": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "5e748ff2b0f990949081c9e49792622eb3fe9ee9", "installed_by": ["modules"], "patch": "modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff" }, "fastqscreen/fastqscreen": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "5e748ff2b0f990949081c9e49792622eb3fe9ee9", "installed_by": ["modules"], "patch": "modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff" }, "multiqc": { "branch": "master", - "git_sha": "82a79183037a403ad1b6714e5dbcff25500efaf6", + "git_sha": "575e1a4b51a9bad7a8cd1316a88fb85684ef7c7b", "installed_by": ["modules"] }, "picard/collecthsmetrics": { "branch": "master", - "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "git_sha": "976ed20e328a92cb24ab6c63a8983ed31bf48469", "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", - "git_sha": "df124e87c74d8b40285199f8cc20151f5aa57255", + "git_sha": "74ec93d00bef147da3fb1f2262e8d31c14108f88", "installed_by": ["modules"] }, "picard/createsequencedictionary": { @@ -60,12 +60,12 @@ }, "samtools/faidx": { "branch": "master", - "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "git_sha": "b2e78932ef01165fd85829513eaca29eff8e640a", "installed_by": ["modules"] }, "samtools/index": { "branch": "master", - "git_sha": "c8be52dba1166c678e74cda9c3a3c221635c8bb1", + "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", "installed_by": ["modules"] }, "seqfu/stats": { @@ -75,7 +75,7 @@ }, "seqtk/sample": { "branch": "master", - "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "git_sha": "a46713779030a5f508117080cbf4b693dd4c6e33", "installed_by": ["modules"] } } @@ -89,12 +89,12 @@ }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "271e7fc14eb1320364416d996fb077421f3faed2", + "git_sha": "65f5e638d901a51534c68fd5c1c19e8112fb4df1", "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", - "git_sha": "4b406a74dc0449c0401ed87d5bfff4252fd277fd", + "git_sha": "fdc08b8b1ae74f56686ce21f7ea11ad11990ce57", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf index fb7effec..1be06ac8 100644 --- a/modules/nf-core/bowtie2/build/main.nf +++ b/modules/nf-core/bowtie2/build/main.nf @@ -12,7 +12,7 @@ process BOWTIE2_BUILD { output: tuple val(meta), path('bowtie2') , emit: index - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('bowtie2'), eval('bowtie2 --version 2>&1 | head -1 | sed "s/^.*bowtie2-align-s version //; s/ .*//"'), emit: versions_bowtie2, topic: versions when: task.ext.when == null || task.ext.when @@ -22,10 +22,6 @@ process BOWTIE2_BUILD { """ mkdir bowtie2 bowtie2-build $args --threads $task.cpus $fasta bowtie2/${fasta.baseName} - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') - END_VERSIONS """ stub: @@ -33,10 +29,5 @@ process BOWTIE2_BUILD { mkdir bowtie2 touch bowtie2/${fasta.baseName}.{1..4}.bt2 touch bowtie2/${fasta.baseName}.rev.{1,2}.bt2 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml index 3e83ecb4..3a9d31cf 100644 --- a/modules/nf-core/bowtie2/build/meta.yml +++ b/modules/nf-core/bowtie2/build/meta.yml @@ -34,17 +34,33 @@ output: Groovy Map containing reference information e.g. [ id:'test', single_end:false ] - bowtie2: - type: file + type: directory description: Bowtie2 genome index files pattern: "*.bt2" ontologies: [] + versions_bowtie2: + - - ${task.process}: + type: string + description: The name of the process + - bowtie2: + type: string + description: The name of the tool + - 'bowtie2 --version 2>&1 | head -1 | sed "s/^.*bowtie2-align-s version //; s/ .*//"': + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - bowtie2: + type: string + description: The name of the tool + - 'bowtie2 --version 2>&1 | head -1 | sed "s/^.*bowtie2-align-s version //; s/ .*//"': + type: eval + description: The expression to obtain the version of the tool + authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/bwamem2/index/environment.yml b/modules/nf-core/bwamem2/index/environment.yml index c069e281..f3637444 100644 --- a/modules/nf-core/bwamem2/index/environment.yml +++ b/modules/nf-core/bwamem2/index/environment.yml @@ -6,8 +6,8 @@ channels: dependencies: # renovate: datasource=conda depName=bioconda/bwa-mem2 - - bwa-mem2=2.2.1 + - bwa-mem2=2.3 # renovate: datasource=conda depName=bioconda/htslib - - htslib=1.21 + - htslib=1.22.1 # renovate: datasource=conda depName=bioconda/samtools - - samtools=1.21 + - samtools=1.22.1 diff --git a/modules/nf-core/bwamem2/index/main.nf b/modules/nf-core/bwamem2/index/main.nf index 529c66e8..cb2c4bb2 100644 --- a/modules/nf-core/bwamem2/index/main.nf +++ b/modules/nf-core/bwamem2/index/main.nf @@ -2,19 +2,19 @@ process BWAMEM2_INDEX { tag "$fasta" // NOTE Requires 28N GB memory where N is the size of the reference sequence, floor of 280M // source: https://github.com/bwa-mem2/bwa-mem2/issues/9 - memory { (280.MB * Math.ceil(fasta.size() / 10000000)) * task.attempt } + memory { 280.MB * Math.ceil(fasta.size() / 10000000) * task.attempt } conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9a/9ac054213e67b3c9308e409b459080bbe438f8fd6c646c351bc42887f35a42e7/data' : - 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:e1f420694f8e42bd' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e0/e05ce34b46ad42810eb29f74e4e304c0cb592b2ca15572929ed8bbaee58faf01/data' : + 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:db98f81f55b64113' }" input: tuple val(meta), path(fasta) output: tuple val(meta), path("bwamem2"), emit: index - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('bwamem2'), eval('bwa-mem2 version | grep -o -E "[0-9]+(\\.[0-9]+)+"'), emit: versions_bwamem2, topic: versions when: task.ext.when == null || task.ext.when @@ -29,11 +29,6 @@ process BWAMEM2_INDEX { $args \\ -p bwamem2/${prefix} \\ $fasta - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') - END_VERSIONS """ stub: @@ -46,10 +41,5 @@ process BWAMEM2_INDEX { touch bwamem2/${prefix}.pac touch bwamem2/${prefix}.amb touch bwamem2/${prefix}.bwt.2bit.64 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') - END_VERSIONS """ } diff --git a/modules/nf-core/bwamem2/index/meta.yml b/modules/nf-core/bwamem2/index/meta.yml index b2aa45fb..12074860 100644 --- a/modules/nf-core/bwamem2/index/meta.yml +++ b/modules/nf-core/bwamem2/index/meta.yml @@ -12,7 +12,8 @@ tools: a large reference genome, such as the human genome. homepage: https://github.com/bwa-mem2/bwa-mem2 documentation: https://github.com/bwa-mem2/bwa-mem2#usage - licence: ["MIT"] + licence: + - "MIT" identifier: "biotools:bwa-mem2" input: - - meta: @@ -24,8 +25,8 @@ input: type: file description: Input genome fasta file ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1929" # FASTA + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1929" output: index: - - meta: @@ -34,18 +35,38 @@ output: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - bwamem2: - type: file + type: string description: BWA genome index files pattern: "*.{0123,amb,ann,bwt.2bit.64,pac}" ontologies: - - edam: "http://edamontology.org/data_3210" # Genome index + - edam: "http://edamontology.org/data_3210" + versions_bwamem2: + - - ${task.process}: + type: string + description: The name of the process + - bwamem2: + type: string + description: BWA genome index files + pattern: "*.{0123,amb,ann,bwt.2bit.64,pac}" + ontologies: + - edam: "http://edamontology.org/data_3210" + - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - bwamem2: + type: string + description: BWA genome index files + pattern: "*.{0123,amb,ann,bwt.2bit.64,pac}" + ontologies: + - edam: "http://edamontology.org/data_3210" + - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": + type: eval + description: The expression to obtain the version of the tool authors: - "@maxulysse" maintainers: diff --git a/modules/nf-core/bwamem2/mem/main.nf b/modules/nf-core/bwamem2/mem/main.nf index e12a68b0..d9d7c63a 100644 --- a/modules/nf-core/bwamem2/mem/main.nf +++ b/modules/nf-core/bwamem2/mem/main.nf @@ -19,7 +19,7 @@ process BWAMEM2_MEM { tuple val(meta), path("*.cram") , emit: cram, optional:true tuple val(meta), path("*.crai") , emit: crai, optional:true tuple val(meta), path("*.csi") , emit: csi , optional:true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('bwamem2'), eval('bwa-mem2 version | grep -o -E "[0-9]+(\\.[0-9]+)+"'), emit: versions_bwamem2, topic: versions when: task.ext.when == null || task.ext.when @@ -46,12 +46,6 @@ process BWAMEM2_MEM { \$INDEX \\ $reads \\ | samtools $samtools_command $args2 -@ $task.cpus ${reference} -o ${prefix}.${extension} - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ stub: @@ -73,11 +67,5 @@ process BWAMEM2_MEM { """ touch ${prefix}.${extension} ${create_index} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/bwamem2/mem/meta.yml b/modules/nf-core/bwamem2/mem/meta.yml index 6c7d1728..bcfd006d 100644 --- a/modules/nf-core/bwamem2/mem/meta.yml +++ b/modules/nf-core/bwamem2/mem/meta.yml @@ -16,7 +16,8 @@ tools: homepage: https://github.com/bwa-mem2/bwa-mem2 documentation: http://www.htslib.org/doc/samtools.html arxiv: arXiv:1303.3997 - licence: ["MIT"] + licence: + - "MIT" identifier: "biotools:bwa-mem2" input: - - meta: @@ -30,8 +31,8 @@ input: List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1930" # FASTQ + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1930" - - meta2: type: map description: | @@ -42,7 +43,7 @@ input: description: BWA genome index files pattern: "Directory containing BWA index *.{0132,amb,ann,bwt.2bit.64,pac}" ontologies: - - edam: "http://edamontology.org/data_3210" # Genome index + - edam: "http://edamontology.org/data_3210" - - meta3: type: map description: | @@ -53,8 +54,8 @@ input: description: Reference genome in FASTA format pattern: "*.{fa,fasta,fna}" ontologies: - - edam: "http://edamontology.org/data_2044" # Sequence - - edam: "http://edamontology.org/format_1929" # FASTA + - edam: "http://edamontology.org/data_2044" + - edam: "http://edamontology.org/format_1929" - sort_bam: type: boolean description: use samtools sort (true) or samtools view (false) @@ -71,7 +72,7 @@ output: description: Output SAM file containing read alignments pattern: "*.{sam}" ontologies: - - edam: "http://edamontology.org/format_2573" # SAM + - edam: "http://edamontology.org/format_2573" bam: - - meta: type: map @@ -83,7 +84,7 @@ output: description: Output BAM file containing read alignments pattern: "*.{bam}" ontologies: - - edam: "http://edamontology.org/format_2572" # BAM + - edam: "http://edamontology.org/format_2572" cram: - - meta: type: map @@ -95,7 +96,7 @@ output: description: Output CRAM file containing read alignments pattern: "*.{cram}" ontologies: - - edam: "http://edamontology.org/format_3462" # CRAM + - edam: "http://edamontology.org/format_3462" crai: - - meta: type: map @@ -118,13 +119,27 @@ output: description: Index file for BAM file pattern: "*.{csi}" ontologies: [] + versions_bwamem2: + - - ${task.process}: + type: string + description: The name of the process + - bwamem2: + type: string + description: The name of the tool + - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - bwamem2: + type: string + description: The name of the tool + - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": + type: eval + description: The expression to obtain the version of the tool authors: - "@maxulysse" - "@matthdsm" diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 23e16634..f5629527 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -1,6 +1,6 @@ process FASTQC { tag "${meta.id}" - label 'process_medium' + label 'process_low' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -11,9 +11,9 @@ process FASTQC { tuple val(meta), path(reads) output: - tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.zip") , emit: zip - path "versions.yml" , emit: versions + tuple val(meta) , path("*.html") , emit: html + tuple val(meta) , path("*.zip") , emit: zip + tuple val("${task.process}"), val('fastqc'), eval('fastqc --version | sed "/FastQC v/!d; s/.*v//"'), emit: versions_fastqc, topic: versions when: task.ext.when == null || task.ext.when @@ -43,11 +43,6 @@ process FASTQC { --threads ${task.cpus} \\ --memory ${fastqc_memory} \\ ${renamed_files} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) - END_VERSIONS """ stub: @@ -55,10 +50,5 @@ process FASTQC { """ touch ${prefix}.html touch ${prefix}.zip - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) - END_VERSIONS """ } diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index c8d9d025..49164c88 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -53,13 +53,28 @@ output: description: FastQC report archive pattern: "*_{fastqc.zip}" ontologies: [] + versions_fastqc: + - - ${task.process}: + type: string + description: The process the versions were collected from + - fastqc: + type: string + description: The tool name + - fastqc --version | sed "/FastQC v/!d; s/.*v//": + type: eval + description: The expression to obtain the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - fastqc: + type: string + description: The tool name + - fastqc --version | sed "/FastQC v/!d; s/.*v//": + type: eval + description: The expression to obtain the version of the tool authors: - "@drpatelh" - "@grst" @@ -70,3 +85,27 @@ maintainers: - "@grst" - "@ewels" - "@FelixKrueger" +containers: + conda: + linux_amd64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-af7a5314d5015c29_1/condalock + linux_arm64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-df99cb252670875a_2/condalock + docker: + linux_amd64: + build_id: bd-af7a5314d5015c29_1 + name: community.wave.seqera.io/library/fastqc:0.12.1--af7a5314d5015c29 + scanId: sc-a618548acbee5a8a_30 + linux_arm64: + build_id: bd-df99cb252670875a_2 + name: community.wave.seqera.io/library/fastqc:0.12.1--df99cb252670875a + scanId: sc-b5913ed5d42b22d2_18 + singularity: + linux_amd64: + build_id: bd-104d26ddd9519960_1 + name: oras://community.wave.seqera.io/library/fastqc:0.12.1--104d26ddd9519960 + https: https://community.wave.seqera.io/v2/library/fastqc/blobs/sha256:e0c976cb2eca5fee72618a581537a4f8ea42fcae24c9b201e2e0f764fd28648a + linux_arm64: + build_id: bd-d56b505a93aef38a_1 + name: oras://community.wave.seqera.io/library/fastqc:0.12.1--d56b505a93aef38a + https: https://community.wave.seqera.io/v2/library/fastqc/blobs/sha256:fd39534bf298698cbe3ee4d4a6f1e73330ec4bca44c38dd9a4d06cb5ea838017 diff --git a/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff b/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff index 9333012d..4d76340f 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff +++ b/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff @@ -4,7 +4,7 @@ Changes in component 'nf-core/fastqscreen/buildfromindex' Changes in 'fastqscreen/buildfromindex/main.nf': --- modules/nf-core/fastqscreen/buildfromindex/main.nf +++ modules/nf-core/fastqscreen/buildfromindex/main.nf -@@ -2,39 +2,39 @@ +@@ -2,17 +2,17 @@ label 'process_single' conda "${moduleDir}/environment.yml" @@ -12,8 +12,8 @@ Changes in 'fastqscreen/buildfromindex/main.nf': - 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0': - 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container -+ ? 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0' -+ : 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" ++ ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' ++ : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" input: - val(genome_names) @@ -25,62 +25,48 @@ Changes in 'fastqscreen/buildfromindex/main.nf': - path("FastQ_Screen_Genomes"), emit: database - path "versions.yml" , emit: versions + path ("FastQ_Screen_Genomes"), emit: database -+ path "versions.yml", emit: versions ++ tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when - - script: +@@ -21,11 +21,11 @@ dir = "FastQ_Screen_Genomes" -- folder = indexes.collect { it.toString() } -+ folder = indexes.collect { index -> index.toString() } + folder = indexes.collect { index -> index.toString() } database = [genome_names, folder].transpose() -- copy_indexes = folder.collect { "cp -r ${it} $dir/${it}"}.join(" && ") -+ copy_indexes = folder.collect { file -> "cp -r ${file} ${dir}/${file}" }.join(" && ") +- copy_indexes = folder.collect { index -> "cp -r ${index} ${dir}/${index}"}.join(" && ") ++ copy_indexes = folder.collect { index -> "cp -r ${index} ${dir}/${index}" }.join(" && ") // Folder name and index (within folder) name could be different - use bash to look for index name config = database -- .collect { "########## ${it[0]} \nDATABASE ${it[0]} $dir/${it[1]}/${it[1] + '_to_be_replaced'}" } -+ .collect { file -> "########## ${file[0]} \nDATABASE ${file[0]} ${dir}/${file[1]}/${file[1] + '_to_be_replaced'}" } +- .collect { index -> "########## ${index[0]} \nDATABASE ${index[0]} $dir/${index[1]}/${index[1] + '_to_be_replaced'}" } ++ .collect { index -> "########## ${index[0]} \nDATABASE ${index[0]} ${dir}/${index[1]}/${index[1] + '_to_be_replaced'}" } .join("\n\n") .replace("\n", "\\n") - """ -- mkdir $dir -- $copy_indexes -+ mkdir ${dir} -+ ${copy_indexes} - -- echo "$config" > fastq_screen.conf -- sed 's/\\\\n/\\n/g' fastq_screen.conf > $dir/fastq_screen.conf -+ echo "${config}" > fastq_screen.conf -+ sed 's/\\\\n/\\n/g' fastq_screen.conf > ${dir}/fastq_screen.conf - echo "Replace folder name real index name" - - for f in ${folder.join(' ')} -@@ -45,8 +45,8 @@ - REPLACE_WITH=\$(basename \$REPLACE_WITH) - REPLACE_WITH=\${REPLACE_WITH%%.rev.1.bt2} - -- sed "s/\$TO_REPLACE/\$REPLACE_WITH/g" $dir/fastq_screen.conf > new_conf.conf -- mv new_conf.conf $dir/fastq_screen.conf -+ sed "s/\$TO_REPLACE/\$REPLACE_WITH/g" ${dir}/fastq_screen.conf > new_conf.conf -+ mv new_conf.conf ${dir}/fastq_screen.conf +@@ -48,11 +48,6 @@ + sed "s/\$TO_REPLACE/\$REPLACE_WITH/g" ${dir}/fastq_screen.conf > new_conf.conf + mv new_conf.conf ${dir}/fastq_screen.conf done +- +- cat <<-END_VERSIONS > versions.yml +- "${task.process}": +- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') +- END_VERSIONS + """ - cat <<-END_VERSIONS > versions.yml -@@ -58,8 +58,8 @@ stub: - dir = "FastQ_Screen_Genomes" +@@ -60,10 +55,5 @@ """ -- mkdir $dir -- touch $dir/fastq_screen.conf -+ mkdir ${dir} -+ touch ${dir}/fastq_screen.conf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": + mkdir ${dir} + touch ${dir}/fastq_screen.conf +- +- cat <<-END_VERSIONS > versions.yml +- "${task.process}": +- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') +- END_VERSIONS + """ + } -'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test' was removed -'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap' was removed +'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test' is unchanged +'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap' is unchanged ************************************************************ diff --git a/modules/nf-core/fastqscreen/buildfromindex/main.nf b/modules/nf-core/fastqscreen/buildfromindex/main.nf index 6706111e..125f8178 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/main.nf +++ b/modules/nf-core/fastqscreen/buildfromindex/main.nf @@ -3,8 +3,8 @@ process FASTQSCREEN_BUILDFROMINDEX { conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container - ? 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0' - : 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' + : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" input: val genome_names @@ -12,7 +12,7 @@ process FASTQSCREEN_BUILDFROMINDEX { output: path ("FastQ_Screen_Genomes"), emit: database - path "versions.yml", emit: versions + tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when @@ -21,11 +21,11 @@ process FASTQSCREEN_BUILDFROMINDEX { dir = "FastQ_Screen_Genomes" folder = indexes.collect { index -> index.toString() } database = [genome_names, folder].transpose() - copy_indexes = folder.collect { file -> "cp -r ${file} ${dir}/${file}" }.join(" && ") + copy_indexes = folder.collect { index -> "cp -r ${index} ${dir}/${index}" }.join(" && ") // Folder name and index (within folder) name could be different - use bash to look for index name config = database - .collect { file -> "########## ${file[0]} \nDATABASE ${file[0]} ${dir}/${file[1]}/${file[1] + '_to_be_replaced'}" } + .collect { index -> "########## ${index[0]} \nDATABASE ${index[0]} ${dir}/${index[1]}/${index[1] + '_to_be_replaced'}" } .join("\n\n") .replace("\n", "\\n") @@ -48,11 +48,6 @@ process FASTQSCREEN_BUILDFROMINDEX { sed "s/\$TO_REPLACE/\$REPLACE_WITH/g" ${dir}/fastq_screen.conf > new_conf.conf mv new_conf.conf ${dir}/fastq_screen.conf done - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') - END_VERSIONS """ stub: @@ -60,10 +55,5 @@ process FASTQSCREEN_BUILDFROMINDEX { """ mkdir ${dir} touch ${dir}/fastq_screen.conf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff index 9647dd39..0a809b3b 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff +++ b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff @@ -14,7 +14,7 @@ Changes in 'fastqscreen/fastqscreen/environment.yml': Changes in 'fastqscreen/fastqscreen/main.nf': --- modules/nf-core/fastqscreen/fastqscreen/main.nf +++ modules/nf-core/fastqscreen/fastqscreen/main.nf -@@ -1,22 +1,22 @@ +@@ -1,51 +1,61 @@ process FASTQSCREEN_FASTQSCREEN { - tag "$meta.id" + tag "${meta.id}" @@ -43,13 +43,13 @@ Changes in 'fastqscreen/fastqscreen/main.nf': + tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true - path "versions.yml" , emit: versions -+ path "versions.yml", emit: versions ++ tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when -@@ -24,31 +24,46 @@ + script: - def prefix = task.ext.prefix ?: "${meta.id}" ++ def prefix = task.ext.prefix ?: "${meta.id}" def args = task.ext.args ?: "" + def config_content = ref_names.withIndex().collect { name, i -> "DATABASE ${name} ./${ref_dirs[i]}/${ref_basenames[i]} ${ref_aligners[i]}" }.join('\n') @@ -68,7 +68,6 @@ Changes in 'fastqscreen/fastqscreen/main.nf': + .join(' && ') """ - fastq_screen --threads ${task.cpus} \\ -- --aligner bowtie2 \\ - --conf ${database}/fastq_screen.conf \\ - $reads \\ - $args \\ @@ -85,34 +84,27 @@ Changes in 'fastqscreen/fastqscreen/main.nf': + ${args} + + ${mv_cmd} -+ -+ fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') -+ echo "\\\"${task.process}\\\":" > versions.yml -+ echo " fastqscreen: \$fastq_screen_version" >> versions.yml """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" ++ def prefix = task.ext.prefix ?: "${meta.id}" """ - touch test_1_screen.html - touch test_1_screen.png - touch test_1_screen.txt -+ touch ${prefix}_screen.html -+ touch ${prefix}_screen.png -+ touch ${prefix}_screen.txt - +- - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') - END_VERSIONS -+ fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') -+ echo "\\\"${task.process}\\\":" > versions.yml -+ echo " fastqscreen: \$fastq_screen_version" >> versions.yml ++ touch ${prefix}_screen.html ++ touch ${prefix}_screen.png ++ touch ${prefix}_screen.txt """ - } -'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test' was removed -'modules/nf-core/fastqscreen/fastqscreen/tests/nextflow.config' was removed -'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap' was removed +'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test' is unchanged +'modules/nf-core/fastqscreen/fastqscreen/tests/nextflow.config' is unchanged +'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap' is unchanged ************************************************************ diff --git a/modules/nf-core/fastqscreen/fastqscreen/main.nf b/modules/nf-core/fastqscreen/fastqscreen/main.nf index dc53ae21..fc5ccc7e 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/main.nf +++ b/modules/nf-core/fastqscreen/fastqscreen/main.nf @@ -16,7 +16,7 @@ process FASTQSCREEN_FASTQSCREEN { tuple val(meta), path("*.png"), emit: png, optional: true tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true - path "versions.yml", emit: versions + tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when @@ -49,10 +49,6 @@ process FASTQSCREEN_FASTQSCREEN { ${args} ${mv_cmd} - - fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') - echo "\\\"${task.process}\\\":" > versions.yml - echo " fastqscreen: \$fastq_screen_version" >> versions.yml """ stub: @@ -61,9 +57,5 @@ process FASTQSCREEN_FASTQSCREEN { touch ${prefix}_screen.html touch ${prefix}_screen.png touch ${prefix}_screen.txt - - fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') - echo "\\\"${task.process}\\\":" > versions.yml - echo " fastqscreen: \$fastq_screen_version" >> versions.yml """ } diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index d02016a0..009874d4 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.32 + - bioconda::multiqc=1.33 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 5d0780af..3b0e975b 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,11 +3,11 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/8c/8c6c120d559d7ee04c7442b61ad7cf5a9e8970be5feefb37d68eeaa60c1034eb/data' : - 'community.wave.seqera.io/library/multiqc:1.32--d58f60e4deb769bf' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/34/34e733a9ae16a27e80fe00f863ea1479c96416017f24a907996126283e7ecd4d/data' : + 'community.wave.seqera.io/library/multiqc:1.33--ee7739d47738383b' }" input: - path multiqc_files, stageAs: "?/*" + path multiqc_files, stageAs: "?/*" path(multiqc_config) path(extra_multiqc_config) path(multiqc_logo) @@ -15,10 +15,11 @@ process MULTIQC { path(sample_names) output: - path "*multiqc_report.html", emit: report - path "*_data" , emit: data - path "*_plots" , optional:true, emit: plots - path "versions.yml" , emit: versions + path "*.html" , emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + tuple val("${task.process}"), val('multiqc'), eval('multiqc --version | sed "s/.* //g"'), emit: versions + // MultiQC should not push its versions to the `versions` topic. Its input depends on the versions topic to be resolved thus outputting to the topic will let the pipeline hang forever when: task.ext.when == null || task.ext.when @@ -26,27 +27,22 @@ process MULTIQC { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ? "--filename ${task.ext.prefix}.html" : '' - def config = multiqc_config ? "--config $multiqc_config" : '' - def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + def config = multiqc_config ? "--config ${multiqc_config}" : '' + def extra_config = extra_multiqc_config ? "--config ${extra_multiqc_config}" : '' def logo = multiqc_logo ? "--cl-config 'custom_logo: \"${multiqc_logo}\"'" : '' def replace = replace_names ? "--replace-names ${replace_names}" : '' def samples = sample_names ? "--sample-names ${sample_names}" : '' """ multiqc \\ --force \\ - $args \\ - $config \\ - $prefix \\ - $extra_config \\ - $logo \\ - $replace \\ - $samples \\ + ${args} \\ + ${config} \\ + ${prefix} \\ + ${extra_config} \\ + ${logo} \\ + ${replace} \\ + ${samples} \\ . - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS """ stub: @@ -55,10 +51,5 @@ process MULTIQC { touch multiqc_data/.stub mkdir multiqc_plots touch multiqc_report.html - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS """ } diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index ce30eb73..9fd34f37 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -57,10 +57,10 @@ input: - edam: http://edamontology.org/format_3475 # TSV output: report: - - "*multiqc_report.html": + - "*.html": type: file description: MultiQC report file - pattern: "multiqc_report.html" + pattern: ".html" ontologies: [] data: - "*_data": @@ -71,15 +71,18 @@ output: - "*_plots": type: file description: Plots created by MultiQC - pattern: "*_data" + pattern: "*_plots" ontologies: [] versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - multiqc: + type: string + description: The tool name + - multiqc --version | sed "s/.* //g": + type: eval + description: The expression to obtain the version of the tool authors: - "@abhi18av" - "@bunop" @@ -90,3 +93,27 @@ maintainers: - "@bunop" - "@drpatelh" - "@jfy133" +containers: + conda: + linux/amd64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-ee7739d47738383b_1/condalock + linux/arm64: + lock_file: https://wave.seqera.io/v1alpha1/builds/bd-58d7dee710ab3aa8_1/condalock + docker: + linux/amd64: + build_id: bd-ee7739d47738383b_1 + name: community.wave.seqera.io/library/multiqc:1.33--ee7739d47738383b + scanId: sc-6ddec592dcadd583_4 + linux/arm64: + build_id: bd-58d7dee710ab3aa8_1 + name: community.wave.seqera.io/library/multiqc:1.33--58d7dee710ab3aa8 + scanId: sc-a04c42273e34c55c_2 + singularity: + linux/amd64: + build_id: bd-e3576ddf588fa00d_1 + https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/34/34e733a9ae16a27e80fe00f863ea1479c96416017f24a907996126283e7ecd4d/data + name: oras://community.wave.seqera.io/library/multiqc:1.33--e3576ddf588fa00d + linux/arm64: + build_id: bd-2537ca5f8445e3c2_1 + https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/78/78b89e91d89e9cc99ad5ade5be311f347838cb2acbfb4f13bc343b170be09ce4/data + name: oras://community.wave.seqera.io/library/multiqc:1.33--2537ca5f8445e3c2 diff --git a/modules/nf-core/picard/collecthsmetrics/main.nf b/modules/nf-core/picard/collecthsmetrics/main.nf index b86053e5..b13871f8 100644 --- a/modules/nf-core/picard/collecthsmetrics/main.nf +++ b/modules/nf-core/picard/collecthsmetrics/main.nf @@ -16,7 +16,7 @@ process PICARD_COLLECTHSMETRICS { output: tuple val(meta), path("*_metrics") , emit: metrics - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('picard'), eval("picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'"), topic: versions, emit: versions_picard when: task.ext.when == null || task.ext.when @@ -63,21 +63,11 @@ process PICARD_COLLECTHSMETRICS { --INPUT $bam \\ --OUTPUT ${prefix}.CollectHsMetrics.coverage_metrics - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(echo \$(picard CollectHsMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) - END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.CollectHsMetrics.coverage_metrics - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(echo \$(picard CollectHsMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) - END_VERSIONS """ } diff --git a/modules/nf-core/picard/collecthsmetrics/meta.yml b/modules/nf-core/picard/collecthsmetrics/meta.yml index 511ae959..a21aa6ec 100644 --- a/modules/nf-core/picard/collecthsmetrics/meta.yml +++ b/modules/nf-core/picard/collecthsmetrics/meta.yml @@ -99,13 +99,28 @@ output: description: Alignment metrics files generated by picard pattern: "*_{metrics}" ontologies: [] + versions_picard: + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + type: string + description: The command used to generate the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + type: string + description: The command used to generate the version of the tool authors: - "@projectoriented" - "@matthdsm" diff --git a/modules/nf-core/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf index eb4f6c60..3c6152e5 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ b/modules/nf-core/picard/collectmultiplemetrics/main.nf @@ -15,7 +15,7 @@ process PICARD_COLLECTMULTIPLEMETRICS { output: tuple val(meta), path("*_metrics"), emit: metrics tuple val(meta), path("*.pdf") , emit: pdf, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('picard'), eval("picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'"), topic: versions, emit: versions_picard when: task.ext.when == null || task.ext.when @@ -39,10 +39,6 @@ process PICARD_COLLECTMULTIPLEMETRICS { --OUTPUT ${prefix}.CollectMultipleMetrics \\ $reference - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(picard CollectMultipleMetrics --version 2>&1 | grep -o 'Version.*' | cut -f2- -d:) - END_VERSIONS """ stub: @@ -59,9 +55,5 @@ process PICARD_COLLECTMULTIPLEMETRICS { touch ${prefix}.CollectMultipleMetrics.insert_size_histogram.pdf touch ${prefix}.CollectMultipleMetrics.quality_distribution_metrics - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(echo \$(picard CollectMultipleMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) - END_VERSIONS """ } diff --git a/modules/nf-core/picard/collectmultiplemetrics/meta.yml b/modules/nf-core/picard/collectmultiplemetrics/meta.yml index 3f0bf610..1ea47244 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/meta.yml +++ b/modules/nf-core/picard/collectmultiplemetrics/meta.yml @@ -74,13 +74,29 @@ output: description: PDF plots of metrics pattern: "*.{pdf}" ontologies: [] + versions_picard: + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + type: string + description: The command used to generate the version of the tool + +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + type: string + description: The command used to generate the version of the tool + authors: - "@drpatelh" maintainers: diff --git a/modules/nf-core/samtools/faidx/main.nf b/modules/nf-core/samtools/faidx/main.nf index ed2d70a6..97bfb578 100644 --- a/modules/nf-core/samtools/faidx/main.nf +++ b/modules/nf-core/samtools/faidx/main.nf @@ -8,8 +8,7 @@ process SAMTOOLS_FAIDX { 'biocontainers/samtools:1.22.1--h96c455f_0' }" input: - tuple val(meta), path(fasta) - tuple val(meta2), path(fai) + tuple val(meta), path(fasta), path(fai) val get_sizes output: @@ -17,7 +16,7 @@ process SAMTOOLS_FAIDX { tuple val(meta), path ("*.sizes") , emit: sizes, optional: true tuple val(meta), path ("*.fai") , emit: fai, optional: true tuple val(meta), path ("*.gzi") , emit: gzi, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('samtools'), eval("samtools version | sed '1!d;s/.* //'"), topic: versions, emit: versions_samtools when: task.ext.when == null || task.ext.when @@ -32,11 +31,6 @@ process SAMTOOLS_FAIDX { $args ${get_sizes_command} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ stub: @@ -51,11 +45,5 @@ process SAMTOOLS_FAIDX { fi ${get_sizes_command} - - cat <<-END_VERSIONS > versions.yml - - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml index b7a2e0c1..80aae1da 100644 --- a/modules/nf-core/samtools/faidx/meta.yml +++ b/modules/nf-core/samtools/faidx/meta.yml @@ -1,5 +1,6 @@ name: samtools_faidx -description: Index FASTA file, and optionally generate a file of chromosome sizes +description: Index FASTA file, and optionally generate a file of chromosome + sizes keywords: - index - fasta @@ -14,7 +15,8 @@ tools: homepage: http://www.htslib.org/ documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 - licence: ["MIT"] + licence: + - "MIT" identifier: biotools:samtools input: - - meta: @@ -27,11 +29,6 @@ input: description: FASTA file pattern: "*.{fa,fasta}" ontologies: [] - - - meta2: - type: map - description: | - Groovy Map containing reference information - e.g. [ id:'test' ] - fai: type: file description: FASTA index file @@ -40,7 +37,6 @@ input: - get_sizes: type: boolean description: use cut to get the sizes of the index (true) or not (false) - output: fa: - - meta: @@ -86,13 +82,27 @@ output: description: Optional gzip index file for compressed inputs pattern: "*.gzi" ontologies: [] + versions_samtools: + - - ${task.process}: + type: string + description: The process the versions were collected from + - samtools: + type: string + description: The tool name + - "samtools version | sed '1!d;s/.* //'": + type: eval + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - samtools: + type: string + description: The tool name + - "samtools version | sed '1!d;s/.* //'": + type: eval + description: The command used to generate the version of the tool authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index a77ad821..e2a0e56d 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -14,7 +14,7 @@ process SAMTOOLS_INDEX { tuple val(meta), path("*.bai") , optional:true, emit: bai tuple val(meta), path("*.csi") , optional:true, emit: csi tuple val(meta), path("*.crai"), optional:true, emit: crai - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('samtools'), eval("samtools version | sed '1!d;s/.* //'"), emit: versions_samtools, topic: versions when: task.ext.when == null || task.ext.when @@ -27,11 +27,6 @@ process SAMTOOLS_INDEX { -@ ${task.cpus} \\ $args \\ $input - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ stub: @@ -40,10 +35,5 @@ process SAMTOOLS_INDEX { "crai" : args.contains("-c") ? "csi" : "bai" """ touch ${input}.${extension} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml index 1bed6bca..c6d4ce25 100644 --- a/modules/nf-core/samtools/index/meta.yml +++ b/modules/nf-core/samtools/index/meta.yml @@ -14,7 +14,8 @@ tools: homepage: http://www.htslib.org/ documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 - licence: ["MIT"] + licence: + - "MIT" identifier: biotools:samtools input: - - meta: @@ -60,13 +61,27 @@ output: description: BAM/CRAM/SAM index file pattern: "*.{bai,crai,sai}" ontologies: [] + versions_samtools: + - - ${task.process}: + type: string + description: The name of the process + - samtools: + type: string + description: The name of the tool + - samtools version | sed '1!d;s/.* //': + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - samtools: + type: string + description: The name of the tool + - samtools version | sed '1!d;s/.* //': + type: eval + description: The expression to obtain the version of the tool authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/seqtk/sample/main.nf b/modules/nf-core/seqtk/sample/main.nf index 0c2aaeda..1a5d8cd7 100644 --- a/modules/nf-core/seqtk/sample/main.nf +++ b/modules/nf-core/seqtk/sample/main.nf @@ -12,7 +12,7 @@ process SEQTK_SAMPLE { output: tuple val(meta), path("*.fastq.gz"), emit: reads - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('seqtk'), eval("seqtk 2>&1 | sed -n 's/^Version: //p'"), emit: versions_seqtk, topic: versions when: task.ext.when == null || task.ext.when @@ -36,11 +36,6 @@ process SEQTK_SAMPLE { $sample_size \\ | gzip --no-name > ${prefix}_\$(basename \$f) done - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') - END_VERSIONS """ stub: @@ -48,11 +43,6 @@ process SEQTK_SAMPLE { """ echo "" | gzip > ${prefix}.fastq.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') - END_VERSIONS """ } diff --git a/modules/nf-core/seqtk/sample/meta.yml b/modules/nf-core/seqtk/sample/meta.yml index ed1f3325..9574c705 100644 --- a/modules/nf-core/seqtk/sample/meta.yml +++ b/modules/nf-core/seqtk/sample/meta.yml @@ -6,8 +6,8 @@ keywords: - reads tools: - seqtk: - description: Seqtk is a fast and lightweight tool for processing sequences in - the FASTA or FASTQ format. Seqtk sample command subsamples sequences. + description: Seqtk is a fast and lightweight tool for processing sequences + in the FASTA or FASTQ format. Seqtk sample command subsamples sequences. homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk @@ -39,13 +39,27 @@ output: description: Subsampled FastQ files pattern: "*.{fastq.gz}" ontologies: [] + versions_seqtk: + - - ${task.process}: + type: string + description: The name of the process + - seqtk: + type: string + description: The name of the tool + - "seqtk 2>&1 | sed -n 's/^Version: //p'": + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - seqtk: + type: string + description: The name of the tool + - "seqtk 2>&1 | sed -n 's/^Version: //p'": + type: eval + description: The expression to obtain the version of the tool authors: - "@kaurravneet4123" - "@sidorov-si" diff --git a/subworkflows/local/prepare_genome/main.nf b/subworkflows/local/prepare_genome/main.nf index 96811a78..fa707a0b 100644 --- a/subworkflows/local/prepare_genome/main.nf +++ b/subworkflows/local/prepare_genome/main.nf @@ -31,18 +31,15 @@ workflow PREPARE_GENOME { else { BWAMEM2_INDEX(ch_reference_fasta) ch_bwamem2_index = BWAMEM2_INDEX.out.index - ch_versions = ch_versions.mix(BWAMEM2_INDEX.out.versions) } } if (!("samtools_faidx" in skip_tools)) { SAMTOOLS_FAIDX( - ch_reference_fasta, - [[:], []], - true, + ch_reference_fasta.map { meta, fasta -> [meta, fasta, []] }, + false, ) ch_reference_fai = SAMTOOLS_FAIDX.out.fai - ch_versions = ch_versions.mix(SAMTOOLS_FAIDX.out.versions) } if (run_picard_collecthsmetrics) { diff --git a/subworkflows/local/qc_bam/main.nf b/subworkflows/local/qc_bam/main.nf index 75661ddd..e2d06c54 100644 --- a/subworkflows/local/qc_bam/main.nf +++ b/subworkflows/local/qc_bam/main.nf @@ -31,7 +31,6 @@ workflow QC_BAM { ) ch_multiple_metrics = PICARD_COLLECTMULTIPLEMETRICS.out.metrics - ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions) if (run_picard_collecthsmetrics) { @@ -48,7 +47,6 @@ workflow QC_BAM { ) ch_hs_metrics = PICARD_COLLECTHSMETRICS.out.metrics - ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions) } emit: diff --git a/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/subworkflows/nf-core/utils_nfschema_plugin/main.nf index ee4738c8..1df8b76f 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfschema_plugin/main.nf @@ -38,7 +38,7 @@ workflow UTILS_NFSCHEMA_PLUGIN { } log.info paramsHelp( help_options, - params.help instanceof String ? params.help : "", + (params.help instanceof String && params.help != "true") ? params.help : "", ) exit 0 } @@ -71,4 +71,3 @@ workflow UTILS_NFSCHEMA_PLUGIN { emit: dummy_emit = true } - diff --git a/tests/MiSeq.nf.test.snap b/tests/MiSeq.nf.test.snap index 617568de..e2a56146 100644 --- a/tests/MiSeq.nf.test.snap +++ b/tests/MiSeq.nf.test.snap @@ -22,18 +22,16 @@ "pipeline_info", "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", - "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes" + "samtools_faidx/genome.fa.fai" ], [ "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", - "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc" + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b" ], "No BAM files", "No warnings" ], - "timestamp": "2026-02-17T10:23:01.770390051", + "timestamp": "2026-02-19T11:25:41.926154725", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -47,8 +45,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -133,6 +130,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -157,6 +155,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -181,6 +180,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -216,7 +216,6 @@ "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_SINGLE_END_01_seqfu.tsv", "seqfu_stats/SAMPLE_SINGLE_END_01_seqfu_mqc.txt" @@ -261,7 +260,6 @@ "picard_quality_by_cycle.txt:md5,d754b0c0d9aac602637d0c923dc88834", "picard_quality_score_distribution.txt:md5,d86da8fb7d48098fd5ec4a8419a8bc9e", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "SAMPLE_SINGLE_END_01_seqfu.tsv:md5,33a9e44386f308d43881a58394b6b17c", "SAMPLE_SINGLE_END_01_seqfu_mqc.txt:md5,e67e819605ab49182aacf1d676dc885d" ], @@ -270,7 +268,7 @@ ], "No warnings" ], - "timestamp": "2026-02-17T10:17:46.832632927", + "timestamp": "2026-02-19T11:24:33.205172672", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -284,8 +282,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -387,6 +384,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -412,6 +410,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -437,6 +436,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -506,6 +506,7 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -531,6 +532,7 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -556,6 +558,7 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -600,7 +603,6 @@ "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_PAIRED_END_1_01_seqfu.tsv", "seqfu_stats/SAMPLE_PAIRED_END_1_01_seqfu_mqc.txt", @@ -686,7 +688,6 @@ "picard_quality_by_cycle.txt:md5,2497dd5ef1e5cedc1f88a9b67ef549d7", "picard_quality_score_distribution.txt:md5,795138cccc8b97143f8bf0bf0adbd4b7", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "SAMPLE_PAIRED_END_1_01_seqfu.tsv:md5,be29dfe848eab9a10ee0d46691223eae", "SAMPLE_PAIRED_END_1_01_seqfu_mqc.txt:md5,0aca00c7f64454af520c7e08ec595d2b", "SAMPLE_PAIRED_END_2_02_seqfu.tsv:md5,44a5cb826e001d58208a5855938fa82b", @@ -700,7 +701,7 @@ "WARN: Tag name collision: [Bpacificus]" ] ], - "timestamp": "2026-02-17T10:18:50.450876782", + "timestamp": "2026-02-19T11:26:40.474656064", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -714,8 +715,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" @@ -835,7 +835,6 @@ "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_SINGLE_END_01_seqfu.tsv", "seqfu_stats/SAMPLE_SINGLE_END_01_seqfu_mqc.txt" @@ -870,7 +869,6 @@ "picard_quality_by_cycle.txt:md5,d754b0c0d9aac602637d0c923dc88834", "picard_quality_score_distribution.txt:md5,d86da8fb7d48098fd5ec4a8419a8bc9e", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "SAMPLE_SINGLE_END_01_seqfu.tsv:md5,33a9e44386f308d43881a58394b6b17c", "SAMPLE_SINGLE_END_01_seqfu_mqc.txt:md5,e67e819605ab49182aacf1d676dc885d" ], @@ -879,7 +877,7 @@ ], "No warnings" ], - "timestamp": "2026-02-17T10:22:28.854774703", + "timestamp": "2026-02-19T11:25:19.283756126", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/tests/NovaSeq6000.nf.test.snap b/tests/NovaSeq6000.nf.test.snap index 695e66d5..63a1f1de 100644 --- a/tests/NovaSeq6000.nf.test.snap +++ b/tests/NovaSeq6000.nf.test.snap @@ -7,8 +7,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -127,6 +126,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -153,6 +153,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -179,6 +180,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -251,6 +253,7 @@ "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -277,6 +280,7 @@ "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -303,6 +307,7 @@ "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -374,6 +379,7 @@ "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -400,6 +406,7 @@ "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -426,6 +433,7 @@ "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -497,6 +505,7 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -523,6 +532,7 @@ "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -549,6 +559,7 @@ "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -620,6 +631,7 @@ "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -646,6 +658,7 @@ "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -672,6 +685,7 @@ "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -743,7 +757,6 @@ "rundirparser/200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_01_seqfu.tsv", "seqfu_stats/Sample1_01_seqfu_mqc.txt", @@ -939,7 +952,6 @@ "picard_quality_score_distribution.txt:md5,a2882ff59902dc95830ed4bdb955561a", "200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml:md5,29e05fed18bca0e9a857c992b6d59a40", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", @@ -1035,7 +1047,7 @@ "[NXF_HASH] Submitted process > NFCORE_SEQINSPECTOR:SEQINSPECTOR:SEQFU_STATS (seqfu)" ] ], - "timestamp": "2026-02-17T16:11:01.427075006", + "timestamp": "2026-02-19T11:28:36.439362293", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -1049,8 +1061,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -1172,6 +1183,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -1198,6 +1210,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -1224,6 +1237,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -1296,6 +1310,7 @@ "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -1322,6 +1337,7 @@ "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -1348,6 +1364,7 @@ "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -1419,6 +1436,7 @@ "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -1445,6 +1463,7 @@ "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -1471,6 +1490,7 @@ "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -1542,6 +1562,7 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -1568,6 +1589,7 @@ "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -1594,6 +1616,7 @@ "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -1665,6 +1688,7 @@ "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -1691,6 +1715,7 @@ "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -1717,6 +1742,7 @@ "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -1788,7 +1814,6 @@ "rundirparser/200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_01_seqfu.tsv", "seqfu_stats/Sample1_01_seqfu_mqc.txt", @@ -1990,7 +2015,6 @@ "picard_quality_score_distribution.txt:md5,0a04dad54cadfd660c935af9a0658e0c", "200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml:md5,29e05fed18bca0e9a857c992b6d59a40", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", @@ -2021,7 +2045,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-17T15:50:33.940454174", + "timestamp": "2026-02-19T11:34:26.071342016", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -2035,8 +2059,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -2158,6 +2181,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -2184,6 +2208,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -2210,6 +2235,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -2282,6 +2308,7 @@ "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -2308,6 +2335,7 @@ "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -2334,6 +2362,7 @@ "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -2405,6 +2434,7 @@ "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -2431,6 +2461,7 @@ "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -2457,6 +2488,7 @@ "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -2528,6 +2560,7 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -2554,6 +2587,7 @@ "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -2580,6 +2614,7 @@ "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -2651,6 +2686,7 @@ "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -2677,6 +2713,7 @@ "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -2703,6 +2740,7 @@ "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -2774,7 +2812,6 @@ "rundirparser/200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_01_seqfu.tsv", "seqfu_stats/Sample1_01_seqfu_mqc.txt", @@ -2976,7 +3013,6 @@ "picard_quality_score_distribution.txt:md5,65f7be51589f047c63fe05151a8fbde4", "200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml:md5,29e05fed18bca0e9a857c992b6d59a40", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", @@ -3007,7 +3043,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-17T15:52:18.005537349", + "timestamp": "2026-02-19T11:35:30.560451598", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -3021,8 +3057,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -3136,6 +3171,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -3161,6 +3197,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -3186,6 +3223,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -3256,6 +3294,7 @@ "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -3281,6 +3320,7 @@ "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -3306,6 +3346,7 @@ "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -3375,6 +3416,7 @@ "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -3400,6 +3442,7 @@ "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -3425,6 +3468,7 @@ "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -3494,6 +3538,7 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -3519,6 +3564,7 @@ "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -3544,6 +3590,7 @@ "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -3613,6 +3660,7 @@ "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -3638,6 +3686,7 @@ "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -3663,6 +3712,7 @@ "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -3731,7 +3781,6 @@ "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_01_seqfu.tsv", "seqfu_stats/Sample1_01_seqfu_mqc.txt", @@ -3921,7 +3970,6 @@ "picard_quality_by_cycle.txt:md5,0aa028d69d8bb02f0a2bcd0ed08f4235", "picard_quality_score_distribution.txt:md5,a2882ff59902dc95830ed4bdb955561a", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", @@ -3953,7 +4001,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-17T10:46:58.253157108", + "timestamp": "2026-02-19T11:30:44.123275575", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -3967,8 +4015,7 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1", - "samtools": "1.22.1" + "bwamem2": "2.2.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -4090,6 +4137,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -4116,6 +4164,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -4142,6 +4191,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -4214,6 +4264,7 @@ "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -4240,6 +4291,7 @@ "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -4266,6 +4318,7 @@ "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -4337,6 +4390,7 @@ "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -4363,6 +4417,7 @@ "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -4389,6 +4444,7 @@ "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -4460,6 +4516,7 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -4486,6 +4543,7 @@ "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -4512,6 +4570,7 @@ "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -4583,6 +4642,7 @@ "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -4609,6 +4669,7 @@ "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -4635,6 +4696,7 @@ "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -4706,7 +4768,6 @@ "rundirparser/200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_01_seqfu.tsv", "seqfu_stats/Sample1_01_seqfu_mqc.txt", @@ -4908,7 +4969,6 @@ "picard_quality_score_distribution.txt:md5,a2882ff59902dc95830ed4bdb955561a", "200624_A00834_0183_BHMTFYDRXX_illumina_mqc.yml:md5,29e05fed18bca0e9a857c992b6d59a40", "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", - "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", "Sample1_01_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", "Sample1_01_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", "Sample23_03_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", @@ -4944,7 +5004,7 @@ "WARN: sampletest_04: Requested sample_size (120) is larger than available reads (100). Pipeline will continue with 100 reads." ] ], - "timestamp": "2026-02-17T15:53:46.460202138", + "timestamp": "2026-02-19T11:36:50.414225534", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/tests/PromethION.nf.test.snap b/tests/PromethION.nf.test.snap index 1bbc1aa3..f9a0fdcc 100644 --- a/tests/PromethION.nf.test.snap +++ b/tests/PromethION.nf.test.snap @@ -55,6 +55,7 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", @@ -71,6 +72,7 @@ "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", @@ -87,6 +89,7 @@ "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", @@ -105,7 +108,6 @@ "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", "samtools_faidx", "samtools_faidx/genome.fa.fai", - "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/hg001_01_seqfu.tsv", "seqfu_stats/hg001_01_seqfu_mqc.txt" @@ -130,14 +132,13 @@ "multiqc_fastqc.txt:md5,b71aaffef9767dfe9d83fde0d31a3a1b", "multiqc_seqfu_mqc.txt:md5,9595d608ff5709f2bdec8cb1016416c0", "genome.fa.fai:md5,59557cd3a71ca5e0840285b6088ec1d6", - "genome.fa.sizes:md5,f154a58a25ba9c4d386003eaa1bb731b", "hg001_01_seqfu.tsv:md5,b133752c897afbb4d8721b911fa117d4", "hg001_01_seqfu_mqc.txt:md5,42e3506b02ceb72a6f05cb174505e722" ], "No BAM files", "No warnings" ], - "timestamp": "2026-02-17T10:30:18.833766777", + "timestamp": "2026-02-19T11:20:55.026861066", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/workflows/seqinspector.nf b/workflows/seqinspector.nf index 3317f739..774311fa 100644 --- a/workflows/seqinspector.nf +++ b/workflows/seqinspector.nf @@ -119,7 +119,6 @@ workflow SEQINSPECTOR { SEQTK_SAMPLE(ch_samplesheet.map { meta, reads -> [meta, reads, sample_size] }) ch_sample = SEQTK_SAMPLE.out.reads - ch_versions = ch_versions.mix(SEQTK_SAMPLE.out.versions) } else { // No subsampling @@ -133,7 +132,6 @@ workflow SEQINSPECTOR { FASTQC(ch_sample) ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip) - ch_versions = ch_versions.mix(FASTQC.out.versions) } // @@ -179,7 +177,6 @@ workflow SEQINSPECTOR { FASTQSCREEN_FASTQSCREEN(ch_sample, ch_fastqscreen_refs) ch_multiqc_files = ch_multiqc_files.mix(FASTQSCREEN_FASTQSCREEN.out.txt) - ch_versions = ch_versions.mix(FASTQSCREEN_FASTQSCREEN.out.versions) } // MODULE: Align reads with BWA-MEM2 @@ -191,12 +188,10 @@ workflow SEQINSPECTOR { sort_bam ?: true, ) ch_bwamem2_mem = BWAMEM2_MEM.out.bam - ch_versions = ch_versions.mix(BWAMEM2_MEM.out.versions) SAMTOOLS_INDEX(ch_bwamem2_mem) ch_samtools_index = SAMTOOLS_INDEX.out.bai - ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions) } From 88038dc4cef7c6da0ae9e717557aa6c84ae69f95 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 13:41:33 +0100 Subject: [PATCH 2/7] snapshot for subworkflows --- .../prepare_genome/tests/main.nf.test.snap | 58 ++++--------------- .../local/qc_bam/tests/main.nf.test.snap | 35 +++-------- 2 files changed, 20 insertions(+), 73 deletions(-) diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test.snap b/subworkflows/local/prepare_genome/tests/main.nf.test.snap index 6fbdc7e0..69dbcf5d 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test.snap +++ b/subworkflows/local/prepare_genome/tests/main.nf.test.snap @@ -20,29 +20,19 @@ "reference.fasta.fai:md5,bf4047e05f95deb372eb8ffd601cbc29" ], "versions": [ - { - "PREPARE_GENOME:SAMTOOLS_FAIDX": { - "samtools": "1.22.1" - } - }, { "PREPARE_GENOME:PICARD_CREATESEQUENCEDICTIONARY": { "picard": "3.4.0" } - }, - { - "PREPARE_GENOME:BWAMEM2_INDEX": { - "bwamem2": "2.2.1" - } } ] } ], + "timestamp": "2026-02-19T12:13:22.253331535", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2025-12-15T11:57:16.786415613" + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } }, "Test without bwamem2 index file path, with run_picard_collecthsmetrics=true and with ref_dict": { "content": [ @@ -63,26 +53,14 @@ ], "reference_fai": [ "reference.fasta.fai:md5,bf4047e05f95deb372eb8ffd601cbc29" - ], - "versions": [ - { - "PREPARE_GENOME:SAMTOOLS_FAIDX": { - "samtools": "1.22.1" - } - }, - { - "PREPARE_GENOME:BWAMEM2_INDEX": { - "bwamem2": "2.2.1" - } - } ] } ], + "timestamp": "2026-02-19T12:12:39.549105919", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2025-12-15T11:56:46.871893037" + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } }, "Test without bwamem2 index file path and with run_picard_collecthsmetrics=false": { "content": [ @@ -100,25 +78,13 @@ ], "reference_fai": [ "reference.fasta.fai:md5,bf4047e05f95deb372eb8ffd601cbc29" - ], - "versions": [ - { - "PREPARE_GENOME:SAMTOOLS_FAIDX": { - "samtools": "1.22.1" - } - }, - { - "PREPARE_GENOME:BWAMEM2_INDEX": { - "bwamem2": "2.2.1" - } - } ] } ], + "timestamp": "2026-02-19T12:11:58.258098906", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2025-12-15T12:47:55.989932088" + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } } } \ No newline at end of file diff --git a/subworkflows/local/qc_bam/tests/main.nf.test.snap b/subworkflows/local/qc_bam/tests/main.nf.test.snap index 16fd63af..e8bf25f2 100644 --- a/subworkflows/local/qc_bam/tests/main.nf.test.snap +++ b/subworkflows/local/qc_bam/tests/main.nf.test.snap @@ -10,21 +10,14 @@ "earlycasualcaiman.CollectMultipleMetrics.quality_by_cycle_metrics", "earlycasualcaiman.CollectMultipleMetrics.quality_distribution_metrics" ] - ], - "versions": [ - { - "QC_BAM:PICARD_COLLECTMULTIPLEMETRICS": { - "picard": "3.4.0" - } - } ] } ], + "timestamp": "2026-02-19T12:13:55.371999049", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2025-12-15T13:01:33.166952245" + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } }, "Test with run_picard_collecthsmetrics=true": { "content": [ @@ -40,25 +33,13 @@ "earlycasualcaiman.CollectMultipleMetrics.quality_by_cycle_metrics", "earlycasualcaiman.CollectMultipleMetrics.quality_distribution_metrics" ] - ], - "versions": [ - { - "QC_BAM:PICARD_COLLECTMULTIPLEMETRICS": { - "picard": "3.4.0" - } - }, - { - "QC_BAM:PICARD_COLLECTHSMETRICS": { - "picard": "3.4.0" - } - } ] } ], + "timestamp": "2026-02-19T12:15:28.332477673", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.2" - }, - "timestamp": "2025-12-15T13:02:46.733316125" + "nf-test": "0.9.4", + "nextflow": "25.10.4" + } } } \ No newline at end of file From e5c40d06377881f7668ca27d3ca0fbd0ef65f41d Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 13:44:00 +0100 Subject: [PATCH 3/7] fix conda setup --- .github/actions/nf-test/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index 3b9724c7..356bc683 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -52,7 +52,7 @@ runs: with: auto-update-conda: true conda-solver: libmamba - channels: conda-forge + channels: conda-forge,bioconda channel-priority: strict conda-remove-defaults: true From 713a7c96cfa0267fa6da20dfeb7d41984347c5dd Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 16:40:24 +0100 Subject: [PATCH 4/7] update more modules --- CHANGELOG.md | 2 + README.md | 14 ++++ modules.json | 9 ++- modules/nf-core/bwamem2/mem/main.nf | 51 ++++++------- modules/nf-core/bwamem2/mem/meta.yml | 19 +++++ .../buildfromindex/environment.yml | 3 +- .../fastqscreen-buildfromindex.diff | 72 ------------------- .../fastqscreen/buildfromindex/main.nf | 2 +- .../fastqscreen/buildfromindex/meta.yml | 32 ++++++--- .../fastqscreen/fastqscreen-fastqscreen.diff | 69 +++--------------- .../nf-core/fastqscreen/fastqscreen/main.nf | 4 +- .../nf-core/fastqscreen/fastqscreen/meta.yml | 26 +++++-- ro-crate-metadata.json | 60 ++++++++-------- tests/MiSeq.nf.test.snap | 15 ++-- tests/NovaSeq6000.nf.test.snap | 25 ++++--- 15 files changed, 178 insertions(+), 225 deletions(-) delete mode 100644 modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index 91065c5f..e2899eb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ Initial release of nf-core/seqinspector, created with the [nf-core](https://nf-c - [#172](https://github.com/nf-core/seqinspector/pull/172) More complete conda environment for rundir parser - [#173](https://github.com/nf-core/seqinspector/pull/173) Fix warning message for tag name collision - [#174](https://github.com/nf-core/seqinspector/pull/174) Fix null message when no rundir information is available +- [#175](https://github.com/nf-core/seqinspector/pull/175) Fix conda setup in CI ### `Changed` @@ -79,6 +80,7 @@ Initial release of nf-core/seqinspector, created with the [nf-core](https://nf-c - [#174](https://github.com/nf-core/seqinspector/pull/174) Refactor tests - [#174](https://github.com/nf-core/seqinspector/pull/174) More strict syntax - [#174](https://github.com/nf-core/seqinspector/pull/174) No params included in workflows +- [#175](https://github.com/nf-core/seqinspector/pull/175) Update all modules ### `Dependencies` diff --git a/README.md b/README.md index 6add6b59..9c3da5b4 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,20 @@ If provided, nf-core/seqinspector can also parse statistics from an Illumina run Fallback image description +### Summary of tools and version used in the pipeline + +| Tool | Version | +| ----------- | ------- | +| bowtie2 | 2.5.4 | +| bwamem2 | 2.3 | +| fastqc | 0.12.1 | +| fastqscreen | 0.16.0 | +| multiqc | 1.33 | +| picard | 3.4.0 | +| samtools | 1.22.1 | +| seqfu | 1.22.3 | +| seqtk | 1.4 | + ## Usage > [!NOTE] diff --git a/modules.json b/modules.json index 1e9c679a..512fb49e 100644 --- a/modules.json +++ b/modules.json @@ -17,7 +17,7 @@ }, "bwamem2/mem": { "branch": "master", - "git_sha": "5dd46a36fca68d6ad1a6b22ec47adc8c6863717d", + "git_sha": "8325a8155a77a336a613a504b8e4d6cea7a2344a", "installed_by": ["modules"], "patch": "modules/nf-core/bwamem2/mem/bwamem2-mem.diff" }, @@ -28,13 +28,12 @@ }, "fastqscreen/buildfromindex": { "branch": "master", - "git_sha": "5e748ff2b0f990949081c9e49792622eb3fe9ee9", - "installed_by": ["modules"], - "patch": "modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff" + "git_sha": "ab2e7b785ee4fa6d108472862edbf983cea7db49", + "installed_by": ["modules"] }, "fastqscreen/fastqscreen": { "branch": "master", - "git_sha": "5e748ff2b0f990949081c9e49792622eb3fe9ee9", + "git_sha": "ab2e7b785ee4fa6d108472862edbf983cea7db49", "installed_by": ["modules"], "patch": "modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff" }, diff --git a/modules/nf-core/bwamem2/mem/main.nf b/modules/nf-core/bwamem2/mem/main.nf index d9d7c63a..b8ac263b 100644 --- a/modules/nf-core/bwamem2/mem/main.nf +++ b/modules/nf-core/bwamem2/mem/main.nf @@ -1,25 +1,26 @@ process BWAMEM2_MEM { - tag "$meta.id" - label 'process_low' + tag "${meta.id}" + label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e0/e05ce34b46ad42810eb29f74e4e304c0cb592b2ca15572929ed8bbaee58faf01/data' : - 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:db98f81f55b64113' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e0/e05ce34b46ad42810eb29f74e4e304c0cb592b2ca15572929ed8bbaee58faf01/data' + : 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:db98f81f55b64113'}" input: tuple val(meta), path(reads) tuple val(meta2), path(index) tuple val(meta3), path(fasta) - val sort_bam + val sort_bam output: - tuple val(meta), path("*.sam") , emit: sam , optional:true - tuple val(meta), path("*.bam") , emit: bam , optional:true - tuple val(meta), path("*.cram") , emit: cram, optional:true - tuple val(meta), path("*.crai") , emit: crai, optional:true - tuple val(meta), path("*.csi") , emit: csi , optional:true + tuple val(meta), path("*.sam"), emit: sam, optional: true + tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*.cram"), emit: cram, optional: true + tuple val(meta), path("*.crai"), emit: crai, optional: true + tuple val(meta), path("*.csi"), emit: csi, optional: true tuple val("${task.process}"), val('bwamem2'), eval('bwa-mem2 version | grep -o -E "[0-9]+(\\.[0-9]+)+"'), emit: versions_bwamem2, topic: versions + tuple val("${task.process}"), val('samtools'), eval("samtools version | sed '1!d;s/.* //'"), emit: versions_samtools, topic: versions when: task.ext.when == null || task.ext.when @@ -31,39 +32,41 @@ process BWAMEM2_MEM { def samtools_command = sort_bam ? 'sort' : 'view' def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/ - def extension_matcher = (args2 =~ extension_pattern) + def extension_matcher = (args2 =~ extension_pattern) def extension = extension_matcher.getCount() > 0 ? extension_matcher[0][2].toLowerCase() : "bam" - def reference = fasta && extension=="cram" ? "--reference ${fasta}" : "" - if (!fasta && extension=="cram") error "Fasta reference is required for CRAM output" - + def reference = fasta && extension == "cram" ? "--reference ${fasta}" : "" + if (!fasta && extension == "cram") { + error("Fasta reference is required for CRAM output") + } """ INDEX=`find -L ./ -name "*.amb" | sed 's/\\.amb\$//'` bwa-mem2 \\ mem \\ - $args \\ - -t $task.cpus \\ + ${args} \\ + -t ${task.cpus} \\ \$INDEX \\ - $reads \\ - | samtools $samtools_command $args2 -@ $task.cpus ${reference} -o ${prefix}.${extension} - + ${reads} \\ + | samtools ${samtools_command} ${args2} -@ ${task.cpus} ${reference} -o ${prefix}.${extension} - """ stub: - def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/ - def extension_matcher = (args2 =~ extension_pattern) + def extension_matcher = (args2 =~ extension_pattern) def extension = extension_matcher.getCount() > 0 ? extension_matcher[0][2].toLowerCase() : "bam" - if (!fasta && extension=="cram") error "Fasta reference is required for CRAM output" + if (!fasta && extension == "cram") { + error("Fasta reference is required for CRAM output") + } def create_index = "" if (extension == "cram") { create_index = "touch ${prefix}.crai" - } else if (extension == "bam") { + } + else if (extension == "bam") { create_index = "touch ${prefix}.csi" } - """ touch ${prefix}.${extension} ${create_index} diff --git a/modules/nf-core/bwamem2/mem/meta.yml b/modules/nf-core/bwamem2/mem/meta.yml index bcfd006d..a60d6788 100644 --- a/modules/nf-core/bwamem2/mem/meta.yml +++ b/modules/nf-core/bwamem2/mem/meta.yml @@ -129,6 +129,16 @@ output: - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": type: eval description: The expression to obtain the version of the tool + versions_samtools: + - - ${task.process}: + type: string + description: The name of the process + - samtools: + type: string + description: The name of the tool + - samtools version | sed '1!d;s/.* //': + type: eval + description: The expression to obtain the version of the tool topics: versions: - - ${task.process}: @@ -140,6 +150,15 @@ topics: - bwa-mem2 version | grep -o -E "[0-9]+(\.[0-9]+)+": type: eval description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - samtools: + type: string + description: The name of the tool + - samtools version | sed '1!d;s/.* //': + type: eval + description: The expression to obtain the version of the tool authors: - "@maxulysse" - "@matthdsm" diff --git a/modules/nf-core/fastqscreen/buildfromindex/environment.yml b/modules/nf-core/fastqscreen/buildfromindex/environment.yml index 3b3ba521..9ff968c9 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/environment.yml +++ b/modules/nf-core/fastqscreen/buildfromindex/environment.yml @@ -4,4 +4,5 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::fastq-screen=0.15.3 + - bioconda::fastq-screen=0.16.0 + - bioconda::perl-gdgraph=1.54 diff --git a/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff b/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff deleted file mode 100644 index 4d76340f..00000000 --- a/modules/nf-core/fastqscreen/buildfromindex/fastqscreen-buildfromindex.diff +++ /dev/null @@ -1,72 +0,0 @@ -Changes in component 'nf-core/fastqscreen/buildfromindex' -'modules/nf-core/fastqscreen/buildfromindex/meta.yml' is unchanged -'modules/nf-core/fastqscreen/buildfromindex/environment.yml' is unchanged -Changes in 'fastqscreen/buildfromindex/main.nf': ---- modules/nf-core/fastqscreen/buildfromindex/main.nf -+++ modules/nf-core/fastqscreen/buildfromindex/main.nf -@@ -2,17 +2,17 @@ - label 'process_single' - - conda "${moduleDir}/environment.yml" -- container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? -- 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0': -- 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" -+ container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container -+ ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' -+ : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" - - input: -- val(genome_names) -- path(indexes), stageAs: "dir*" -+ val genome_names -+ path (indexes), stageAs: "dir*" - - output: -- path("FastQ_Screen_Genomes"), emit: database -- path "versions.yml" , emit: versions -+ path ("FastQ_Screen_Genomes"), emit: database -+ tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions - - when: - task.ext.when == null || task.ext.when -@@ -21,11 +21,11 @@ - dir = "FastQ_Screen_Genomes" - folder = indexes.collect { index -> index.toString() } - database = [genome_names, folder].transpose() -- copy_indexes = folder.collect { index -> "cp -r ${index} ${dir}/${index}"}.join(" && ") -+ copy_indexes = folder.collect { index -> "cp -r ${index} ${dir}/${index}" }.join(" && ") - - // Folder name and index (within folder) name could be different - use bash to look for index name - config = database -- .collect { index -> "########## ${index[0]} \nDATABASE ${index[0]} $dir/${index[1]}/${index[1] + '_to_be_replaced'}" } -+ .collect { index -> "########## ${index[0]} \nDATABASE ${index[0]} ${dir}/${index[1]}/${index[1] + '_to_be_replaced'}" } - .join("\n\n") - .replace("\n", "\\n") - -@@ -48,11 +48,6 @@ - sed "s/\$TO_REPLACE/\$REPLACE_WITH/g" ${dir}/fastq_screen.conf > new_conf.conf - mv new_conf.conf ${dir}/fastq_screen.conf - done -- -- cat <<-END_VERSIONS > versions.yml -- "${task.process}": -- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') -- END_VERSIONS - """ - - stub: -@@ -60,10 +55,5 @@ - """ - mkdir ${dir} - touch ${dir}/fastq_screen.conf -- -- cat <<-END_VERSIONS > versions.yml -- "${task.process}": -- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') -- END_VERSIONS - """ - } - -'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test' is unchanged -'modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap' is unchanged -************************************************************ diff --git a/modules/nf-core/fastqscreen/buildfromindex/main.nf b/modules/nf-core/fastqscreen/buildfromindex/main.nf index 125f8178..c543e61b 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/main.nf +++ b/modules/nf-core/fastqscreen/buildfromindex/main.nf @@ -12,7 +12,7 @@ process FASTQSCREEN_BUILDFROMINDEX { output: path ("FastQ_Screen_Genomes"), emit: database - tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions + tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/fastqscreen/buildfromindex/meta.yml b/modules/nf-core/fastqscreen/buildfromindex/meta.yml index 0291620b..62561b2e 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/meta.yml +++ b/modules/nf-core/fastqscreen/buildfromindex/meta.yml @@ -14,7 +14,8 @@ tools: documentation: "https://stevenwingett.github.io/FastQ-Screen/" tool_dev_url: "https://github.com/StevenWingett/FastQ-Screen/archive/refs/tags/v0.15.3.zip" doi: "10.5281/zenodo.5838377" - licence: ["GPL-3.0-or-later"] + licence: + - "GPL-3.0-or-later" identifier: "" input: - genome_names: @@ -27,15 +28,30 @@ output: database: - FastQ_Screen_Genomes: type: directory - description: fastq screen database folder containing config file and index folders + description: fastq screen database folder containing config file and index + folders pattern: "FastQ_Screen_Genomes" + versions_fastqscreen: + - - ${task.process}: + type: string + description: The name of the process + - fastqscreen: + type: string + description: The name of the tool + - fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;": + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - fastqscreen: + type: string + description: The name of the tool + - fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;": + type: eval + description: The expression to obtain the version of the tool authors: - "@snesic" - "@JPejovicApis" diff --git a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff index 0a809b3b..f75616f0 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff +++ b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff @@ -1,51 +1,21 @@ Changes in component 'nf-core/fastqscreen/fastqscreen' 'modules/nf-core/fastqscreen/fastqscreen/meta.yml' is unchanged -Changes in 'fastqscreen/fastqscreen/environment.yml': ---- modules/nf-core/fastqscreen/fastqscreen/environment.yml -+++ modules/nf-core/fastqscreen/fastqscreen/environment.yml -@@ -4,5 +4,5 @@ - - conda-forge - - bioconda - dependencies: -- - bioconda::fastq-screen=0.15.3 -+ - bioconda::fastq-screen=0.16.0 - - bioconda::perl-gdgraph=1.54 - +'modules/nf-core/fastqscreen/fastqscreen/environment.yml' is unchanged Changes in 'fastqscreen/fastqscreen/main.nf': --- modules/nf-core/fastqscreen/fastqscreen/main.nf +++ modules/nf-core/fastqscreen/fastqscreen/main.nf -@@ -1,51 +1,61 @@ - process FASTQSCREEN_FASTQSCREEN { -- tag "$meta.id" -+ tag "${meta.id}" - label 'process_medium' - - conda "${moduleDir}/environment.yml" -- container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? -- 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0': -- 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" -+ container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container -+ ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' -+ : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" +@@ -8,8 +8,8 @@ + : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" input: -- tuple val(meta), path(reads) // .fastq files +- tuple val(meta), path(reads) - path database + tuple val(meta), path(reads, arity: '1..2') + tuple val(ref_names), path(ref_dirs, name: "ref*"), val(ref_basenames), val(ref_aligners) output: -- tuple val(meta), path("*.txt") , emit: txt -- tuple val(meta), path("*.png") , emit: png , optional: true -- tuple val(meta), path("*.html") , emit: html -+ tuple val(meta), path("*.txt"), emit: txt -+ tuple val(meta), path("*.png"), emit: png, optional: true -+ tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true -- path "versions.yml" , emit: versions -+ tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions - - when: + tuple val(meta), path("*.txt"), emit: txt +@@ -22,13 +22,33 @@ task.ext.when == null || task.ext.when script: @@ -69,40 +39,19 @@ Changes in 'fastqscreen/fastqscreen/main.nf': """ - fastq_screen --threads ${task.cpus} \\ - --conf ${database}/fastq_screen.conf \\ -- $reads \\ -- $args \\ + echo '${config_content}' > fastq_screen.conf - -- cat <<-END_VERSIONS > versions.yml -- "${task.process}": -- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') -- END_VERSIONS ++ + fastq_screen \\ + --conf fastq_screen.conf \\ + --threads ${task.cpus} \\ -+ ${reads} \\ + ${reads} \\ +- ${args} \\ + ${args} + + ${mv_cmd} """ stub: -+ def prefix = task.ext.prefix ?: "${meta.id}" - """ -- touch test_1_screen.html -- touch test_1_screen.png -- touch test_1_screen.txt -- -- cat <<-END_VERSIONS > versions.yml -- "${task.process}": -- fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') -- END_VERSIONS -+ touch ${prefix}_screen.html -+ touch ${prefix}_screen.png -+ touch ${prefix}_screen.txt - """ -- - } 'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test' is unchanged 'modules/nf-core/fastqscreen/fastqscreen/tests/nextflow.config' is unchanged diff --git a/modules/nf-core/fastqscreen/fastqscreen/main.nf b/modules/nf-core/fastqscreen/fastqscreen/main.nf index fc5ccc7e..cc5c0fa7 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/main.nf +++ b/modules/nf-core/fastqscreen/fastqscreen/main.nf @@ -16,7 +16,7 @@ process FASTQSCREEN_FASTQSCREEN { tuple val(meta), path("*.png"), emit: png, optional: true tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true - tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//; s/ .*\\$//"'), emit: versions_fastqscreen, topic: versions + tuple val("${task.process}"), val('fastqscreen'), eval('fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;"'), emit: versions_fastqscreen, topic: versions when: task.ext.when == null || task.ext.when @@ -52,7 +52,7 @@ process FASTQSCREEN_FASTQSCREEN { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + def prefix = task.ext.prefix ?: meta.id """ touch ${prefix}_screen.html touch ${prefix}_screen.png diff --git a/modules/nf-core/fastqscreen/fastqscreen/meta.yml b/modules/nf-core/fastqscreen/fastqscreen/meta.yml index 81e15b02..f8d7e0ab 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/meta.yml +++ b/modules/nf-core/fastqscreen/fastqscreen/meta.yml @@ -74,13 +74,27 @@ output: pattern: "*.fastq.gz" ontologies: - edam: http://edamontology.org/format_3989 # GZIP format + versions_fastqscreen: + - - ${task.process}: + type: string + description: The name of the process + - fastqscreen: + type: string + description: The name of the tool + - fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;": + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - fastqscreen: + type: string + description: The name of the tool + - fastq_screen --version 2>&1 | sed "s/^.*FastQ Screen v//;": + type: eval + description: The expression to obtain the version of the tool authors: - "@snesic" - "@JPejovicApis" diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 6c0c4e85..32c34943 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,8 +22,8 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2026-02-16T08:55:13+00:00", - "description": "

\n \n \n \"nf-core/seqinspector\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqinspector)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqinspector/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqinspector)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqinspector** is a bioinformatics pipeline that processes raw sequence data (FASTQ) to provide comprehensive quality control.\nIt can perform subsampling, quality assessment, duplication level analysis, and complexity evaluation on a per-sample basis, while also detecting adapter content, technical artifacts, and common biological contaminants.\nThe pipeline generates detailed MultiQC reports with flexible output options, ranging from individual sample reports to project-wide summaries, making it particularly useful for sequencing core facilities and research groups with access to sequencing instruments.\nIf provided, nf-core/seqinspector can also parse statistics from an Illumina run folder directory into the final MultiQC reports.\n\n### Compatibility between tools and data type\n\n\n\n| Tool Type | Tool Name | Tool Description | Compatibility with Data | Dependencies | Default tool |\n| ------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------ |\n| `Subsampling` | [`Seqtk`](https://github.com/lh3/seqtk) | Global subsampling of reads. Only performs subsampling if `--sample_size` parameter is given. | [RNA, DNA, synthetic] | [N/A] | no |\n| `Indexing, Mapping` | [`Bwamem2`](https://github.com/bwa-mem2/bwa-mem2) | Align reads to reference | [RNA, DNA] | [N/A] | yes |\n| `Indexing` | [`SAMtools`](http://github.com/samtools) | Index aligned BAM files, create FASTA index | [DNA] | [N/A] | yes |\n| `QC` | [`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) | Read QC | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`FastqScreen`](https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen/) | Basic contamination detection | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`SeqFu Stats`](https://github.com/telatin/seqfu2) | Sequence statistics | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`Picard collect multiple metrics`](https://broadinstitute.github.io/picard/picard-metric-definitions.html) | Collect multiple QC metrics | [RNA, DNA] | [Bwamem2, SAMtools, `--genome`] | yes |\n| `QC` | [`Picard_collecthsmetrics`](https://gatk.broadinstitute.org/hc/en-us/articles/360036856051-CollectHsMetrics-Picard) | Collect alignment QC metrics of hybrid-selection data. | [RNA, DNA] | [Bwamem2, SAMtools, `--fasta`, `--run_picard_collecths_metrics`, `--bait_intervals`, `--target_intervals` (`--ref_dict`)] | no |\n| `Reporting` | [`MultiQC`](http://multiqc.info/) | Present QC for raw reads | [RNA, DNA, synthetic] | [N/A] | yes |\n\n### Workflow diagram\n\n\n \n \n \"Fallback\n\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n`samplesheet.csv`:\n\n```csv\nsample,fastq_1,fastq_2,rundir,tags\nCONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,200624_A00834_0183_BHMTFYDRXX,lane1:project5:group2\n```\n\nEach row represents a fastq file (single-end with only `fastq_1`) or a pair of fastq files (paired end with `fastq_1` and `fastq_2`).\n`rundir` is the path to the runfolder.\n`tags` is a colon-separated list of tags that will be added to the MultiQC report for this `sample`.\n\nNow, you can run the pipeline using:\n\n```bash\nnextflow run nf-core/seqinspector \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqinspector/usage) and the [parameter documentation](https://nf-co.re/seqinspector/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/seqinspector/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/seqinspector/output).\n\n## Credits\n\nnf-core/seqinspector was originally written by [@agrima2010](https://github.com/agrima2010), [@Aratz](https://github.com/Aratz), [@FranBonath](https://github.com/FranBonath), [@kedhammar](https://github.com/kedhammar), and [@MatthiasZepper](https://github.com/MatthiasZepper) from the Swedish [National Genomics Infrastructure](https://github.com/NationalGenomicsInfrastructure/) and [Clinical Genomics Stockholm](https://clinical.scilifelab.se/).\n\nMaintenance is now lead by Maxime U Garcia ([National Genomics Infrastructure](https://github.com/NationalGenomicsInfrastructure/))\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n- [@adamrtalbot](https://github.com/adamrtalbot)\n- [@alneberg](https://github.com/alneberg)\n- [@beatrizsavinhas](https://github.com/beatrizsavinhas)\n- [@ctuni](https://github.com/ctuni)\n- [@edmundmiller](https://github.com/edmundmiller)\n- [@EliottBo](https://github.com/EliottBo)\n- [@KarNair](https://github.com/KarNair)\n- [@kjellinjonas](https://github.com/kjellinjonas)\n- [@mahesh-panchal](https://github.com/mahesh-panchal)\n- [@matrulda](https://github.com/matrulda)\n- [@mirpedrol](https://github.com/mirpedrol)\n- [@nggvs](https://github.com/nggvs)\n- [@nkongenelly](https://github.com/nkongenelly)\n- [@Patricie34](https://github.com/Patricie34)\n- [@pontushojer](https://github.com/pontushojer)\n- [@ramprasadn](https://github.com/ramprasadn)\n- [@rannick](https://github.com/rannick)\n- [@torigiffin](https://github.com/torigiffin)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqinspector` channel](https://nfcore.slack.com/channels/seqinspector) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "datePublished": "2026-02-19T15:27:56+00:00", + "description": "

\n \n \n \"nf-core/seqinspector\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqinspector)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqinspector/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqinspector)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqinspector** is a bioinformatics pipeline that processes raw sequence data (FASTQ) to provide comprehensive quality control.\nIt can perform subsampling, quality assessment, duplication level analysis, and complexity evaluation on a per-sample basis, while also detecting adapter content, technical artifacts, and common biological contaminants.\nThe pipeline generates detailed MultiQC reports with flexible output options, ranging from individual sample reports to project-wide summaries, making it particularly useful for sequencing core facilities and research groups with access to sequencing instruments.\nIf provided, nf-core/seqinspector can also parse statistics from an Illumina run folder directory into the final MultiQC reports.\n\n### Compatibility between tools and data type\n\n\n\n| Tool Type | Tool Name | Tool Description | Compatibility with Data | Dependencies | Default tool |\n| ------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------ |\n| `Subsampling` | [`Seqtk`](https://github.com/lh3/seqtk) | Global subsampling of reads. Only performs subsampling if `--sample_size` parameter is given. | [RNA, DNA, synthetic] | [N/A] | no |\n| `Indexing, Mapping` | [`Bwamem2`](https://github.com/bwa-mem2/bwa-mem2) | Align reads to reference | [RNA, DNA] | [N/A] | yes |\n| `Indexing` | [`SAMtools`](http://github.com/samtools) | Index aligned BAM files, create FASTA index | [DNA] | [N/A] | yes |\n| `QC` | [`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) | Read QC | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`FastqScreen`](https://www.bioinformatics.babraham.ac.uk/projects/fastq_screen/) | Basic contamination detection | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`SeqFu Stats`](https://github.com/telatin/seqfu2) | Sequence statistics | [RNA, DNA] | [N/A] | yes |\n| `QC` | [`Picard collect multiple metrics`](https://broadinstitute.github.io/picard/picard-metric-definitions.html) | Collect multiple QC metrics | [RNA, DNA] | [Bwamem2, SAMtools, `--genome`] | yes |\n| `QC` | [`Picard_collecthsmetrics`](https://gatk.broadinstitute.org/hc/en-us/articles/360036856051-CollectHsMetrics-Picard) | Collect alignment QC metrics of hybrid-selection data. | [RNA, DNA] | [Bwamem2, SAMtools, `--fasta`, `--run_picard_collecths_metrics`, `--bait_intervals`, `--target_intervals` (`--ref_dict`)] | no |\n| `Reporting` | [`MultiQC`](http://multiqc.info/) | Present QC for raw reads | [RNA, DNA, synthetic] | [N/A] | yes |\n\n### Workflow diagram\n\n\n \n \n \"Fallback\n\n\n### Summary of tools and version used in the pipeline\n\n| Tool | Version |\n| ----------- | ------- |\n| bowtie2 | 2.5.4 |\n| bwamem2 | 2.3 |\n| fastqc | 0.12.1 |\n| fastqscreen | 0.16.0 |\n| multiqc | 1.33 |\n| picard | 3.4.0 |\n| samtools | 1.22.1 |\n| seqfu | 1.22.3 |\n| seqtk | 1.4 |\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n`samplesheet.csv`:\n\n```csv\nsample,fastq_1,fastq_2,rundir,tags\nCONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,200624_A00834_0183_BHMTFYDRXX,lane1:project5:group2\n```\n\nEach row represents a fastq file (single-end with only `fastq_1`) or a pair of fastq files (paired end with `fastq_1` and `fastq_2`).\n`rundir` is the path to the runfolder.\n`tags` is a colon-separated list of tags that will be added to the MultiQC report for this `sample`.\n\nNow, you can run the pipeline using:\n\n```bash\nnextflow run nf-core/seqinspector \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqinspector/usage) and the [parameter documentation](https://nf-co.re/seqinspector/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/seqinspector/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/seqinspector/output).\n\n## Credits\n\nnf-core/seqinspector was originally written by [@agrima2010](https://github.com/agrima2010), [@Aratz](https://github.com/Aratz), [@FranBonath](https://github.com/FranBonath), [@kedhammar](https://github.com/kedhammar), and [@MatthiasZepper](https://github.com/MatthiasZepper) from the Swedish [National Genomics Infrastructure](https://github.com/NationalGenomicsInfrastructure/) and [Clinical Genomics Stockholm](https://clinical.scilifelab.se/).\n\nMaintenance is now lead by Maxime U Garcia ([National Genomics Infrastructure](https://github.com/NationalGenomicsInfrastructure/))\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n- [@adamrtalbot](https://github.com/adamrtalbot)\n- [@alneberg](https://github.com/alneberg)\n- [@beatrizsavinhas](https://github.com/beatrizsavinhas)\n- [@ctuni](https://github.com/ctuni)\n- [@edmundmiller](https://github.com/edmundmiller)\n- [@EliottBo](https://github.com/EliottBo)\n- [@KarNair](https://github.com/KarNair)\n- [@kjellinjonas](https://github.com/kjellinjonas)\n- [@mahesh-panchal](https://github.com/mahesh-panchal)\n- [@matrulda](https://github.com/matrulda)\n- [@mirpedrol](https://github.com/mirpedrol)\n- [@nggvs](https://github.com/nggvs)\n- [@nkongenelly](https://github.com/nkongenelly)\n- [@Patricie34](https://github.com/Patricie34)\n- [@pontushojer](https://github.com/pontushojer)\n- [@ramprasadn](https://github.com/ramprasadn)\n- [@rannick](https://github.com/rannick)\n- [@torigiffin](https://github.com/torigiffin)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqinspector` channel](https://nfcore.slack.com/channels/seqinspector) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" @@ -102,7 +102,7 @@ }, "mentions": [ { - "@id": "#08014bc0-7c74-49f0-a201-fcc18504ce2b" + "@id": "#4194f54b-797e-4fc8-8f8a-d74016164630" } ], "name": "nf-core/seqinspector" @@ -131,23 +131,23 @@ ], "creator": [ { - "@id": "#max.u.garcia@gmail.com" + "@id": "https://orcid.org/0009-0004-5536-7210" }, { - "@id": "https://orcid.org/0000-0003-2702-1103" + "@id": "#89784800+kedhammar@users.noreply.github.com" }, { - "@id": "#89784800+kedhammar@users.noreply.github.com" + "@id": "#max.u.garcia@gmail.com" }, { - "@id": "https://orcid.org/0000-0003-1675-0677" + "@id": "https://orcid.org/0000-0003-2702-1103" }, { - "@id": "https://orcid.org/0009-0004-5536-7210" + "@id": "https://orcid.org/0000-0003-1675-0677" } ], "dateCreated": "", - "dateModified": "2026-02-16T09:55:13Z", + "dateModified": "2026-02-19T16:27:56Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": [ "nf-core", @@ -160,19 +160,19 @@ ], "maintainer": [ { - "@id": "#max.u.garcia@gmail.com" + "@id": "https://orcid.org/0009-0004-5536-7210" }, { - "@id": "https://orcid.org/0000-0003-2702-1103" + "@id": "#89784800+kedhammar@users.noreply.github.com" }, { - "@id": "#89784800+kedhammar@users.noreply.github.com" + "@id": "#max.u.garcia@gmail.com" }, { - "@id": "https://orcid.org/0000-0003-1675-0677" + "@id": "https://orcid.org/0000-0003-2702-1103" }, { - "@id": "https://orcid.org/0009-0004-5536-7210" + "@id": "https://orcid.org/0000-0003-1675-0677" } ], "name": [ @@ -202,14 +202,14 @@ "url": { "@id": "https://www.nextflow.io/" }, - "version": "!>=25.04.0" + "version": "!>=25.10.4" }, { - "@id": "#08014bc0-7c74-49f0-a201-fcc18504ce2b", + "@id": "#4194f54b-797e-4fc8-8f8a-d74016164630", "@type": "TestSuite", "instance": [ { - "@id": "#c3eeced1-9e95-4a6c-932f-c4ceae1158d2" + "@id": "#3c0042e5-6160-451c-8f37-2395b6ebc082" } ], "mainEntity": { @@ -218,7 +218,7 @@ "name": "Test suite for nf-core/seqinspector" }, { - "@id": "#c3eeced1-9e95-4a6c-932f-c4ceae1158d2", + "@id": "#3c0042e5-6160-451c-8f37-2395b6ebc082", "@type": "TestInstance", "name": "GitHub Actions workflow for testing nf-core/seqinspector", "resource": "repos/nf-core/seqinspector/actions/workflows/nf-test.yml", @@ -351,6 +351,18 @@ "name": "nf-core", "url": "https://nf-co.re/" }, + { + "@id": "https://orcid.org/0009-0004-5536-7210", + "@type": "Person", + "email": "163723002+agrima2010@users.noreply.github.com", + "name": "Agrima Bhatt" + }, + { + "@id": "#89784800+kedhammar@users.noreply.github.com", + "@type": "Person", + "email": "89784800+kedhammar@users.noreply.github.com", + "name": "Alfred Kedhammar" + }, { "@id": "#max.u.garcia@gmail.com", "@type": "Person", @@ -363,23 +375,11 @@ "email": "adrien.coulier@medsci.uu.se", "name": "Adrien Coulier" }, - { - "@id": "#89784800+kedhammar@users.noreply.github.com", - "@type": "Person", - "email": "89784800+kedhammar@users.noreply.github.com", - "name": "Alfred Kedhammar" - }, { "@id": "https://orcid.org/0000-0003-1675-0677", "@type": "Person", "email": "mahesh.binzer-panchal@nbis.se", "name": "Mahesh Binzer-Panchal" - }, - { - "@id": "https://orcid.org/0009-0004-5536-7210", - "@type": "Person", - "email": "163723002+agrima2010@users.noreply.github.com", - "name": "Agrima Bhatt" } ] } \ No newline at end of file diff --git a/tests/MiSeq.nf.test.snap b/tests/MiSeq.nf.test.snap index e2a56146..7339c9d5 100644 --- a/tests/MiSeq.nf.test.snap +++ b/tests/MiSeq.nf.test.snap @@ -45,7 +45,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -268,7 +269,7 @@ ], "No warnings" ], - "timestamp": "2026-02-19T11:24:33.205172672", + "timestamp": "2026-02-19T16:04:51.402781572", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -282,7 +283,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -701,7 +703,7 @@ "WARN: Tag name collision: [Bpacificus]" ] ], - "timestamp": "2026-02-19T11:26:40.474656064", + "timestamp": "2026-02-19T16:07:01.63849991", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -715,7 +717,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" @@ -877,7 +880,7 @@ ], "No warnings" ], - "timestamp": "2026-02-19T11:25:19.283756126", + "timestamp": "2026-02-19T16:05:40.254319275", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/tests/NovaSeq6000.nf.test.snap b/tests/NovaSeq6000.nf.test.snap index 63a1f1de..7d90acba 100644 --- a/tests/NovaSeq6000.nf.test.snap +++ b/tests/NovaSeq6000.nf.test.snap @@ -7,7 +7,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -1047,7 +1048,7 @@ "[NXF_HASH] Submitted process > NFCORE_SEQINSPECTOR:SEQINSPECTOR:SEQFU_STATS (seqfu)" ] ], - "timestamp": "2026-02-19T11:28:36.439362293", + "timestamp": "2026-02-19T16:08:17.233872508", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -1061,7 +1062,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -2045,7 +2047,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-19T11:34:26.071342016", + "timestamp": "2026-02-19T16:09:22.487870402", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -2059,7 +2061,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -3043,7 +3046,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-19T11:35:30.560451598", + "timestamp": "2026-02-19T16:10:37.885643273", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -3057,7 +3060,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -4001,7 +4005,7 @@ "WARN: Tag name collision: [test]" ] ], - "timestamp": "2026-02-19T11:30:44.123275575", + "timestamp": "2026-02-19T16:13:03.499762737", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" @@ -4015,7 +4019,8 @@ "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { - "bwamem2": "2.2.1" + "bwamem2": "2.2.1", + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -5004,7 +5009,7 @@ "WARN: sampletest_04: Requested sample_size (120) is larger than available reads (100). Pipeline will continue with 100 reads." ] ], - "timestamp": "2026-02-19T11:36:50.414225534", + "timestamp": "2026-02-19T16:11:52.597356515", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" From 117cb2e900ccf63f8e3acb16945b6885b9b3e6b6 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 16:48:38 +0100 Subject: [PATCH 5/7] no channel versions in qc_bam --- subworkflows/local/qc_bam/main.nf | 3 --- workflows/seqinspector.nf | 1 - 2 files changed, 4 deletions(-) diff --git a/subworkflows/local/qc_bam/main.nf b/subworkflows/local/qc_bam/main.nf index e2d06c54..68a4d9d9 100644 --- a/subworkflows/local/qc_bam/main.nf +++ b/subworkflows/local/qc_bam/main.nf @@ -17,10 +17,8 @@ workflow QC_BAM { ch_ref_dict // channel: [mandatory for picard_collecthsmetrics] [ val(meta), path(ref_dict) ] main: - ch_multiple_metrics = channel.empty() ch_hs_metrics = channel.empty() - ch_versions = channel.empty() ch_bam_bai = ch_bam.join(ch_bai, failOnDuplicate: true, failOnMismatch: true) @@ -52,5 +50,4 @@ workflow QC_BAM { emit: multiple_metrics = ch_multiple_metrics hs_metrics = ch_hs_metrics - versions = ch_versions } diff --git a/workflows/seqinspector.nf b/workflows/seqinspector.nf index 774311fa..787bc40d 100644 --- a/workflows/seqinspector.nf +++ b/workflows/seqinspector.nf @@ -217,7 +217,6 @@ workflow SEQINSPECTOR { ) ch_multiqc_files = ch_multiqc_files.mix(QC_BAM.out.multiple_metrics, QC_BAM.out.hs_metrics) - ch_versions = ch_versions.mix(QC_BAM.out.versions) } // Collate and save software versions From 41862e36d98a06265b12412897ac17056b474137 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Thu, 19 Feb 2026 16:52:41 +0100 Subject: [PATCH 6/7] no channel versions in qc_bam --- subworkflows/local/qc_bam/tests/main.nf.test | 6 ------ 1 file changed, 6 deletions(-) diff --git a/subworkflows/local/qc_bam/tests/main.nf.test b/subworkflows/local/qc_bam/tests/main.nf.test index 86605790..017dfa25 100644 --- a/subworkflows/local/qc_bam/tests/main.nf.test +++ b/subworkflows/local/qc_bam/tests/main.nf.test @@ -48,9 +48,6 @@ nextflow_workflow { println val[0][1] return [key, val.collect { it[1].collect{ file(it.toString()).name } } ] } - else if (key == "versions") { - return [key, val.collect { path(it).yaml }] - } return [key, val] }).match() } @@ -99,9 +96,6 @@ nextflow_workflow { println val[0][1] return [key, val.collect { it[1].collect{ file(it.toString()).name } } ] } - else if (key == "versions") { - return [key, val.collect { path(it).yaml }] - } return [key, val] }).match() } From 98dff340eba4c17fec5f1c6fd661c6684bf220ce Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 20 Feb 2026 13:05:06 +0100 Subject: [PATCH 7/7] update seqfu and picard --- CHANGELOG.md | 2 +- conf/modules.config | 31 +++++-------- main.nf | 1 - modules.json | 8 ++-- modules/nf-core/bwamem2/mem/bwamem2-mem.diff | 4 +- modules/nf-core/bwamem2/mem/main.nf | 2 +- .../nf-core/picard/collecthsmetrics/main.nf | 43 +++++++++---------- .../nf-core/picard/collecthsmetrics/meta.yml | 4 +- .../picard/collectmultiplemetrics/main.nf | 29 ++++++------- .../picard/collectmultiplemetrics/meta.yml | 4 +- .../picard/createsequencedictionary/main.nf | 34 ++++++--------- .../picard/createsequencedictionary/meta.yml | 26 ++++++++--- modules/nf-core/seqfu/stats/main.nf | 28 ++++-------- modules/nf-core/seqfu/stats/meta.yml | 37 ++++++++++------ subworkflows/local/prepare_genome/main.nf | 3 -- .../local/prepare_genome/tests/main.nf.test | 9 ---- .../prepare_genome/tests/main.nf.test.snap | 9 +--- workflows/seqinspector.nf | 7 +-- 18 files changed, 124 insertions(+), 157 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2899eb5..b511d1ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,7 +80,7 @@ Initial release of nf-core/seqinspector, created with the [nf-core](https://nf-c - [#174](https://github.com/nf-core/seqinspector/pull/174) Refactor tests - [#174](https://github.com/nf-core/seqinspector/pull/174) More strict syntax - [#174](https://github.com/nf-core/seqinspector/pull/174) No params included in workflows -- [#175](https://github.com/nf-core/seqinspector/pull/175) Update all modules +- [#175](https://github.com/nf-core/seqinspector/pull/175) Update all modules and migrate the whole pipeline to using topic versions ### `Dependencies` diff --git a/conf/modules.config b/conf/modules.config index a48d73ad..280b7b49 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -14,8 +14,7 @@ process { publishDir = [ path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] withName: 'SEQTK_SAMPLE' { @@ -31,47 +30,42 @@ process { publishDir = [ path: { "${params.outdir}/seqfu_stats" }, mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : "${meta.sample_id}_$filename" } + saveAs: { filename -> "${meta.sample_id}_${filename}" } ] } withName: 'BWAMEM2_INDEX' { publishDir = [ path: { "${params.outdir}/bwamem2_index" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } withName: 'PICARD_CREATESEQUENCEDICTIONARY' { publishDir = [ path: { "${params.outdir}/picard_createsequencedictionary" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } withName: 'BWAMEM2_MEM' { publishDir = [ path: { "${params.outdir}/bwamem2_mem" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } withName: 'PICARD_COLLECTMULTIPLEMETRICS' { publishDir = [ path: { "${params.outdir}/picard_collectmultiplemetrics" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } withName: 'PICARD_COLLECTHSMETRICS' { publishDir = [ path: { "${params.outdir}/picard_collecthsmetrics" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] ext.args = {"--TMP_DIR ."} } @@ -79,16 +73,14 @@ process { withName: 'SAMTOOLS_FAIDX' { publishDir = [ path: { "${params.outdir}/samtools_faidx" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } withName: 'SAMTOOLS_INDEX' { publishDir = [ path: { "${params.outdir}/bwamem2_mem" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } @@ -99,7 +91,7 @@ process { // The process _mqc.txt outputs should have identical names for the same sequencing platforms // in order to be grouped together in the MultiQC report, but here we need to enforce uniqueness // to avoid overwriting results in the publishDir. - saveAs: { filename -> "${meta.dirname}_$filename" } + saveAs: { filename -> "${meta.dirname}_${filename}" } ] } @@ -107,8 +99,7 @@ process { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ path: { "${params.outdir}/multiqc/global_report" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + mode: params.publish_dir_mode ] } diff --git a/main.nf b/main.nf index 595494a2..47460d4d 100644 --- a/main.nf +++ b/main.nf @@ -41,7 +41,6 @@ workflow NFCORE_SEQINSPECTOR { samplesheet // channel: samplesheet read in from --input main: - // // WORKFLOW: Run pipeline // diff --git a/modules.json b/modules.json index 512fb49e..b18b2a73 100644 --- a/modules.json +++ b/modules.json @@ -44,17 +44,17 @@ }, "picard/collecthsmetrics": { "branch": "master", - "git_sha": "976ed20e328a92cb24ab6c63a8983ed31bf48469", + "git_sha": "a631e12055f6c23ba2c942d3902b3ed1b9eed859", "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", - "git_sha": "74ec93d00bef147da3fb1f2262e8d31c14108f88", + "git_sha": "a631e12055f6c23ba2c942d3902b3ed1b9eed859", "installed_by": ["modules"] }, "picard/createsequencedictionary": { "branch": "master", - "git_sha": "df124e87c74d8b40285199f8cc20151f5aa57255", + "git_sha": "a631e12055f6c23ba2c942d3902b3ed1b9eed859", "installed_by": ["modules"] }, "samtools/faidx": { @@ -69,7 +69,7 @@ }, "seqfu/stats": { "branch": "master", - "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "git_sha": "6b81c03dc4465ac9351b293dc6caada2a5e7556c", "installed_by": ["modules"] }, "seqtk/sample": { diff --git a/modules/nf-core/bwamem2/mem/bwamem2-mem.diff b/modules/nf-core/bwamem2/mem/bwamem2-mem.diff index be5074e8..c9127f46 100644 --- a/modules/nf-core/bwamem2/mem/bwamem2-mem.diff +++ b/modules/nf-core/bwamem2/mem/bwamem2-mem.diff @@ -6,12 +6,12 @@ Changes in 'bwamem2/mem/main.nf': +++ modules/nf-core/bwamem2/mem/main.nf @@ -1,6 +1,6 @@ process BWAMEM2_MEM { - tag "$meta.id" + tag "${meta.id}" - label 'process_high' + label 'process_low' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container 'modules/nf-core/bwamem2/mem/tests/main.nf.test' is unchanged 'modules/nf-core/bwamem2/mem/tests/main.nf.test.snap' is unchanged diff --git a/modules/nf-core/bwamem2/mem/main.nf b/modules/nf-core/bwamem2/mem/main.nf index b8ac263b..92dfc72a 100644 --- a/modules/nf-core/bwamem2/mem/main.nf +++ b/modules/nf-core/bwamem2/mem/main.nf @@ -1,6 +1,6 @@ process BWAMEM2_MEM { tag "${meta.id}" - label 'process_high' + label 'process_low' conda "${moduleDir}/environment.yml" container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container diff --git a/modules/nf-core/picard/collecthsmetrics/main.nf b/modules/nf-core/picard/collecthsmetrics/main.nf index b13871f8..96045b5d 100644 --- a/modules/nf-core/picard/collecthsmetrics/main.nf +++ b/modules/nf-core/picard/collecthsmetrics/main.nf @@ -1,22 +1,22 @@ process PICARD_COLLECTHSMETRICS { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' : - 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' + : 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6'}" input: tuple val(meta), path(bam), path(bai), path(bait_intervals, stageAs: "baits/*"), path(target_intervals, stageAs: 'targets/*') tuple val(meta2), path(ref) tuple val(meta3), path(ref_fai) tuple val(meta4), path(ref_dict) - tuple val(meta5), path(ref_gzi) // ref_gzi only required if reference is gzipped + tuple val(meta5), path(ref_gzi) output: - tuple val(meta), path("*_metrics") , emit: metrics - tuple val("${task.process}"), val('picard'), eval("picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'"), topic: versions, emit: versions_picard + tuple val(meta), path("*_metrics"), emit: metrics + tuple val("${task.process}"), val('picard'), eval("picard CollectHsMetrics --version 2>&1 | sed -n 's/.*Version://p'"), topic: versions, emit: versions_picard when: task.ext.when == null || task.ext.when @@ -28,41 +28,38 @@ process PICARD_COLLECTHSMETRICS { def avail_mem = 3072 if (!task.memory) { - log.info '[Picard CollectHsMetrics] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' - } else { - avail_mem = (task.memory.mega*0.8).intValue() + log.info('[Picard CollectHsMetrics] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.') + } + else { + avail_mem = (task.memory.mega * 0.8).intValue() } def bait_interval_list = bait_intervals def bait_intervallist_cmd = "" - if (bait_intervals =~ /.(bed|bed.gz)$/){ + if (bait_intervals =~ /.(bed|bed.gz)$/) { bait_interval_list = bait_intervals.toString().replaceAll(/.(bed|bed.gz)$/, ".interval_list") bait_intervallist_cmd = "picard -Xmx${avail_mem}M BedToIntervalList --INPUT ${bait_intervals} --OUTPUT ${bait_interval_list} --SEQUENCE_DICTIONARY ${ref_dict} --TMP_DIR ." } def target_interval_list = target_intervals def target_intervallist_cmd = "" - if (target_intervals =~ /.(bed|bed.gz)$/){ + if (target_intervals =~ /.(bed|bed.gz)$/) { target_interval_list = target_intervals.toString().replaceAll(/.(bed|bed.gz)$/, ".interval_list") target_intervallist_cmd = "picard -Xmx${avail_mem}M BedToIntervalList --INPUT ${target_intervals} --OUTPUT ${target_interval_list} --SEQUENCE_DICTIONARY ${ref_dict} --TMP_DIR ." } - - """ - - $bait_intervallist_cmd - $target_intervallist_cmd + ${bait_intervallist_cmd} + ${target_intervallist_cmd} picard \\ -Xmx${avail_mem}M \\ CollectHsMetrics \\ - $args \\ - $reference \\ - --BAIT_INTERVALS $bait_interval_list \\ - --TARGET_INTERVALS $target_interval_list \\ - --INPUT $bam \\ + ${args} \\ + ${reference} \\ + --BAIT_INTERVALS ${bait_interval_list} \\ + --TARGET_INTERVALS ${target_interval_list} \\ + --INPUT ${bam} \\ --OUTPUT ${prefix}.CollectHsMetrics.coverage_metrics - """ stub: diff --git a/modules/nf-core/picard/collecthsmetrics/meta.yml b/modules/nf-core/picard/collecthsmetrics/meta.yml index a21aa6ec..89bc502c 100644 --- a/modules/nf-core/picard/collecthsmetrics/meta.yml +++ b/modules/nf-core/picard/collecthsmetrics/meta.yml @@ -106,7 +106,7 @@ output: - picard: type: string description: The tool name - - "picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + - "picard CollectHsMetrics --version 2>&1 | sed -n 's/.*Version://p'": type: string description: The command used to generate the version of the tool @@ -118,7 +118,7 @@ topics: - picard: type: string description: The tool name - - "picard CollectHsMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + - "picard CollectHsMetrics --version 2>&1 | sed -n 's/.*Version://p'": type: string description: The command used to generate the version of the tool authors: diff --git a/modules/nf-core/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf index 3c6152e5..9de927e6 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ b/modules/nf-core/picard/collectmultiplemetrics/main.nf @@ -1,21 +1,21 @@ process PICARD_COLLECTMULTIPLEMETRICS { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' : - 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' + : 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6'}" input: - tuple val(meta) , path(bam), path(bai) + tuple val(meta), path(bam), path(bai) tuple val(meta2), path(fasta) tuple val(meta3), path(fai) output: tuple val(meta), path("*_metrics"), emit: metrics - tuple val(meta), path("*.pdf") , emit: pdf, optional: true - tuple val("${task.process}"), val('picard'), eval("picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'"), topic: versions, emit: versions_picard + tuple val(meta), path("*.pdf"), emit: pdf, optional: true + tuple val("${task.process}"), val('picard'), eval("picard CollectMultipleMetrics --version 2>&1 | sed -n 's/.*Version://p'"), topic: versions, emit: versions_picard when: task.ext.when == null || task.ext.when @@ -26,19 +26,19 @@ process PICARD_COLLECTMULTIPLEMETRICS { def reference = fasta ? "--REFERENCE_SEQUENCE ${fasta}" : "" def avail_mem = 3072 if (!task.memory) { - log.info '[Picard CollectMultipleMetrics] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' - } else { - avail_mem = (task.memory.mega*0.8).intValue() + log.info('[Picard CollectMultipleMetrics] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.') + } + else { + avail_mem = (task.memory.mega * 0.8).intValue() } """ picard \\ -Xmx${avail_mem}M \\ CollectMultipleMetrics \\ - $args \\ - --INPUT $bam \\ + ${args} \\ + --INPUT ${bam} \\ --OUTPUT ${prefix}.CollectMultipleMetrics \\ - $reference - + ${reference} """ stub: @@ -54,6 +54,5 @@ process PICARD_COLLECTMULTIPLEMETRICS { touch ${prefix}.CollectMultipleMetrics.quality_by_cycle.pdf touch ${prefix}.CollectMultipleMetrics.insert_size_histogram.pdf touch ${prefix}.CollectMultipleMetrics.quality_distribution_metrics - """ } diff --git a/modules/nf-core/picard/collectmultiplemetrics/meta.yml b/modules/nf-core/picard/collectmultiplemetrics/meta.yml index 1ea47244..213d600b 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/meta.yml +++ b/modules/nf-core/picard/collectmultiplemetrics/meta.yml @@ -81,7 +81,7 @@ output: - picard: type: string description: The tool name - - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/.*Version://p'": type: string description: The command used to generate the version of the tool @@ -93,7 +93,7 @@ topics: - picard: type: string description: The tool name - - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/^Version:*//p'": + - "picard CollectMultipleMetrics --version 2>&1 | sed -n 's/.*Version://p'": type: string description: The command used to generate the version of the tool diff --git a/modules/nf-core/picard/createsequencedictionary/main.nf b/modules/nf-core/picard/createsequencedictionary/main.nf index 4e241979..c2aadd9f 100644 --- a/modules/nf-core/picard/createsequencedictionary/main.nf +++ b/modules/nf-core/picard/createsequencedictionary/main.nf @@ -1,18 +1,18 @@ process PICARD_CREATESEQUENCEDICTIONARY { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' : - 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/08/0861295baa7c01fc593a9da94e82b44a729dcaf8da92be8e565da109aa549b25/data' + : 'community.wave.seqera.io/library/picard:3.4.0--e9963040df0a9bf6'}" input: tuple val(meta), path(fasta) output: tuple val(meta), path("*.dict"), emit: reference_dict - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('picard'), eval("picard CreateSequenceDictionary --version 2>&1 | sed -n 's/.*Version://p'"), topic: versions, emit: versions_picard when: task.ext.when == null || task.ext.when @@ -22,33 +22,23 @@ process PICARD_CREATESEQUENCEDICTIONARY { def prefix = task.ext.prefix ?: "${meta.id}" def avail_mem = 3072 if (!task.memory) { - log.info '[Picard CreateSequenceDictionary] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' - } else { - avail_mem = (task.memory.mega*0.8).intValue() + log.info('[Picard CreateSequenceDictionary] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.') + } + else { + avail_mem = (task.memory.mega * 0.8).intValue() } """ picard \\ -Xmx${avail_mem}M \\ - CreateSequenceDictionary \\ - $args \\ - --REFERENCE $fasta \\ + CreateSequenceDictionary \\ + ${args} \\ + --REFERENCE ${fasta} \\ --OUTPUT ${prefix}.dict - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(picard CreateSequenceDictionary --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) - END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.dict - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - picard: \$(echo \$(picard CreateSequenceDictionary --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) - END_VERSIONS """ - } diff --git a/modules/nf-core/picard/createsequencedictionary/meta.yml b/modules/nf-core/picard/createsequencedictionary/meta.yml index 97e0ddea..02487d5f 100644 --- a/modules/nf-core/picard/createsequencedictionary/meta.yml +++ b/modules/nf-core/picard/createsequencedictionary/meta.yml @@ -36,13 +36,27 @@ output: description: picard dictionary file pattern: "*.{dict}" ontologies: [] + versions_picard: + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CreateSequenceDictionary --version 2>&1 | sed -n 's/.*Version://p'": + type: string + description: The command used to generate the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The process the versions were collected from + - picard: + type: string + description: The tool name + - "picard CreateSequenceDictionary --version 2>&1 | sed -n 's/.*Version://p'": + type: string + description: The command used to generate the version of the tool authors: - "@sateeshperi" - "@mjcipriano" diff --git a/modules/nf-core/seqfu/stats/main.nf b/modules/nf-core/seqfu/stats/main.nf index ced2451c..2f98c852 100644 --- a/modules/nf-core/seqfu/stats/main.nf +++ b/modules/nf-core/seqfu/stats/main.nf @@ -1,20 +1,20 @@ process SEQFU_STATS { - tag "$meta.id" + tag "${meta.id}" label 'process_single' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqfu:1.22.3--hfd12232_2': - 'biocontainers/seqfu:1.22.3--hfd12232_2' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/seqfu:1.22.3--hfd12232_2' + : 'biocontainers/seqfu:1.22.3--hfd12232_2'}" input: // stats can get one or more fasta or fastq files tuple val(meta), path(files) output: - tuple val(meta), path("*.tsv") , emit: stats + tuple val(meta), path("*.tsv"), emit: stats tuple val(meta), path("*_mqc.txt"), emit: multiqc - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('seqfu'), eval('seqfu version'), emit: versions_seqfu, topic: versions when: task.ext.when == null || task.ext.when @@ -25,28 +25,18 @@ process SEQFU_STATS { """ seqfu \\ stats \\ - $args \\ + ${args} \\ --multiqc ${prefix}_mqc.txt \\ - $files > ${prefix}.tsv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - seqfu: \$(seqfu version) - END_VERSIONS + ${files} > ${prefix}.tsv """ stub: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ - echo $args + echo ${args} touch ${prefix}.tsv touch ${prefix}_mqc.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - seqfu: \$(seqfu version) - END_VERSIONS """ } diff --git a/modules/nf-core/seqfu/stats/meta.yml b/modules/nf-core/seqfu/stats/meta.yml index 573498c5..856e6f79 100644 --- a/modules/nf-core/seqfu/stats/meta.yml +++ b/modules/nf-core/seqfu/stats/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "seqfu_stats" description: Statistics for FASTA or FASTQ files keywords: @@ -13,11 +12,10 @@ tools: documentation: "https://telatin.github.io/seqfu2/" tool_dev_url: "https://github.com/telatin/seqfu2" doi: "10.3390/bioengineering8050059" - licence: ["GPL v3"] + licence: + - "GPL v3" identifier: biotools:seqfu - input: - # Only when we have meta - - meta: type: map description: | @@ -28,9 +26,8 @@ input: description: One or more FASTA or FASTQ files pattern: "*.{fasta,fastq,fasta.gz,fastq.gz,fq,fq.gz}" ontologies: - - edam: http://edamontology.org/format_1930 # FASTQ + - edam: http://edamontology.org/format_1930 output: - #Only when we have meta stats: - - meta: type: map @@ -42,7 +39,7 @@ output: description: Tab-separated output file with basic sequence statistics. pattern: "*.{tsv}" ontologies: - - edam: http://edamontology.org/format_3475 # TSV + - edam: http://edamontology.org/format_3475 multiqc: - - meta: type: map @@ -54,13 +51,27 @@ output: description: MultiQC ready table pattern: "*.{_mqc.txt}" ontologies: [] + versions_seqfu: + - - ${task.process}: + type: string + description: The name of the process + - seqfu: + type: string + description: The name of the tool + - seqfu version: + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - seqfu: + type: string + description: The name of the tool + - seqfu version: + type: eval + description: The expression to obtain the version of the tool authors: - "@telatin" maintainers: diff --git a/subworkflows/local/prepare_genome/main.nf b/subworkflows/local/prepare_genome/main.nf index fa707a0b..3fe0bd39 100644 --- a/subworkflows/local/prepare_genome/main.nf +++ b/subworkflows/local/prepare_genome/main.nf @@ -18,7 +18,6 @@ workflow PREPARE_GENOME { ch_bwamem2_index = channel.empty() ch_reference_fai = channel.empty() ch_ref_dict = channel.empty() - ch_versions = channel.empty() if (!("bwamem2_index" in skip_tools)) { // Use pre-built index when --bwamem2 parameter is provided @@ -49,7 +48,6 @@ workflow PREPARE_GENOME { else { PICARD_CREATESEQUENCEDICTIONARY(ch_reference_fasta) ch_ref_dict = PICARD_CREATESEQUENCEDICTIONARY.out.reference_dict - ch_versions = ch_versions.mix(PICARD_CREATESEQUENCEDICTIONARY.out.versions) } } @@ -57,5 +55,4 @@ workflow PREPARE_GENOME { bwamem2_index = ch_bwamem2_index reference_fai = ch_reference_fai ref_dict = ch_ref_dict - versions = ch_versions } diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test b/subworkflows/local/prepare_genome/tests/main.nf.test index b9199a6f..3ba2985c 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test +++ b/subworkflows/local/prepare_genome/tests/main.nf.test @@ -35,9 +35,6 @@ nextflow_workflow { else if (key == "ref_dict") { return [key, val.collect { file(it[1]).name }] } - else if (key == "versions") { - return [key, val.collect { path(it).yaml }] - } return [key, val.collect { path(it[1]) }] }).match() } @@ -72,9 +69,6 @@ nextflow_workflow { else if (key == "ref_dict") { return [key, val.collect { file(it[1]).name }] } - else if (key == "versions") { - return [key, val.collect { path(it).yaml }] - } return [key, val.collect { path(it[1]) }] }).match() } @@ -109,9 +103,6 @@ nextflow_workflow { else if (key == "ref_dict") { return [key, val.collect { file(it[1]).name }] } - else if (key == "versions") { - return [key, val.collect { path(it).yaml }] - } return [key, val.collect { path(it[1]) }] }).match() } diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test.snap b/subworkflows/local/prepare_genome/tests/main.nf.test.snap index 69dbcf5d..6b4bd3f0 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test.snap +++ b/subworkflows/local/prepare_genome/tests/main.nf.test.snap @@ -18,17 +18,10 @@ ], "reference_fai": [ "reference.fasta.fai:md5,bf4047e05f95deb372eb8ffd601cbc29" - ], - "versions": [ - { - "PREPARE_GENOME:PICARD_CREATESEQUENCEDICTIONARY": { - "picard": "3.4.0" - } - } ] } ], - "timestamp": "2026-02-19T12:13:22.253331535", + "timestamp": "2026-02-20T11:14:59.592335797", "meta": { "nf-test": "0.9.4", "nextflow": "25.10.4" diff --git a/workflows/seqinspector.nf b/workflows/seqinspector.nf index 787bc40d..635e1a0b 100644 --- a/workflows/seqinspector.nf +++ b/workflows/seqinspector.nf @@ -54,7 +54,6 @@ workflow SEQINSPECTOR { target_intervals main: - ch_versions = channel.empty() ch_multiqc_files = channel.empty() ch_multiqc_extra_files = channel.empty() ch_bwamem2_mem = channel.empty() @@ -68,8 +67,6 @@ workflow SEQINSPECTOR { ref_dict, ) - ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) - // // MODULE: Parse rundir info // @@ -153,7 +150,6 @@ workflow SEQINSPECTOR { } ch_multiqc_files = ch_multiqc_files.mix(SEQFU_STATS.out.multiqc) - ch_versions = ch_versions.mix(SEQFU_STATS.out.versions) } // @@ -222,7 +218,7 @@ workflow SEQINSPECTOR { // Collate and save software versions // def collated_versions = softwareVersionsToYAML( - softwareVersions: ch_versions.mix(channel.topic("versions")), + softwareVersions: channel.topic("versions"), nextflowVersion: workflow.nextflow.version, ).collectFile( storeDir: "${outdir}/pipeline_info", @@ -321,5 +317,4 @@ workflow SEQINSPECTOR { emit: global_report = MULTIQC_GLOBAL.out.report.toList() // channel: [ /path/to/multiqc_report.html ] grouped_reports = MULTIQC_PER_TAG.out.report.toList() // channel: [ /path/to/multiqc_report.html ] - versions = ch_versions // channel: [ path(versions.yml) ] }