From 13c52e964cdcb3fafaa1b146694fad87db081881 Mon Sep 17 00:00:00 2001 From: limrp Date: Sat, 24 Jun 2023 16:10:58 -0500 Subject: [PATCH 01/65] New module for the cram-size command of samtools. --- modules/nf-core/samtools/cramsize/main.nf | 35 ++++++++++++++++ modules/nf-core/samtools/cramsize/meta.yml | 42 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../modules/nf-core/samtools/cramsize/main.nf | 15 +++++++ .../nf-core/samtools/cramsize/nextflow.config | 5 +++ .../nf-core/samtools/cramsize/test.yml | 13 ++++++ 6 files changed, 114 insertions(+) create mode 100644 modules/nf-core/samtools/cramsize/main.nf create mode 100644 modules/nf-core/samtools/cramsize/meta.yml create mode 100644 tests/modules/nf-core/samtools/cramsize/main.nf create mode 100644 tests/modules/nf-core/samtools/cramsize/nextflow.config create mode 100644 tests/modules/nf-core/samtools/cramsize/test.yml diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf new file mode 100644 index 00000000000..6c4074e4acd --- /dev/null +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -0,0 +1,35 @@ +process SAMTOOLS_CRAMSIZE { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::samtools=1.17" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0': + 'biocontainers/samtools:1.17--h00cdaf9_0' }" + + input: + tuple val(meta), path(cram) + + output: + tuple val(meta), path("*.size"), emit: size + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + + """ + samtools \\ + cram-size \\ + $args \\ + -o ${cram.baseName}.size \\ + $cram + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/nf-core/samtools/cramsize/meta.yml b/modules/nf-core/samtools/cramsize/meta.yml new file mode 100644 index 00000000000..cab8ea44167 --- /dev/null +++ b/modules/nf-core/samtools/cramsize/meta.yml @@ -0,0 +1,42 @@ +name: samtools_cramsize +description: List CRAM Content-ID and Data-Series sizes +keywords: + - cram-size + - cram + - size +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: http://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - cram: + type: file + description: CRAM file + pattern: "*.cram" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - size: + type: file + description: Size information file + pattern: "*.size" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@limrp" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 011f535e3f7..beaf172d362 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -3043,6 +3043,10 @@ samtools/coverage: - modules/nf-core/samtools/coverage/** - tests/modules/nf-core/samtools/coverage/** +samtools/cramsize: + - modules/nf-core/samtools/cramsize/** + - tests/modules/nf-core/samtools/cramsize/** + samtools/depth: - modules/nf-core/samtools/depth/** - tests/modules/nf-core/samtools/depth/** diff --git a/tests/modules/nf-core/samtools/cramsize/main.nf b/tests/modules/nf-core/samtools/cramsize/main.nf new file mode 100644 index 00000000000..84c7ef75ba0 --- /dev/null +++ b/tests/modules/nf-core/samtools/cramsize/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SAMTOOLS_CRAMSIZE } from '../../../../../modules/nf-core/samtools/cramsize/main.nf' + +workflow test_samtools_cramsize { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + SAMTOOLS_CRAMSIZE ( input ) +} diff --git a/tests/modules/nf-core/samtools/cramsize/nextflow.config b/tests/modules/nf-core/samtools/cramsize/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/samtools/cramsize/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml new file mode 100644 index 00000000000..be79a36f8c1 --- /dev/null +++ b/tests/modules/nf-core/samtools/cramsize/test.yml @@ -0,0 +1,13 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml /cramsize +- name: "samtools cramsize" + command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config + tags: + - "samtools" + - "samtools/cramsize" + files: + - path: "output/samtools/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: "output/samtools/versions.yml" + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + From 65b3a9a1c3dd3649b7e5323f6f3301e3537bc915 Mon Sep 17 00:00:00 2001 From: limrp <119093929+limrp@users.noreply.github.com> Date: Thu, 6 Jul 2023 12:31:36 -0500 Subject: [PATCH 02/65] Update modules/nf-core/samtools/cramsize/main.nf Adding name of the tool Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- modules/nf-core/samtools/cramsize/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 6c4074e4acd..4e236f34fb3 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -29,7 +29,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) END_VERSIONS """ } From 99c3260f4c758eecaa95a8c0f160b3f52dc31e52 Mon Sep 17 00:00:00 2001 From: limrp <119093929+limrp@users.noreply.github.com> Date: Thu, 6 Jul 2023 12:34:37 -0500 Subject: [PATCH 03/65] Update modules/nf-core/samtools/cramsize/main.nf Adding prefix to make the module set up more flexible. Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- modules/nf-core/samtools/cramsize/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 4e236f34fb3..a14ebc6f95d 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -19,7 +19,7 @@ process SAMTOOLS_CRAMSIZE { script: def args = task.ext.args ?: '' - + def prefix = task.ext.prefix ?: "$meta.id" """ samtools \\ cram-size \\ From 20c1d63c5925a9b0c34e4e36526f84642a753866 Mon Sep 17 00:00:00 2001 From: limrp <119093929+limrp@users.noreply.github.com> Date: Thu, 6 Jul 2023 12:36:36 -0500 Subject: [PATCH 04/65] Update modules/nf-core/samtools/cramsize/main.nf Changing `.baseName` by `prefix` in output names. Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- modules/nf-core/samtools/cramsize/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index a14ebc6f95d..154910fd5e9 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -24,7 +24,7 @@ process SAMTOOLS_CRAMSIZE { samtools \\ cram-size \\ $args \\ - -o ${cram.baseName}.size \\ + -o ${prefix}.size \\ $cram cat <<-END_VERSIONS > versions.yml From 43fa88665f2d8fb0fd1ef2de60f61fda01f7ca69 Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 7 Jul 2023 21:07:04 -0500 Subject: [PATCH 05/65] Stub added to the main.nf script. --- modules/nf-core/samtools/cramsize/main.nf | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 154910fd5e9..7e11c61b24a 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -32,4 +32,15 @@ process SAMTOOLS_CRAMSIZE { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "$meta.id" + """ + touch ${prefix}.size + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + END_VERSIONS + """ } From dda123d3c3a0011c18fac7e1f6daafb4c4866783 Mon Sep 17 00:00:00 2001 From: limrp Date: Sat, 8 Jul 2023 12:48:45 -0500 Subject: [PATCH 06/65] Adding generated test.yml file. --- tests/modules/nf-core/samtools/cramsize/main.nf | 4 ++-- tests/modules/nf-core/samtools/cramsize/test.yml | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/tests/modules/nf-core/samtools/cramsize/main.nf b/tests/modules/nf-core/samtools/cramsize/main.nf index 84c7ef75ba0..dc6e89ee31e 100644 --- a/tests/modules/nf-core/samtools/cramsize/main.nf +++ b/tests/modules/nf-core/samtools/cramsize/main.nf @@ -8,8 +8,8 @@ workflow test_samtools_cramsize { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) ] SAMTOOLS_CRAMSIZE ( input ) -} +} \ No newline at end of file diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml index be79a36f8c1..94a5ec85407 100644 --- a/tests/modules/nf-core/samtools/cramsize/test.yml +++ b/tests/modules/nf-core/samtools/cramsize/test.yml @@ -1,13 +1,9 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml /cramsize -- name: "samtools cramsize" +- name: test_samtools_cramsize command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config tags: - - "samtools" - - "samtools/cramsize" + - test.cram + - test.size files: - - path: "output/samtools/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc - - path: "output/samtools/versions.yml" - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b - + - path: output/samtools/test.size + md5sum: aff113286a3368bcb9c5b708bdf5f777 + - path: output/samtools/versions.yml From e80fa18ccd529aa84c9205bab4bc9afa73d95804 Mon Sep 17 00:00:00 2001 From: limrp Date: Sun, 9 Jul 2023 16:58:40 -0500 Subject: [PATCH 07/65] Adding pytest. --- tests/config/pytest_modules.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index abe94609c97..eb791bd9c4c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -2783,6 +2783,10 @@ pirate: - modules/nf-core/pirate/** - tests/modules/nf-core/pirate/** +plasflow: + - modules/nf-core/plasflow/** + - tests/modules/nf-core/plasflow/** + plasmidfinder: - modules/nf-core/plasmidfinder/** - tests/modules/nf-core/plasmidfinder/** @@ -3832,6 +3836,10 @@ trinity: - modules/nf-core/trinity/** - tests/modules/nf-core/trinity/** +ublast: + - modules/nf-core/ublast/** + - tests/modules/nf-core/ublast/** + ucsc/bedclip: - modules/nf-core/ucsc/bedclip/** - tests/modules/nf-core/ucsc/bedclip/** From afda96dd2effb4a905b0ae4c54cc02e97a6b5334 Mon Sep 17 00:00:00 2001 From: limrp Date: Mon, 10 Jul 2023 02:00:54 -0500 Subject: [PATCH 08/65] Adding a new nf-core module called plasflow. --- modules/nf-core/plasflow/main.nf | 76 ++++++++++++++++ modules/nf-core/plasflow/meta.yml | 59 ++++++++++++ modules/nf-core/ublast/main.nf | 91 +++++++++++++++++++ modules/nf-core/ublast/meta.yml | 55 +++++++++++ tests/modules/nf-core/plasflow/main.nf | 15 +++ .../modules/nf-core/plasflow/nextflow.config | 5 + tests/modules/nf-core/plasflow/test.yml | 19 ++++ tests/modules/nf-core/ublast/main.nf | 15 +++ tests/modules/nf-core/ublast/nextflow.config | 5 + tests/modules/nf-core/ublast/test.yml | 12 +++ 10 files changed, 352 insertions(+) create mode 100644 modules/nf-core/plasflow/main.nf create mode 100644 modules/nf-core/plasflow/meta.yml create mode 100644 modules/nf-core/ublast/main.nf create mode 100644 modules/nf-core/ublast/meta.yml create mode 100644 tests/modules/nf-core/plasflow/main.nf create mode 100644 tests/modules/nf-core/plasflow/nextflow.config create mode 100644 tests/modules/nf-core/plasflow/test.yml create mode 100644 tests/modules/nf-core/ublast/main.nf create mode 100644 tests/modules/nf-core/ublast/nextflow.config create mode 100644 tests/modules/nf-core/ublast/test.yml diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf new file mode 100644 index 00000000000..c1f2500512c --- /dev/null +++ b/modules/nf-core/plasflow/main.nf @@ -0,0 +1,76 @@ +process PLASFLOW { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::plasflow=1.1.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': + 'biocontainers/plasflow:1.1.0--py35_0' }" + + input: + tuple val(meta), path(assembly) + + output: + tuple val(meta), path("*.tsv") , emit: tsv + tuple val(meta), path("*_chromosomes.fasta.gz") , emit: chromosomes + tuple val(meta), path("*_plasmids.fasta.gz") , emit: plasmids + tuple val(meta), path("*_unclassified.fasta.gz"), emit: unclassified + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + if [[ "$assembly" == *.gz ]]; then + gunzip -c $assembly > ${prefix}.fasta + PlasFlow.py \\ + $args \\ + --input ${prefix}.fasta \\ + --output ${prefix}.tsv + else + PlasFlow.py \\ + $args \\ + --input $assembly \\ + --output ${prefix}.tsv + fi + + if [ -f ${prefix}.tsv_chromosomes.fasta ]; then + mv ${prefix}.tsv_chromosomes.fasta ${prefix}_chromosomes.fasta + gzip -n ${prefix}_chromosomes.fasta + fi + + if [ -f ${prefix}.tsv_plasmids.fasta ]; then + mv ${prefix}.tsv_plasmids.fasta ${prefix}_plasmids.fasta + gzip -n ${prefix}_plasmids.fasta + fi + + if [ -f ${prefix}.tsv_unclassified.fasta ]; then + mv ${prefix}.tsv_unclassified.fasta ${prefix}_unclassified.fasta + gzip -n ${prefix}_unclassified.fasta + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + PlasFlow: $VERSION + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + touch ${prefix}_chromosomes.fasta.gz + touch ${prefix}_plasmids.fasta.gz + touch ${prefix}_unclassified.fasta.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + PlasFlow: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/plasflow/meta.yml b/modules/nf-core/plasflow/meta.yml new file mode 100644 index 00000000000..0271f96a9ef --- /dev/null +++ b/modules/nf-core/plasflow/meta.yml @@ -0,0 +1,59 @@ +name: "plasflow" +description: Uses PlasFlow for prediction of plasmid sequences in metagenomic contigs. +keywords: + - plasmid + - chromosomes + - metagenomes + - contigs +tools: + - "PlasFlow": + description: | + PlasFlow is a set of scripts used for prediction of plasmid sequences in metagenomic contigs. + It relies on the neural network models trained on full genome and plasmid sequences and is able + to differentiate between plasmids and chromosomes with accuracy reaching 96%. It outperforms + other available solutions for plasmids recovery from metagenomes and incorporates the thresholding + which allows for exclusion of incertain predictions. + homepage: https://github.com/smaegol/PlasFlow + documentation: https://github.com/smaegol/PlasFlow + tool_dev_url: https://github.com/smaegol/PlasFlow + doi: 10.1093/nar/gkx1321 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - assembly: + type: file + description: fasta file + pattern: "*.{gz,fasta,fa,fna}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - tsv: + type: file + description: file containing classified sequences + pattern: "*.tsv" + - chromosomes: + type: file + description: Fasta file containing chromosome sequences + pattern: "*_chromosomes.fasta.gz" + - plasmids: + type: file + description: Fasta file containing plasmid sequences + pattern: "*_plasmids.fasta.gz" + - unclassified: + type: file + description: Fasta file containing unclassified sequences + pattern: "*_unclassified.fasta.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@limrp" diff --git a/modules/nf-core/ublast/main.nf b/modules/nf-core/ublast/main.nf new file mode 100644 index 00000000000..77b1b4d9635 --- /dev/null +++ b/modules/nf-core/ublast/main.nf @@ -0,0 +1,91 @@ +// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) +// https://github.com/nf-core/modules/tree/master/modules/nf-core/ +// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: +// https://nf-co.re/join +// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. +// All other parameters MUST be provided using the "task.ext" directive, see here: +// https://www.nextflow.io/docs/latest/process.html#ext +// where "task.ext" is a string. +// Any parameters that need to be evaluated in the context of a particular sample +// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. +// TODO nf-core: Software that can be piped together SHOULD be added to separate module files +// unless there is a run-time, storage advantage in implementing in this way +// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: +// bwa mem | samtools view -B -T ref.fasta +// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty +// list (`[]`) instead of a file can be used to work around this issue. + +process UBLAST { + tag "$meta.id" + label 'process_medium' + + // TODO nf-core: List required Conda package(s). + // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). + // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. + // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. + conda "YOUR-TOOL-HERE" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/YOUR-TOOL-HERE': + 'biocontainers/YOUR-TOOL-HERE' }" + + input: + // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" + // MUST be provided as an input via a Groovy Map called "meta". + // This information may not be required in some instances e.g. indexing reference genome files: + // https://github.com/nf-core/modules/blob/master/modules/nf-core/bwa/index/main.nf + // TODO nf-core: Where applicable please provide/convert compressed files as input/output + // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. + tuple val(meta), path(bam) + + output: + // TODO nf-core: Named file extensions MUST be emitted for ALL output channels + tuple val(meta), path("*.bam"), emit: bam + // TODO nf-core: List additional required output channels/values here + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 + // If the software is unable to output a version number on the command-line then it can be manually specified + // e.g. https://github.com/nf-core/modules/blob/master/modules/nf-core/homer/annotatepeaks/main.nf + // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) + // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive + // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter + // using the Nextflow "task" variable e.g. "--threads $task.cpus" + // TODO nf-core: Please replace the example samtools command below with your module's command + // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) + """ + samtools \\ + sort \\ + $args \\ + -@ $task.cpus \\ + -o ${prefix}.bam \\ + -T $prefix \\ + $bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // TODO nf-core: A stub section should mimic the execution of the original module as best as possible + // Have a look at the following examples: + // Simple example: https://github.com/nf-core/modules/blob/818474a292b4860ae8ff88e149fbcda68814114d/modules/nf-core/bcftools/annotate/main.nf#L47-L63 + // Complex example: https://github.com/nf-core/modules/blob/818474a292b4860ae8ff88e149fbcda68814114d/modules/nf-core/bedtools/split/main.nf#L38-L54 + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/nf-core/ublast/meta.yml b/modules/nf-core/ublast/meta.yml new file mode 100644 index 00000000000..495b957b520 --- /dev/null +++ b/modules/nf-core/ublast/meta.yml @@ -0,0 +1,55 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "ublast" +## TODO nf-core: Add a description of the module and list keywords +description: write your description here +keywords: + - sort + - example + - genomics +tools: + - "ublast": + ## TODO nf-core: Add a description and other details for the software below + description: "" + homepage: "" + documentation: "" + tool_dev_url: "" + doi: "" + licence: "" + +## TODO nf-core: Add a description of all of the variables used as input +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + ## TODO nf-core: Delete / customise this example input + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +## TODO nf-core: Add a description of all of the variables used as output +output: + #Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + ## TODO nf-core: Delete / customise this example output + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +authors: + - "@limrp" diff --git a/tests/modules/nf-core/plasflow/main.nf b/tests/modules/nf-core/plasflow/main.nf new file mode 100644 index 00000000000..188592f5446 --- /dev/null +++ b/tests/modules/nf-core/plasflow/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PLASFLOW } from '../../../../modules/nf-core/plasflow/main.nf' + +workflow test_plasflow { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['illumina']['test1_contigs_fa_gz'], checkIfExists: true) + ] + + PLASFLOW ( input ) +} diff --git a/tests/modules/nf-core/plasflow/nextflow.config b/tests/modules/nf-core/plasflow/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/plasflow/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml new file mode 100644 index 00000000000..e36f0a3bd43 --- /dev/null +++ b/tests/modules/nf-core/plasflow/test.yml @@ -0,0 +1,19 @@ +- name: test_plasflow + command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config + tags: + - metagenome + - chromosome + - plasmid + files: + - path: output/plasflow/test.tsv + md5sum: a7c0ee75bca40f7ae5000a120d3f2099 + - path: output/plasflow/test_chromosomes.fasta.gz + contains: + - Fasta file containing chromosome sequences + - path: output/plasflow/test_plasmids.fasta.gz + contains: + - Fasta file containing plasmid sequences + - path: output/plasflow/test_unclassified.fasta.gz + contains: + - Fasta file containing unclassified sequences + - path: output/plasflow/versions.yml diff --git a/tests/modules/nf-core/ublast/main.nf b/tests/modules/nf-core/ublast/main.nf new file mode 100644 index 00000000000..9768b07238a --- /dev/null +++ b/tests/modules/nf-core/ublast/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UBLAST } from '../../../../modules/nf-core/ublast/main.nf' + +workflow test_ublast { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + UBLAST ( input ) +} diff --git a/tests/modules/nf-core/ublast/nextflow.config b/tests/modules/nf-core/ublast/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/ublast/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/ublast/test.yml b/tests/modules/nf-core/ublast/test.yml new file mode 100644 index 00000000000..a61a1b0cbf6 --- /dev/null +++ b/tests/modules/nf-core/ublast/test.yml @@ -0,0 +1,12 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml +- name: "ublast" + command: nextflow run ./tests/modules/nf-core/ublast -entry test_ublast -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/ublast/nextflow.config + tags: + - "ublast" + files: + - path: "output/ublast/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: "output/ublast/versions.yml" + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + From e6aebc572718efb69d8db947403fd514bcaf9358 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Mon, 10 Jul 2023 09:53:20 +0200 Subject: [PATCH 09/65] Update manta modules (#3615) * Update manta somatic * Update manta tumoronly --- modules/nf-core/manta/somatic/main.nf | 3 ++- modules/nf-core/manta/tumoronly/main.nf | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/manta/somatic/main.nf b/modules/nf-core/manta/somatic/main.nf index 817abcb523d..8ff8d90a11f 100644 --- a/modules/nf-core/manta/somatic/main.nf +++ b/modules/nf-core/manta/somatic/main.nf @@ -37,8 +37,9 @@ process MANTA_SOMATIC { --tumorBam $input_tumor \ --normalBam $input_normal \ --reference $fasta \ + --runDir manta \ $options_manta \ - --runDir manta + $args python manta/runWorkflow.py -m local -j $task.cpus diff --git a/modules/nf-core/manta/tumoronly/main.nf b/modules/nf-core/manta/tumoronly/main.nf index 3d8b8b9c840..e3d6ca1b142 100644 --- a/modules/nf-core/manta/tumoronly/main.nf +++ b/modules/nf-core/manta/tumoronly/main.nf @@ -33,8 +33,9 @@ process MANTA_TUMORONLY { configManta.py \ --tumorBam $input \ --reference $fasta \ + --runDir manta \ $options_manta \ - --runDir manta + $args python manta/runWorkflow.py -m local -j $task.cpus From 21d77d82be70437f1f1e7fb705db5aea3fba6efa Mon Sep 17 00:00:00 2001 From: Friederike Hanssen Date: Tue, 11 Jul 2023 19:33:11 +0200 Subject: [PATCH 10/65] add varlociraptor call subcommand (#3529) * add call subcommand * at calls runs now [skip ci] * add test files * linting * fix tests * add contains check * Update tests/modules/nf-core/varlociraptor/callvariants/main.nf Co-authored-by: Maxime U Garcia --------- Co-authored-by: Maxime U Garcia --- .../varlociraptor/callvariants/main.nf | 48 +++++++ .../varlociraptor/callvariants/meta.yml | 66 +++++++++ .../estimatealignmentproperties/main.nf | 4 +- .../nf-core/varlociraptor/preprocess/main.nf | 6 +- .../nf-core/varlociraptor/preprocess/meta.yml | 8 ++ tests/config/pytest_modules.yml | 4 + tests/config/test_data.config | 4 +- .../varlociraptor/callvariants/main.nf | 136 ++++++++++++++++++ .../callvariants/nextflow.config | 8 ++ .../varlociraptor/callvariants/test.yml | 52 +++++++ .../estimatealignmentproperties/test.yml | 3 +- 11 files changed, 333 insertions(+), 6 deletions(-) create mode 100644 modules/nf-core/varlociraptor/callvariants/main.nf create mode 100644 modules/nf-core/varlociraptor/callvariants/meta.yml create mode 100644 tests/modules/nf-core/varlociraptor/callvariants/main.nf create mode 100644 tests/modules/nf-core/varlociraptor/callvariants/nextflow.config create mode 100644 tests/modules/nf-core/varlociraptor/callvariants/test.yml diff --git a/modules/nf-core/varlociraptor/callvariants/main.nf b/modules/nf-core/varlociraptor/callvariants/main.nf new file mode 100644 index 00000000000..0b852c4d780 --- /dev/null +++ b/modules/nf-core/varlociraptor/callvariants/main.nf @@ -0,0 +1,48 @@ +process VARLOCIRAPTOR_CALLVARIANTS { + tag "$meta.id" + label 'process_single' + + conda "bioconda::varlociraptor=8.1.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/varlociraptor:8.1.1--hc349b7f_0': + 'biocontainers/varlociraptor:8.1.1--hc349b7f_0' }" + + input: + tuple val(meta), path(normal_vcf), path(tumor_vcf) + path (scenario) + val (scenario_sample_name) + + output: + tuple val(meta), path("*.bcf.gz"), emit: bcf_gz, optional: true + tuple val(meta), path("*.vcf.gz"), emit: vcf_gz, optional: true + tuple val(meta), path("*.bcf") , emit: bcf , optional: true + tuple val(meta), path("*.vcf") , emit: vcf , optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}.vcf.gz" + + //If we use a scenario file and if there is more than 1 normal vcf, then collect scenario_sample_name and normal vcf to scenario_sample_name_0=normal_vcf_0 scenario_sample_name_1=normal_vcf_1, etc + //If we use a scenario file and if there is exactly 1 normal vcf, then scenario_sample_name=normal_vcf + //Else do nothing + def scenario_samples = normal_vcf instanceof List && normal_vcf.size() > 1 ? [scenario_sample_name,normal_vcf].transpose().collect{"${it[0]}=${it[1]}"}.join(' ') : "${scenario_sample_name}=${normal_vcf}" + + //If no scenario is provided, fall back to tumor-normal paired calling + def scenario_command = scenario ? "generic --scenario $scenario --obs ${scenario_samples}" : "tumor-normal --tumor ${tumor_vcf} --normal ${normal_vcf}" + + """ + varlociraptor call variants \\ + --output ${prefix} \\ + ${scenario_command} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + varlociraptor: \$(echo \$(varlociraptor --version 2>&1) | sed 's/^.*varlociraptor //; s/:.*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/varlociraptor/callvariants/meta.yml b/modules/nf-core/varlociraptor/callvariants/meta.yml new file mode 100644 index 00000000000..70ea6d936d9 --- /dev/null +++ b/modules/nf-core/varlociraptor/callvariants/meta.yml @@ -0,0 +1,66 @@ +name: "varlociraptor_callvariants" +description: Call variants for a given scenario specified with the varlociraptor calling grammar, preprocessed by varlociraptor preprocessing +keywords: + - observations + - variants + - calling +tools: + - "varlociraptor": + description: "Flexible, uncertainty-aware variant calling with parameter free filtration via FDR control." + homepage: "https://varlociraptor.github.io/docs/estimating/" + documentation: "https://varlociraptor.github.io/docs/calling/" + tool_dev_url: "https://github.com/varlociraptor/varlociraptor" + doi: "10.1186/s13059-020-01993-6" + licence: "['GPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - normal_vcf: + type: file + description: Sorted VCF/BCF file (list) + pattern: "*.{bcf,vcf,vcf.gz}" + - tumor_vcf: + type: file + description: Sorted VCF/BCF file (optional) + pattern: "*.{bcf,bcf.gz,vcf,vcf.gz}" + - scenario: + type: file + description: Yaml file containing scenario information (optional) + pattern: "*.{yml,yaml}" + - scenario_sample: + type: string + description: (List of) sample name(s) to be processed as named in the scenario yml (optional) + pattern: "*.{bcf,vcf,vcf.gz}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf_gz: + type: file + description: Compressed VCF file containing sample observations + pattern: "*.vcf.gz" + - bcf_gz: + type: file + description: BCF file containing sample observations + pattern: "*.bcf.gz" + - vcf: + type: file + description: VCF file containing sample observations + pattern: "*.vcf" + - bcf: + type: file + description: BCF file containing sample observations + pattern: "*.bcf" + +authors: + - "@FriederikeHanssen" diff --git a/modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf b/modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf index 581ea13a805..74269fcc653 100644 --- a/modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf +++ b/modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf @@ -8,8 +8,8 @@ process VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES { input: tuple val(meta), path(bam) - tuple val(meta), path(fasta) - tuple val(meta), path(fai) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) output: tuple val(meta), path("*.alignment-properties.json"), emit: alignment_properties_json diff --git a/modules/nf-core/varlociraptor/preprocess/main.nf b/modules/nf-core/varlociraptor/preprocess/main.nf index 93de96819f8..3f989639349 100644 --- a/modules/nf-core/varlociraptor/preprocess/main.nf +++ b/modules/nf-core/varlociraptor/preprocess/main.nf @@ -15,6 +15,8 @@ process VARLOCIRAPTOR_PREPROCESS { output: tuple val(meta), path("*.bcf.gz"), emit: bcf_gz, optional: true tuple val(meta), path("*.vcf.gz"), emit: vcf_gz, optional: true + tuple val(meta), path("*.bcf") , emit: bcf , optional: true + tuple val(meta), path("*.vcf") , emit: vcf , optional: true path "versions.yml" , emit: versions when: @@ -22,7 +24,7 @@ process VARLOCIRAPTOR_PREPROCESS { script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + def prefix = task.ext.prefix ?: "${meta.id}.vcf.gz" def alignment_properties_json = alignment_json ? "--alignment-properties ${alignment_json}" : "" """ varlociraptor preprocess variants \\ @@ -31,7 +33,7 @@ process VARLOCIRAPTOR_PREPROCESS { --bam $bam \\ --candidates $candidates \\ ${args} \\ - > ${prefix}.vcf.gz + > ${prefix} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/varlociraptor/preprocess/meta.yml b/modules/nf-core/varlociraptor/preprocess/meta.yml index 55abac6cc58..f86a82d6858 100644 --- a/modules/nf-core/varlociraptor/preprocess/meta.yml +++ b/modules/nf-core/varlociraptor/preprocess/meta.yml @@ -64,6 +64,14 @@ output: type: file description: Compressed VCF file containing sample observations pattern: "*.vcf.gz" + - bcf_gz: + type: file + description: BCF file containing sample observations + pattern: "*.bcf.gz" + - vcf: + type: file + description: VCF file containing sample observations + pattern: "*.vcf" - bcf: type: file description: BCF file containing sample observations diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index eb791bd9c4c..df53b19c3be 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -3933,6 +3933,10 @@ variantbam: - modules/nf-core/variantbam/** - tests/modules/nf-core/variantbam/** +varlociraptor/callvariants: + - modules/nf-core/varlociraptor/callvariants/** + - tests/modules/nf-core/varlociraptor/callvariants/** + varlociraptor/estimatealignmentproperties: - modules/nf-core/varlociraptor/estimatealignmentproperties/** - tests/modules/nf-core/varlociraptor/estimatealignmentproperties/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 667ca59a3c8..b45ee031192 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -469,6 +469,8 @@ params { test_flowcell = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bcl/flowcell.tar.gz" test_flowcell_samplesheet = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bcl/flowcell_samplesheet.csv" + varlociraptor_scenario = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/varlociraptor/scenario.yml" + contig_ploidy_priors_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/contig_ploidy_priors_table.tsv" purecn_ex1_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex1.bam" @@ -633,7 +635,7 @@ params { yeast_ups = "${params.test_data_base}/data/proteomics/database/yeast_UPS.fasta" } 'maxquant' { - mq_contrasts = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_contrasts.csv" + mq_contrasts = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_contrasts.csv" mq_proteingroups = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_proteinGroups.txt" mq_samplesheet = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_samplesheet.tsv" diff --git a/tests/modules/nf-core/varlociraptor/callvariants/main.nf b/tests/modules/nf-core/varlociraptor/callvariants/main.nf new file mode 100644 index 00000000000..33280ad910c --- /dev/null +++ b/tests/modules/nf-core/varlociraptor/callvariants/main.nf @@ -0,0 +1,136 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES as VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL } from '../../../../../modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf' +include { VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES as VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_TUMOR } from '../../../../../modules/nf-core/varlociraptor/estimatealignmentproperties/main.nf' +include { VARLOCIRAPTOR_PREPROCESS as VARLOCIRAPTOR_PREPROCESS_NORMAL } from '../../../../../modules/nf-core/varlociraptor/preprocess/main.nf' +include { VARLOCIRAPTOR_PREPROCESS as VARLOCIRAPTOR_PREPROCESS_TUMOR } from '../../../../../modules/nf-core/varlociraptor/preprocess/main.nf' +include { VARLOCIRAPTOR_CALLVARIANTS } from '../../../../../modules/nf-core/varlociraptor/callvariants/main.nf' + +workflow test_varlociraptor_callvariants_scenario_singlesample { + + bam_normal = [ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + ] + + fasta = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + fai= [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + + VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL( bam_normal, fasta, fai) + + input_normal = Channel.of([ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + ]).collect() + + VARLOCIRAPTOR_PREPROCESS_NORMAL(input_normal.join(VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL.out.alignment_properties_json), fasta, fai) + + scenario = Channel.of(file(params.test_data['homo_sapiens']['illumina']['varlociraptor_scenario'], checkIfExists: true)) + + VARLOCIRAPTOR_CALLVARIANTS ( VARLOCIRAPTOR_PREPROCESS_NORMAL.out.vcf_gz.map{meta1, vcf -> [meta1, vcf, []]}, scenario, "normal" ) +} + +workflow test_varlociraptor_callvariants_scenario_multisample { + + bam_normal = [ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + ] + + bam_tumor = [ + [ id:'test_tumor', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), + ] + + fasta = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + fai= [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + + VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL( bam_normal, fasta, fai) + VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_TUMOR( bam_tumor, fasta, fai) + + input_normal = Channel.of([ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + ]).collect() + + input_tumor = Channel.of([ + [ id:'test_tumor', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_genome_vcf'], checkIfExists: true), + ]).collect() + + VARLOCIRAPTOR_PREPROCESS_NORMAL(input_normal.join(VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL.out.alignment_properties_json), fasta, fai) + VARLOCIRAPTOR_PREPROCESS_TUMOR(input_tumor.join(VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_TUMOR.out.alignment_properties_json), fasta, fai) + + scenario = Channel.of(file(params.test_data['homo_sapiens']['illumina']['varlociraptor_scenario'], checkIfExists: true)) + + VARLOCIRAPTOR_CALLVARIANTS ( VARLOCIRAPTOR_PREPROCESS_NORMAL.out.vcf_gz.concat(VARLOCIRAPTOR_PREPROCESS_TUMOR.out.vcf_gz).collect().map{meta1, vcf1, meta2, vcf2 -> [meta1, [vcf1, vcf2], []]}, scenario, ["normal","normal"] ) +} + +workflow test_varlociraptor_callvariants_tumor_normal { + + bam_normal = [ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + ] + + bam_tumor = [ + [ id:'test_tumor', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + ] + + fasta = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + ] + + fai= [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + ] + + VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL( bam_normal, fasta, fai) + VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_TUMOR( bam_tumor, fasta, fai) + + input_normal = Channel.of([ + [ id:'test_normal', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz'], checkIfExists: true), + ]).collect() + + input_tumor = Channel.of([ + [ id:'test_tumor', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz'], checkIfExists: true), + ]).collect() + + VARLOCIRAPTOR_PREPROCESS_NORMAL(input_normal.join(VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_NORMAL.out.alignment_properties_json), fasta, fai) + VARLOCIRAPTOR_PREPROCESS_TUMOR(input_tumor.join(VARLOCIRAPTOR_ESTIMATEALIGNMENTPROPERTIES_TUMOR.out.alignment_properties_json), fasta, fai) + + + VARLOCIRAPTOR_CALLVARIANTS ( VARLOCIRAPTOR_PREPROCESS_NORMAL.out.vcf_gz.combine(VARLOCIRAPTOR_PREPROCESS_TUMOR.out.vcf_gz).collect().map{meta1, vcf1, meta2, vcf2 -> [meta1, vcf1, vcf2]},[], [] ) +} + diff --git a/tests/modules/nf-core/varlociraptor/callvariants/nextflow.config b/tests/modules/nf-core/varlociraptor/callvariants/nextflow.config new file mode 100644 index 00000000000..4aad31754bd --- /dev/null +++ b/tests/modules/nf-core/varlociraptor/callvariants/nextflow.config @@ -0,0 +1,8 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:VARLOCIRAPTOR_CALLVARIANTS { + ext.prefix = { "${meta.id}_called.vcf.gz" } + } +} diff --git a/tests/modules/nf-core/varlociraptor/callvariants/test.yml b/tests/modules/nf-core/varlociraptor/callvariants/test.yml new file mode 100644 index 00000000000..1ec83002ee1 --- /dev/null +++ b/tests/modules/nf-core/varlociraptor/callvariants/test.yml @@ -0,0 +1,52 @@ +- name: varlociraptor callvariants test_varlociraptor_callvariants_scenario_singlesample + command: nextflow run ./tests/modules/nf-core/varlociraptor/callvariants -entry test_varlociraptor_callvariants_scenario_singlesample -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/varlociraptor/callvariants/nextflow.config + tags: + - varlociraptor/callvariants + - varlociraptor + files: + - path: output/varlociraptor/test_normal.alignment-properties.json + contains: + - '"mean": 124.89494470774092,' + - path: output/varlociraptor/test_normal.vcf.gz + md5sum: a091dfd1192e774490e68d72f9db3976 + - path: output/varlociraptor/test_normal_called.vcf.gz + - path: output/varlociraptor/versions.yml + +- name: varlociraptor callvariants test_varlociraptor_callvariants_scenario_multisample + command: nextflow run ./tests/modules/nf-core/varlociraptor/callvariants -entry test_varlociraptor_callvariants_scenario_multisample -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/varlociraptor/callvariants/nextflow.config + tags: + - varlociraptor/callvariants + - varlociraptor + files: + - path: output/varlociraptor/test_normal.alignment-properties.json + contains: + - '"mean": 124.89494470774092,' + - path: output/varlociraptor/test_normal.vcf.gz + md5sum: a091dfd1192e774490e68d72f9db3976 + - path: output/varlociraptor/test_normal_called.vcf.gz + - path: output/varlociraptor/test_tumor.alignment-properties.json + contains: + - '"mean": 126.49488752556238,' + - path: output/varlociraptor/test_tumor.vcf.gz + md5sum: e84afe39f48e9bd197ae9952e15adb92 + - path: output/varlociraptor/versions.yml + +- name: varlociraptor callvariants test_varlociraptor_callvariants_tumor_normal + command: nextflow run ./tests/modules/nf-core/varlociraptor/callvariants -entry test_varlociraptor_callvariants_tumor_normal -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/varlociraptor/callvariants/nextflow.config + tags: + - varlociraptor/callvariants + - varlociraptor + files: + - path: output/varlociraptor/test_normal.alignment-properties.json + contains: + - '"mean": 351.71182796866435,' + - path: output/varlociraptor/test_normal.vcf.gz + md5sum: d5a543484daebc9b32b320ed45921e7e + - path: output/varlociraptor/test_normal_called.vcf.gz + md5sum: c1a586c5b28b32f06a3f2f19c2eefcd3 + - path: output/varlociraptor/test_tumor.alignment-properties.json + contains: + - '"mean": 351.2137723747417,' + - path: output/varlociraptor/test_tumor.vcf.gz + md5sum: 338202061231d567ad323f7aac36a87b + - path: output/varlociraptor/versions.yml diff --git a/tests/modules/nf-core/varlociraptor/estimatealignmentproperties/test.yml b/tests/modules/nf-core/varlociraptor/estimatealignmentproperties/test.yml index 48547e257ae..840c64d7dc0 100644 --- a/tests/modules/nf-core/varlociraptor/estimatealignmentproperties/test.yml +++ b/tests/modules/nf-core/varlociraptor/estimatealignmentproperties/test.yml @@ -5,5 +5,6 @@ - varlociraptor/estimatealignmentproperties files: - path: output/varlociraptor/test.alignment-properties.json - md5sum: 412e5a8f56035446ec6ebd2edb51e7a0 + contains: + - '"mean": 205.109756097561,' - path: output/varlociraptor/versions.yml From 9f28ebe907aaf60c71087c4d51f95bd0fc774a2f Mon Sep 17 00:00:00 2001 From: Charlotte Capitanchik Date: Wed, 12 Jul 2023 17:45:37 +0900 Subject: [PATCH 11/65] add new module iCount-mini/metagene (#3612) * add module template * first version * update testing and linting * update file naming * update test * fix test --- modules/nf-core/icountmini/metagene/main.nf | 48 +++++++++++++++++++ modules/nf-core/icountmini/metagene/meta.yml | 44 +++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../nf-core/icountmini/metagene/main.nf | 29 +++++++++++ .../icountmini/metagene/nextflow.config | 5 ++ .../nf-core/icountmini/metagene/test.yml | 9 ++++ 6 files changed, 139 insertions(+) create mode 100644 modules/nf-core/icountmini/metagene/main.nf create mode 100644 modules/nf-core/icountmini/metagene/meta.yml create mode 100644 tests/modules/nf-core/icountmini/metagene/main.nf create mode 100644 tests/modules/nf-core/icountmini/metagene/nextflow.config create mode 100644 tests/modules/nf-core/icountmini/metagene/test.yml diff --git a/modules/nf-core/icountmini/metagene/main.nf b/modules/nf-core/icountmini/metagene/main.nf new file mode 100644 index 00000000000..d6a01476b9e --- /dev/null +++ b/modules/nf-core/icountmini/metagene/main.nf @@ -0,0 +1,48 @@ +process ICOUNTMINI_METAGENE { + tag "$meta.id" + label 'process_low' + + conda "bioconda::icount-mini=3.0.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/icount-mini:3.0.0--pyh7cba7a3_0': + 'biocontainers/icount-mini:3.0.0--pyh7cba7a3_0' }" + + input: + tuple val(meta), path(bed) + path segmentation + + output: + tuple val(meta), path("metagene_*/*plot_data.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + mv $bed ${prefix}.bed + + iCount-Mini metagene \\ + ${prefix}.bed \\ + $segmentation \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + iCount-Mini: \$(iCount-Mini -v) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch metagene_${prefix}/${prefix}_plot_data.tsv + cat <<-END_VERSIONS > versions.yml + "${task.process}": + iCount-Mini: \$(iCount-Mini -v) + END_VERSIONS + """ +} diff --git a/modules/nf-core/icountmini/metagene/meta.yml b/modules/nf-core/icountmini/metagene/meta.yml new file mode 100644 index 00000000000..e5ad0e55a10 --- /dev/null +++ b/modules/nf-core/icountmini/metagene/meta.yml @@ -0,0 +1,44 @@ +--- +name: icountmini_metagene +description: Plot a metagene of cross-link events/sites around various transcriptomic landmarks. +keywords: + - iCLIP + - gtf + - genomics +tools: + - icount: + description: Computational pipeline for analysis of iCLIP data + homepage: https://icount.readthedocs.io/en/latest/ + documentation: https://icount.readthedocs.io/en/latest/ + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: BED file of crosslinks + - segmentation: + type: file + description: A iCount segmentation file + pattern: "*.{gtf}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tsv: + type: file + description: Metagene table + pattern: "*.tsv" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@marc-jones" + - "@chris-cheshire" + - "@charlotteanne" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index df53b19c3be..420fe57f239 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1889,6 +1889,10 @@ ichorcna/run: - modules/nf-core/ichorcna/run/** - tests/modules/nf-core/ichorcna/run/** +icountmini/metagene: + - modules/nf-core/icountmini/metagene/** + - tests/modules/nf-core/icountmini/metagene/** + icountmini/peaks: - modules/nf-core/icountmini/peaks/** - tests/modules/nf-core/icountmini/peaks/** diff --git a/tests/modules/nf-core/icountmini/metagene/main.nf b/tests/modules/nf-core/icountmini/metagene/main.nf new file mode 100644 index 00000000000..ef5fa20ed8d --- /dev/null +++ b/tests/modules/nf-core/icountmini/metagene/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ICOUNTMINI_SEGMENT } from '../../../../../modules/nf-core/icountmini/segment/main.nf' +include { ICOUNTMINI_METAGENE} from '../../../../../modules/nf-core/icountmini/metagene/main.nf' + +workflow test_icountmini_metagene { + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_gencode_gtf'], checkIfExists: true) + ] + + ICOUNTMINI_SEGMENT ( + input, + file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + ) + + bed = [ + [ id:'test' ], // meta map + file("https://raw.githubusercontent.com/nf-core/test-datasets/clipseq/crosslinks/clippy.bed", checkIfExists: true) + ] + + ICOUNTMINI_METAGENE ( + bed, + ICOUNTMINI_SEGMENT.out.gtf.map{ it[1] } + ) +} + diff --git a/tests/modules/nf-core/icountmini/metagene/nextflow.config b/tests/modules/nf-core/icountmini/metagene/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/icountmini/metagene/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/icountmini/metagene/test.yml b/tests/modules/nf-core/icountmini/metagene/test.yml new file mode 100644 index 00000000000..0e9994b0aa8 --- /dev/null +++ b/tests/modules/nf-core/icountmini/metagene/test.yml @@ -0,0 +1,9 @@ +- name: icountmini metagene test_icountmini_metagene + command: nextflow run ./tests/modules/nf-core/icountmini/metagene -entry test_icountmini_metagene -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/icountmini/metagene/nextflow.config + tags: + - icountmini + - icountmini/metagene + files: + - path: output/icountmini/metagene_test/test_plot_data.tsv + md5sum: 63032c9e159e81f617e30bcb1c3c8509 + - path: output/icountmini/versions.yml From 9a7a2eccc6aedd7dc9dfc87b7813e7dd26bb886d Mon Sep 17 00:00:00 2001 From: Charlotte Capitanchik Date: Wed, 12 Jul 2023 17:46:17 +0900 Subject: [PATCH 12/65] Newmodule ngmerge (#3626) * ngmerge first commit * main module code * complete module * remove trailing whitespace * fix versions.yml * fix version yml * versions yml * vyml * try vyml again * touch versions yml * vyml --- modules/nf-core/ngmerge/main.nf | 52 ++++++++++++++++++ modules/nf-core/ngmerge/meta.yml | 54 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/nf-core/ngmerge/main.nf | 15 ++++++ tests/modules/nf-core/ngmerge/nextflow.config | 5 ++ tests/modules/nf-core/ngmerge/test.yml | 7 +++ 6 files changed, 137 insertions(+) create mode 100644 modules/nf-core/ngmerge/main.nf create mode 100644 modules/nf-core/ngmerge/meta.yml create mode 100644 tests/modules/nf-core/ngmerge/main.nf create mode 100644 tests/modules/nf-core/ngmerge/nextflow.config create mode 100644 tests/modules/nf-core/ngmerge/test.yml diff --git a/modules/nf-core/ngmerge/main.nf b/modules/nf-core/ngmerge/main.nf new file mode 100644 index 00000000000..b80d75d031b --- /dev/null +++ b/modules/nf-core/ngmerge/main.nf @@ -0,0 +1,52 @@ +process NGMERGE { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::ngmerge=0.3" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ngmerge:0.3--ha92aebf_1': + 'biocontainers/ngmerge:0.3--ha92aebf_1' }" + + input: + tuple val(meta), path(reads1), path(reads2) + + output: + tuple val(meta), path("*.merged.fq.gz"), emit: merged_reads + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + NGmerge \\ + -1 $reads1 \\ + -2 $reads2 \\ + -o ${prefix}.merged.fq.gz \\ + -z \\ + -n $task.cpus \\ + $args + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + NGmerge: \$(echo \$(NGmerge --version 2>&1) | sed 's/^.*NGmerge, version //; s/ Copyright.*// ; s/: //g' )) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}.merged.fq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + NGmerge: \$(echo \$(NGmerge --version 2>&1) | sed 's/^.*NGmerge, version //; s/ Copyright.*// ; s/: //g' )) + END_VERSIONS + """ +} diff --git a/modules/nf-core/ngmerge/meta.yml b/modules/nf-core/ngmerge/meta.yml new file mode 100644 index 00000000000..2d119d7e36c --- /dev/null +++ b/modules/nf-core/ngmerge/meta.yml @@ -0,0 +1,54 @@ +--- +name: "ngmerge" + +description: Merging paired-end reads and removing sequencing adapters. +keywords: + - sort + - reads merging + - merge mate pairs +tools: + - "ngmerge": + description: "Merging paired-end reads and removing sequencing adapters." + homepage: "https://github.com/jsh58/NGmerge" + documentation: "https://github.com/jsh58/NGmerge" + tool_dev_url: "https://github.com/jsh58/NGmerge" + doi: "10.1186/s12859-018-2579-2" + licence: "['MIT']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + - reads1: + type: file + description: fastq file paired end read 1 + pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" + + - reads2: + type: file + description: fastq file paired end read 2 + pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - merged_reads: + type: file + description: fastq file paired end read 2 + pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" + +authors: + - "@charlotteanne" + - "@jsh58" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 420fe57f239..d0e3790e851 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -2531,6 +2531,10 @@ ngmaster: - modules/nf-core/ngmaster/** - tests/modules/nf-core/ngmaster/** +ngmerge: + - modules/nf-core/ngmerge/** + - tests/modules/nf-core/ngmerge/** + ngsbits/samplegender: - modules/nf-core/ngsbits/samplegender/** - tests/modules/nf-core/ngsbits/samplegender/** diff --git a/tests/modules/nf-core/ngmerge/main.nf b/tests/modules/nf-core/ngmerge/main.nf new file mode 100644 index 00000000000..66b5acd6dbc --- /dev/null +++ b/tests/modules/nf-core/ngmerge/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { NGMERGE } from '../../../../modules/nf-core/ngmerge/main.nf' + +workflow test_ngmerge { + input = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)], + [ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] + ] + + NGMERGE ( input ) +} diff --git a/tests/modules/nf-core/ngmerge/nextflow.config b/tests/modules/nf-core/ngmerge/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/ngmerge/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/ngmerge/test.yml b/tests/modules/nf-core/ngmerge/test.yml new file mode 100644 index 00000000000..564af5ead91 --- /dev/null +++ b/tests/modules/nf-core/ngmerge/test.yml @@ -0,0 +1,7 @@ +- name: ngmerge test_ngmerge + command: nextflow run ./tests/modules/nf-core/ngmerge -entry test_ngmerge -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/ngmerge/nextflow.config + tags: + - ngmerge + files: + - path: output/ngmerge/test.merged.fq.gz + - path: output/ngmerge/versions.yml From c076b4dd96f3cab445f879d394c75986b410839a Mon Sep 17 00:00:00 2001 From: Charlotte Capitanchik Date: Wed, 12 Jul 2023 17:57:49 +0900 Subject: [PATCH 13/65] NEW MODULE: PURECLIP (#3624) * initial commit * module version 1 * full testing * linting * fix version yaml * fix version yaml command * fix version yml maybe this time please * fix version yml for real this time * try again versions yaml * fix version yml * vyml * version yaml * vyml * update ref to have meta --- modules/nf-core/pureclip/main.nf | 69 +++++++++++++++ modules/nf-core/pureclip/meta.yml | 83 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/modules/nf-core/pureclip/main.nf | 45 ++++++++++ .../modules/nf-core/pureclip/nextflow.config | 5 ++ tests/modules/nf-core/pureclip/test.yml | 17 ++++ 6 files changed, 223 insertions(+) create mode 100644 modules/nf-core/pureclip/main.nf create mode 100644 modules/nf-core/pureclip/meta.yml create mode 100644 tests/modules/nf-core/pureclip/main.nf create mode 100644 tests/modules/nf-core/pureclip/nextflow.config create mode 100644 tests/modules/nf-core/pureclip/test.yml diff --git a/modules/nf-core/pureclip/main.nf b/modules/nf-core/pureclip/main.nf new file mode 100644 index 00000000000..1beb198fe4e --- /dev/null +++ b/modules/nf-core/pureclip/main.nf @@ -0,0 +1,69 @@ +process PURECLIP { + tag "$meta.id" + label 'process_high' + + conda "bioconda::pureclip=1.3.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pureclip:1.3.1--0': + 'biocontainers/pureclip:1.3.1--0' }" + + input: + tuple val(meta), path(ipbam), path(controlbam) + tuple val(meta), path(ipbai), path(controlbai) + tuple val(meta2), path(genome_fasta) + val input_control + + output: + tuple val(meta), path("${crosslinks_output_name}"), emit: crosslinks + tuple val(meta), path("${peaks_output_name}") , emit: peaks + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + crosslinks_output_name = "${prefix}_pureclip_crosslinks.bed" + peaks_output_name = "${prefix}_pureclip_peaks.bed" + + if(input_control){ + control_bam = "-ibam $controlbam" + control_bai = "-ibai $controlbai" + } else { + control_bam = "" + control_bai = "" + } + + """ + pureclip \ + -i $ipbam \ + -bai $ipbai \ + -g $genome_fasta \ + -nt ${task.cpus} \ + -o $crosslinks_output_name \ + -or $peaks_output_name \ + ${control_bam} \ + ${control_bai} \ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pureclip: \$(echo \$(pureclip --version 2>&1) | sed 's/^.*pureclip //; s/Using.*\$//; s/version: //; s/ Seq.*//' )) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}_pureclip_crosslinks.bed + touch ${prefix}_pureclip_peaks.bed + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pureclip: \$(echo \$(pureclip --version 2>&1) | sed 's/^.*pureclip //; s/Using.*\$//; s/version: //; s/ Seq.*//' )) + END_VERSIONS + """ +} diff --git a/modules/nf-core/pureclip/meta.yml b/modules/nf-core/pureclip/meta.yml new file mode 100644 index 00000000000..16033b32a4e --- /dev/null +++ b/modules/nf-core/pureclip/meta.yml @@ -0,0 +1,83 @@ +--- +name: "pureclip" +description: PureCLIP is a tool to detect protein-RNA interaction footprints from single-nucleotide CLIP-seq data, such as iCLIP and eCLIP. +keywords: + - iCLIP + - eCLIP + - CLIP +tools: + - "pureclip": + description: "PureCLIP is a tool to detect protein-RNA interaction footprints from single-nucleotide CLIP-seq data, such as iCLIP and eCLIP." + homepage: "https://github.com/skrakau/PureCLIP" + documentation: "https://pureclip.readthedocs.io/en/latest/GettingStarted/index.html" + tool_dev_url: "https://github.com/skrakau/PureCLIP" + doi: "10.1186/s13059-017-1364-2" + licence: "['GPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] + + - ipbam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + + - controlbam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + + - ipbai: + type: file + description: BAM index + pattern: "*.{bai}" + + - controlbai: + type: file + description: BAM index + pattern: "*.{bai}" + + - input_control: + type: boolean + description: Whether to run PureCLIP with an input control + + - genome_fasta: + type: file + description: FASTA file of reference genome + pattern: "*.{fa,fasta,fa.gz,fasta.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - crosslinks: + type: file + description: Bed file of crosslinks + pattern: "*.{bed}" + + - peaks: + type: file + description: Bed file of peaks + pattern: "*.{bed}" + +authors: + - "@charlotteanne" + - "@marcjones" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d0e3790e851..7b39824656f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -2891,6 +2891,10 @@ proteus/readproteingroups: - modules/nf-core/proteus/readproteingroups/** - tests/modules/nf-core/proteus/readproteingroups/** +pureclip: + - modules/nf-core/pureclip/** + - tests/modules/nf-core/pureclip/** + purecn/coverage: - modules/nf-core/purecn/coverage/** - tests/modules/nf-core/purecn/coverage/** diff --git a/tests/modules/nf-core/pureclip/main.nf b/tests/modules/nf-core/pureclip/main.nf new file mode 100644 index 00000000000..27139984fee --- /dev/null +++ b/tests/modules/nf-core/pureclip/main.nf @@ -0,0 +1,45 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PURECLIP } from '../../../../modules/nf-core/pureclip/main.nf' + +workflow test_pureclip_no_ctrl { + input_bam = [ [ id:'test', single_end:false ], // meta map + [ file( params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], + [ file( params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) ]] //dummy file + + input_bai = [ [ id:'test', single_end:false ], // meta map + [ file( params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ], + [ file( params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) ]] //dummy file + + fasta = [ [ id:'test', single_end:false ], + [file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)]] + + PURECLIP ( + input_bam, + input_bai, + fasta, + false + ) +} + +workflow test_pureclip_input_ctrl { + input_bam = [ [ id:'test', single_end:false ], // meta map + [ file( params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], + [ file( params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) ]] + + input_bai = [ [ id:'test', single_end:false ], // meta map + [ file( params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ], + [ file( params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) ]] + + fasta = [ [ id:'test', single_end:false ], + [file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)]] + + PURECLIP ( + input_bam, + input_bai, + fasta, + true + ) +} \ No newline at end of file diff --git a/tests/modules/nf-core/pureclip/nextflow.config b/tests/modules/nf-core/pureclip/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/pureclip/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/pureclip/test.yml b/tests/modules/nf-core/pureclip/test.yml new file mode 100644 index 00000000000..055f8bfb24e --- /dev/null +++ b/tests/modules/nf-core/pureclip/test.yml @@ -0,0 +1,17 @@ +- name: pureclip test_pureclip_no_ctrl + command: nextflow run ./tests/modules/nf-core/pureclip -entry test_pureclip_no_ctrl -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/pureclip/nextflow.config + tags: + - pureclip + files: + - path: output/pureclip/test_pureclip_crosslinks.bed + - path: output/pureclip/test_pureclip_peaks.bed + - path: output/pureclip/versions.yml + +- name: pureclip test_pureclip_input_ctrl + command: nextflow run ./tests/modules/nf-core/pureclip -entry test_pureclip_input_ctrl -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/pureclip/nextflow.config + tags: + - pureclip + files: + - path: output/pureclip/test_pureclip_crosslinks.bed + - path: output/pureclip/test_pureclip_peaks.bed + - path: output/pureclip/versions.yml From c69b9ca5e97acb50eb6b8ef51ffb23e544a72cb1 Mon Sep 17 00:00:00 2001 From: Steven Strong Date: Wed, 12 Jul 2023 04:05:07 -0600 Subject: [PATCH 14/65] fix integer overflow (#3620) Co-authored-by: Steven Strong --- subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf | 4 ++-- subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf index 64ec88f236f..3dbb27eae95 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf +++ b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf @@ -14,7 +14,7 @@ import groovy.json.JsonSlurper def getFastpReadsAfterFiltering(json_file) { def Map json = (Map) new JsonSlurper().parseText(json_file.text).get('summary') - return json['after_filtering']['total_reads'].toInteger() + return json['after_filtering']['total_reads'].toLong() } workflow FASTQ_FASTQC_UMITOOLS_FASTP { @@ -100,7 +100,7 @@ workflow FASTQ_FASTQC_UMITOOLS_FASTP { .set { ch_num_trimmed_reads } ch_num_trimmed_reads - .filter { meta, reads, num_reads -> num_reads >= min_trimmed_reads.toInteger() } + .filter { meta, reads, num_reads -> num_reads >= min_trimmed_reads.toLong() } .map { meta, reads, num_reads -> [ meta, reads ] } .set { trim_reads } diff --git a/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf b/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf index afe51650984..182d8de272e 100644 --- a/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf +++ b/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf @@ -13,7 +13,7 @@ import groovy.json.JsonSlurper def getFastpReadsAfterFiltering(json_file) { def Map json = (Map) new JsonSlurper().parseText(json_file.text).get('summary') - return json['after_filtering']['total_reads'].toInteger() + return json['after_filtering']['total_reads'].toLong() } workflow FASTQ_TRIM_FASTP_FASTQC { From c7e83fa6bb79102ec4e6ffcc08210e27e6d109c2 Mon Sep 17 00:00:00 2001 From: Jim Downie <19718667+prototaxites@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:26:37 +0100 Subject: [PATCH 15/65] Fix metaeuk_easypredict when using mmseqs database (#3525) Fix metaeuk and add tests --- modules/nf-core/metaeuk/easypredict/main.nf | 10 ++++++- .../nf-core/metaeuk/easypredict/main.nf | 25 ++++++++++++++--- .../nf-core/metaeuk/easypredict/test.yml | 28 +++++++++++++++++-- 3 files changed, 56 insertions(+), 7 deletions(-) diff --git a/modules/nf-core/metaeuk/easypredict/main.nf b/modules/nf-core/metaeuk/easypredict/main.nf index 4d809c2f713..5caf38f96fb 100644 --- a/modules/nf-core/metaeuk/easypredict/main.nf +++ b/modules/nf-core/metaeuk/easypredict/main.nf @@ -25,9 +25,17 @@ process METAEUK_EASYPREDICT { def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" """ + if [ -d ${database} ]; then + ## if supplying an mmseqs database as a directory, metaeuk requires the basename of the database + DBBASE=`find ${database}/ -name "*.version" -exec sh -c 'file=\$(basename {}); echo \${file%%.*}' \\;` + DB=`echo "${database}/\${DBBASE}"` + else + DB=${database} + fi + metaeuk easy-predict \\ ${fasta} \\ - ${database} \\ + \${DB} \\ ${prefix} \\ tmp/ \\ ${args} diff --git a/tests/modules/nf-core/metaeuk/easypredict/main.nf b/tests/modules/nf-core/metaeuk/easypredict/main.nf index 8eb73195ad0..5c3c6544b7f 100644 --- a/tests/modules/nf-core/metaeuk/easypredict/main.nf +++ b/tests/modules/nf-core/metaeuk/easypredict/main.nf @@ -2,18 +2,35 @@ nextflow.enable.dsl = 2 -include { METAEUK_EASYPREDICT } from '../../../../../modules/nf-core/metaeuk/easypredict/main.nf' +include { MMSEQS_DATABASES } from '../../../../../modules/nf-core/mmseqs/databases/main.nf' +include { METAEUK_EASYPREDICT as METAEUK_EASYPREDICT_FASTA } from '../../../../../modules/nf-core/metaeuk/easypredict/main.nf' +include { METAEUK_EASYPREDICT as METAEUK_EASYPREDICT_MMSEQS } from '../../../../../modules/nf-core/metaeuk/easypredict/main.nf' -workflow test_metaeuk_easypredict { +workflow test_metaeuk_easypredict_fasta { input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] - database = [ + fasta = [ file(params.test_data['proteomics']['database']['yeast_ups'], checkIfExists: true) ] - METAEUK_EASYPREDICT ( input, database ) + METAEUK_EASYPREDICT_FASTA ( input, fasta ) + +} + +workflow test_metaeuk_easypredict_mmseqs { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + MMSEQS_DATABASES ( 'UniProtKB/Swiss-Prot' ) + database = MMSEQS_DATABASES.out.database + + METAEUK_EASYPREDICT_MMSEQS ( input, database ) + } diff --git a/tests/modules/nf-core/metaeuk/easypredict/test.yml b/tests/modules/nf-core/metaeuk/easypredict/test.yml index 6c6d56461e1..63c9be06bd7 100644 --- a/tests/modules/nf-core/metaeuk/easypredict/test.yml +++ b/tests/modules/nf-core/metaeuk/easypredict/test.yml @@ -1,5 +1,5 @@ -- name: metaeuk easypredict test_metaeuk_easypredict - command: nextflow run ./tests/modules/nf-core/metaeuk/easypredict -entry test_metaeuk_easypredict -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/metaeuk/easypredict/nextflow.config +- name: metaeuk easypredict test_metaeuk_easypredict_fasta + command: nextflow run ./tests/modules/nf-core/metaeuk/easypredict -entry test_metaeuk_easypredict_fasta -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/metaeuk/easypredict/nextflow.config tags: - metaeuk/easypredict - metaeuk @@ -13,3 +13,27 @@ - path: output/metaeuk/test.headersMap.tsv md5sum: b3628c76d7385d326bd8a7931d974cff - path: output/metaeuk/versions.yml + +- name: metaeuk easypredict test_metaeuk_easypredict_mmseqs + command: nextflow run ./tests/modules/nf-core/metaeuk/easypredict -entry test_metaeuk_easypredict_mmseqs -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/metaeuk/easypredict/nextflow.config + tags: + - metaeuk/easypredict + - metaeuk + files: + - path: output/metaeuk/test.codon.fas + - path: output/metaeuk/test.fas + - path: output/metaeuk/test.gff + - path: output/metaeuk/test.headersMap.tsv + - path: output/metaeuk/versions.yml + - path: output/mmseqs/mmseqs_database/database + - path: output/mmseqs/mmseqs_database/database.dbtype + - path: output/mmseqs/mmseqs_database/database.index + - path: output/mmseqs/mmseqs_database/database.lookup + - path: output/mmseqs/mmseqs_database/database.source + - path: output/mmseqs/mmseqs_database/database.version + - path: output/mmseqs/mmseqs_database/database_h + - path: output/mmseqs/mmseqs_database/database_h.dbtype + - path: output/mmseqs/mmseqs_database/database_h.index + - path: output/mmseqs/mmseqs_database/database_mapping + - path: output/mmseqs/mmseqs_database/database_taxonomy + - path: output/mmseqs/versions.yml From 40a29ead3a4341c87e227f8d94f2ac55a73f92d6 Mon Sep 17 00:00:00 2001 From: Charlotte Capitanchik Date: Wed, 12 Jul 2023 22:41:23 +0900 Subject: [PATCH 16/65] 3630 add unstitched reads as emitted output of ngmerge (#3632) * add -f option * update tests --- modules/nf-core/ngmerge/main.nf | 9 ++++++--- modules/nf-core/ngmerge/meta.yml | 22 ++++++++++++++-------- tests/modules/nf-core/ngmerge/main.nf | 4 ++-- tests/modules/nf-core/ngmerge/test.yml | 2 ++ 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/nf-core/ngmerge/main.nf b/modules/nf-core/ngmerge/main.nf index b80d75d031b..a61740bf04a 100644 --- a/modules/nf-core/ngmerge/main.nf +++ b/modules/nf-core/ngmerge/main.nf @@ -8,10 +8,12 @@ process NGMERGE { 'biocontainers/ngmerge:0.3--ha92aebf_1' }" input: - tuple val(meta), path(reads1), path(reads2) + tuple val(meta), path(reads) output: tuple val(meta), path("*.merged.fq.gz"), emit: merged_reads + tuple val(meta), path("*_1.fastq.gz") , emit: unstitched_read1 + tuple val(meta), path("*_2.fastq.gz") , emit: unstitched_read2 path "versions.yml" , emit: versions when: @@ -23,9 +25,10 @@ process NGMERGE { """ NGmerge \\ - -1 $reads1 \\ - -2 $reads2 \\ + -1 ${reads[0]} \\ + -2 ${reads[1]} \\ -o ${prefix}.merged.fq.gz \\ + -f ${prefix}_unstitched \\ -z \\ -n $task.cpus \\ $args diff --git a/modules/nf-core/ngmerge/meta.yml b/modules/nf-core/ngmerge/meta.yml index 2d119d7e36c..22dbcb86ad4 100644 --- a/modules/nf-core/ngmerge/meta.yml +++ b/modules/nf-core/ngmerge/meta.yml @@ -22,14 +22,10 @@ input: Groovy Map containing sample information e.g. `[ id:'test', single_end:false ]` - - reads1: + - reads: type: file - description: fastq file paired end read 1 - pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" - - - reads2: - type: file - description: fastq file paired end read 2 + description: | + List of input FastQ files of size 2; i.e., paired-end data. pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" output: @@ -46,7 +42,17 @@ output: - merged_reads: type: file - description: fastq file paired end read 2 + description: fastq file merged reads + pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" + + - unstitched_read1: + type: file + description: fastq file unstitched read 1 + pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" + + - unstitched_read2: + type: file + description: fastq file unstitched read 2 pattern: "*.{fa,fasta,fastq,fq,fa.gz,fasta.gz,fastq.gz,fq.gz}" authors: diff --git a/tests/modules/nf-core/ngmerge/main.nf b/tests/modules/nf-core/ngmerge/main.nf index 66b5acd6dbc..6a442a56c6a 100644 --- a/tests/modules/nf-core/ngmerge/main.nf +++ b/tests/modules/nf-core/ngmerge/main.nf @@ -7,8 +7,8 @@ include { NGMERGE } from '../../../../modules/nf-core/ngmerge/main.nf' workflow test_ngmerge { input = [ [ id:'test', single_end:false ], // meta map - [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)], - [ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] ] NGMERGE ( input ) diff --git a/tests/modules/nf-core/ngmerge/test.yml b/tests/modules/nf-core/ngmerge/test.yml index 564af5ead91..7501a7d8fa3 100644 --- a/tests/modules/nf-core/ngmerge/test.yml +++ b/tests/modules/nf-core/ngmerge/test.yml @@ -4,4 +4,6 @@ - ngmerge files: - path: output/ngmerge/test.merged.fq.gz + - path: output/ngmerge/test_unstitched_1.fastq.gz + - path: output/ngmerge/test_unstitched_2.fastq.gz - path: output/ngmerge/versions.yml From b971c6aa6a33cd3866d4c65a0529a10cefcf31c6 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> Date: Thu, 13 Jul 2023 10:03:11 +0200 Subject: [PATCH 17/65] Update vardictjava (#3633) * new module picard/scatterintervalsbyns * update annotsv to 3.3.6 * update installannotations * update vardictjava --- modules/nf-core/vardictjava/main.nf | 57 ++++++++++++++-------- modules/nf-core/vardictjava/meta.yml | 26 +++++++--- tests/modules/nf-core/vardictjava/main.nf | 47 ++++++++++++++++-- tests/modules/nf-core/vardictjava/test.yml | 14 +++++- 4 files changed, 112 insertions(+), 32 deletions(-) diff --git a/modules/nf-core/vardictjava/main.nf b/modules/nf-core/vardictjava/main.nf index 91c994013d9..2e56e98542a 100644 --- a/modules/nf-core/vardictjava/main.nf +++ b/modules/nf-core/vardictjava/main.nf @@ -1,6 +1,6 @@ process VARDICTJAVA { tag "$meta.id" - label 'process_medium' + label 'process_high' conda "bioconda::vardict-java=1.8.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -8,36 +8,53 @@ process VARDICTJAVA { 'biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - tuple val(meta), path(bam), path(bai), path(bed) - path(fasta) - path(fasta_fai) + tuple val(meta), path(bams), path(bais), path(bed) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fasta_fai) output: - tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + tuple val(meta), path("*.vcf"), emit: vcf + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: '-c 1 -S 2 -E 3' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + + def somatic = bams instanceof ArrayList && bams.size() == 2 ? true : false + def input = somatic ? "-b \"${bams[0]}|${bams[1]}\"" : "-b ${bams}" + def filter = somatic ? "testsomatic.R" : "teststrandbias.R" + def convert_to_vcf = somatic ? "var2vcf_paired.pl" : "var2vcf_valid.pl" """ - export JAVA_OPTS='"-Xms${task.memory.toMega()/4}m" "-Xmx${task.memory.toGiga()}g" "-Dsamjdk.reference_fasta=$fasta"' + export JAVA_OPTS='"-Xms${task.memory.toMega()/4}m" "-Xmx${task.memory.toGiga()}g" "-Dsamjdk.reference_fasta=${fasta}"' vardict-java \\ - $args \\ - -c 1 -S 2 -E 3 \\ - -b $bam \\ - -th $task.cpus \\ - -N $prefix \\ - -G $fasta \\ - $bed \\ - | teststrandbias.R \\ - | var2vcf_valid.pl \\ - $args2 \\ - -N $prefix \\ - | gzip -c > ${prefix}.vcf.gz + ${args} \\ + ${input} \\ + -th ${task.cpus} \\ + -G ${fasta} \\ + ${bed} \\ + | ${filter} \\ + | ${convert_to_vcf} \\ + ${args2} \\ + > ${prefix}.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vardict-java: \$( realpath \$( command -v vardict-java ) | sed 's/.*java-//;s/-.*//' ) + var2vcf_valid.pl: \$( var2vcf_valid.pl -h | sed '2!d;s/.* //' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '-c 1 -S 2 -E 3' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}.vcf cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/vardictjava/meta.yml b/modules/nf-core/vardictjava/meta.yml index e062dfbb812..512b41d3e07 100644 --- a/modules/nf-core/vardictjava/meta.yml +++ b/modules/nf-core/vardictjava/meta.yml @@ -3,8 +3,10 @@ name: "vardictjava" description: The Java port of the VarDict variant caller keywords: - variant calling - - VarDict - - AstraZeneca + - vcf + - bam + - snv + - sv tools: - "vardictjava": description: "Java port of the VarDict variant discovery program" @@ -20,22 +22,32 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bam: + - bams: type: file - description: BAM/SAM file - pattern: "*.{bam,sam}" - - bai: + description: One or two BAM files. Supply two BAM files to run Vardict in paired mode. + pattern: "*.bam" + - bais: type: file - description: Index of the BAM file + description: Index/indices of the BAM file(s) pattern: "*.bai" - bed: type: file description: BED with the regions of interest pattern: "*.bed" + - meta2: + type: map + description: | + Groovy Map containing fasta information + e.g. [ id:'test', single_end:false ] - fasta: type: file description: FASTA of the reference genome pattern: "*.{fa,fasta}" + - meta3: + type: map + description: | + Groovy Map containing fasta information + e.g. [ id:'test', single_end:false ] - fasta_fai: type: file description: The index of the FASTA of the reference genome diff --git a/tests/modules/nf-core/vardictjava/main.nf b/tests/modules/nf-core/vardictjava/main.nf index 5c199a844e1..9601ef0e8e3 100644 --- a/tests/modules/nf-core/vardictjava/main.nf +++ b/tests/modules/nf-core/vardictjava/main.nf @@ -13,8 +13,49 @@ workflow test_vardictjava_bam { file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]) - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fasta_fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + fasta = [ + [id:"ref"], + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + fasta_fai = [ + [id:"ref"], + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ] - VARDICTJAVA ( bam_input_ch, fasta, fasta_fai ) + VARDICTJAVA( + bam_input_ch, + fasta, + fasta_fai + ) +} + +workflow test_vardictjava_paired_bam { + + bam_input_ch = Channel.value([ + [ id:'test' ], // meta map + [ + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) + ], + [ + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) + ], + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ]) + + fasta = [ + [id:"ref"], + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + fasta_fai = [ + [id:"ref"], + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + + VARDICTJAVA( + bam_input_ch, + fasta, + fasta_fai + ) } diff --git a/tests/modules/nf-core/vardictjava/test.yml b/tests/modules/nf-core/vardictjava/test.yml index 1f516da1d9e..7e88456f39a 100644 --- a/tests/modules/nf-core/vardictjava/test.yml +++ b/tests/modules/nf-core/vardictjava/test.yml @@ -3,5 +3,15 @@ tags: - vardictjava files: - - path: output/vardictjava/test.vcf.gz - md5sum: 3f1f227afc532bddeb58f16fd3013fc8 + - path: output/vardictjava/test.vcf + md5sum: e8411ecae49b4f6afa6ea0b681ea506e + - path: output/vardictjava/versions.yml + +- name: vardictjava test_vardictjava_paired_bam + command: nextflow run ./tests/modules/nf-core/vardictjava -entry test_vardictjava_paired_bam -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/vardictjava/nextflow.config + tags: + - vardictjava + files: + - path: output/vardictjava/test.vcf + md5sum: 8acdd8ca041f024aab55d102fb6b0c38 + - path: output/vardictjava/versions.yml From 10085b1b4be22f92e463eda6174c0063b4ebf9b7 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 13 Jul 2023 13:52:52 +0100 Subject: [PATCH 18/65] Adding modules from #scrnaseq for simpleaf (#3619) * Start adding modules from #scrnaseq for simpleaf * Fix tests * t2gene is necessary, simplify tests * Linteing fixes * Fix test files * Test fixes * prettier * Address feedback * Update test string- logs in newer version lack some messages * Apply suggestions from code review Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> * Post-review index fixes * Post-review quant fixes * add stubs * Add metas, fix meta usage * Appease eclint --------- Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- modules/nf-core/simpleaf/index/main.nf | 66 +++++++++++ modules/nf-core/simpleaf/index/meta.yml | 73 +++++++++++++ modules/nf-core/simpleaf/quant/main.nf | 80 ++++++++++++++ modules/nf-core/simpleaf/quant/meta.yml | 82 ++++++++++++++ tests/config/pytest_modules.yml | 8 ++ tests/modules/nf-core/simpleaf/index/main.nf | 31 ++++++ .../nf-core/simpleaf/index/nextflow.config | 5 + tests/modules/nf-core/simpleaf/index/test.yml | 103 ++++++++++++++++++ tests/modules/nf-core/simpleaf/quant/main.nf | 38 +++++++ .../nf-core/simpleaf/quant/nextflow.config | 8 ++ tests/modules/nf-core/simpleaf/quant/test.yml | 53 +++++++++ 11 files changed, 547 insertions(+) create mode 100644 modules/nf-core/simpleaf/index/main.nf create mode 100644 modules/nf-core/simpleaf/index/meta.yml create mode 100644 modules/nf-core/simpleaf/quant/main.nf create mode 100644 modules/nf-core/simpleaf/quant/meta.yml create mode 100644 tests/modules/nf-core/simpleaf/index/main.nf create mode 100644 tests/modules/nf-core/simpleaf/index/nextflow.config create mode 100644 tests/modules/nf-core/simpleaf/index/test.yml create mode 100644 tests/modules/nf-core/simpleaf/quant/main.nf create mode 100644 tests/modules/nf-core/simpleaf/quant/nextflow.config create mode 100644 tests/modules/nf-core/simpleaf/quant/test.yml diff --git a/modules/nf-core/simpleaf/index/main.nf b/modules/nf-core/simpleaf/index/main.nf new file mode 100644 index 00000000000..121c62c880c --- /dev/null +++ b/modules/nf-core/simpleaf/index/main.nf @@ -0,0 +1,66 @@ +process SIMPLEAF_INDEX { + tag "$genome_fasta $transcript_fasta" + label 'process_high' + + conda "bioconda::simpleaf=0.14.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/simpleaf:0.14.1--h4ac6f70_0': + 'biocontainers/simpleaf:0.14.1--h4ac6f70_0' }" + + input: + tuple val(meta), path(genome_fasta) + tuple val(meta2), path(genome_gtf) + tuple val(meta3), path(transcript_fasta) + + output: + tuple val(meta), path("${prefix}/index") , emit: index + tuple val(meta), path("${prefix}/ref/t2g_3col.tsv") , emit: transcript_tsv, optional: true + tuple val(meta), path("${prefix}") , emit: salmon + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def seq_inputs = (transcript_fasta) ? "--refseq $transcript_fasta" : "--gtf $genome_gtf --fasta $genome_fasta" + + // Output meta needs to correspond to the input used + meta = (transcript_fasta) ? meta3 : meta + prefix = task.ext.prefix ?: "${meta.id}" + """ + # export required var + export ALEVIN_FRY_HOME=. + + # prep simpleaf + simpleaf set-paths + + # run simpleaf index + simpleaf \\ + index \\ + --threads $task.cpus \\ + $seq_inputs \\ + $args \\ + -o ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + simpleaf: \$(simpleaf -V | tr -d '\\n' | cut -d ' ' -f 2) + salmon: \$(salmon --version | sed -e "s/salmon //g") + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: (meta.id ? "${meta.id}" : "${meta3.id}") + """ + mkdir -p ${prefix}/index + touch "${prefix}/ref/t2g_3col.tsv" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + simpleaf: \$(simpleaf -V | tr -d '\\n' | cut -d ' ' -f 2) + salmon: \$(salmon --version | sed -e "s/salmon //g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/simpleaf/index/meta.yml b/modules/nf-core/simpleaf/index/meta.yml new file mode 100644 index 00000000000..6b1226914e8 --- /dev/null +++ b/modules/nf-core/simpleaf/index/meta.yml @@ -0,0 +1,73 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: simpleaf_index +description: Indexing of transcriptome for gene expression quantification using SimpleAF +keywords: + - indexing + - transcriptome + - gene expression + - SimpleAF +tools: + - simpleaf: + description: | + SimpleAF is a tool for quantification of gene expression from RNA-seq data + homepage: https://github.com/COMBINE-lab/simpleaf + licence: ["BSD-3-Clause"] +input: + - meta: + type: map + description: | + Groovy Map containing information on genome_fasta + - genome_fasta: + type: file + description: | + FASTA file containing the genome sequence + - meta2: + type: map + description: | + Groovy Map containing information on genome_gtf + - genome_gtf: + type: file + description: | + GTF file containing transcript annotations. Optional if transcript FASTA file is provided. + - meta3: + type: map + description: | + Groovy Map containing information on transcript_fasta + - transcript_fasta: + type: file + description: | + FASTA file containing the transcript sequences. Optional if transcript GTF file is provided. + +output: + - meta: + type: map + description: | + Groovy Map containing information on genome_fasta or transcript_fasta (whichever was used) + - index: + type: directory + description: | + Folder containing the Salmon index files + pattern: "salmon/index" + - transcript_tsv: + type: file + description: | + Transcript-to-gene mapping file in 3-column TSV format + pattern: "salmon/ref/*_t2g_3col.tsv" + - salmon: + type: directory + description: | + Folder containing the Salmon files + pattern: "salmon" + - versions: + type: file + description: | + File containing software versions + pattern: "versions.yml" + +authors: + - "@fmalmeida" + - "@maxulysse" + - "@Khajidu" + - "@apeltzer" + - "@pinin4fjords" diff --git a/modules/nf-core/simpleaf/quant/main.nf b/modules/nf-core/simpleaf/quant/main.nf new file mode 100644 index 00000000000..03d7eb8cf29 --- /dev/null +++ b/modules/nf-core/simpleaf/quant/main.nf @@ -0,0 +1,80 @@ +process SIMPLEAF_QUANT { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::simpleaf=0.14.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/simpleaf:0.14.1--h4ac6f70_0': + 'biocontainers/simpleaf:0.14.1--h4ac6f70_0' }" + + input: + // + // Input reads are expected to come as: [ meta, [ pair1_read1, pair1_read2, pair2_read1, pair2_read2 ] ] + // Input array for a sample is created in the same order reads appear in samplesheet as pairs from replicates are appended to array. + // + tuple val(meta), val(chemistry), path(reads) + tuple val(meta2), path(index) + tuple val(meta3), path(txp2gene) + val resolution + tuple val(meta4), path(whitelist) + + output: + tuple val(meta), path("${prefix}"), emit: results + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args_list = args.tokenize() + prefix = task.ext.prefix ?: "${meta.id}" + + unfiltered_command = "" + if (whitelist) { + unfiltered_command = "-u <(gzip -dcf ${whitelist})" + } + + // separate forward from reverse pairs + def (forward, reverse) = reads.collate(2).transpose() + """ + # export required var + export ALEVIN_FRY_HOME=. + + # prep simpleaf + simpleaf set-paths + + # run simpleaf quant + simpleaf quant \\ + -1 ${forward.join( "," )} \\ + -2 ${reverse.join( "," )} \\ + -i ${index} \\ + -c $chemistry \\ + -r $resolution \\ + -o ${prefix} \\ + -t $task.cpus \\ + -m $txp2gene \\ + $unfiltered_command \\ + $args + + [[ ! -f ${prefix}/af_quant/all_freq.bin ]] && cp ${prefix}/af_quant/permit_freq.bin ${prefix}/af_quant/all_freq.bin + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + simpleaf: \$(simpleaf -V | tr -d '\\n' | cut -d ' ' -f 2) + salmon: \$(salmon --version | sed -e "s/salmon //g") + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir -p ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + simpleaf: \$(simpleaf -V | tr -d '\\n' | cut -d ' ' -f 2) + salmon: \$(salmon --version | sed -e "s/salmon //g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/simpleaf/quant/meta.yml b/modules/nf-core/simpleaf/quant/meta.yml new file mode 100644 index 00000000000..47dc5414c05 --- /dev/null +++ b/modules/nf-core/simpleaf/quant/meta.yml @@ -0,0 +1,82 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: simpleaf_quant +description: simpleaf is a program to simplify and customize the running and configuration of single-cell processing with alevin-fry. +keywords: + - quantification + - gene expression + - SimpleAF +tools: + - simpleaf: + description: | + SimpleAF is a tool for quantification of gene expression from RNA-seq data + homepage: https://github.com/COMBINE-lab/simpleaf + licence: ["BSD-3-Clause"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files for paired-end data. + Reads should be grouped by pairs. + - meta2: + type: map + description: | + Groovy Map containing index information + - index: + type: directory + description: Folder containing the index files + - meta3: + type: map + description: | + Groovy Map containing txp2gene information + - txp2gene: + type: file + description: | + File mapping transcripts to genes. + - chemistry: + type: string + description: | + Chemistry used for library preparation. It can be a string describing + the specific chemistry or the geometry of the barcode, UMI, and + mappable read. For example, "10xv2" and "10xv3" will apply the + appropriate settings for 10x Chromium v2 and v3 protocols, + respectively. Alternatively, you can provide a general geometry string + if your chemistry is not pre-registered. For example, instead of + "10xv2", you could use "1{b[16]u[10]x:}2{r:}", or instead of "10xv3", + you could use "1{b[16]u[12]x:}2{r:}". + - meta4: + type: map + description: | + Groovy Map containing whitelist information + - whitelist: + type: file + description: | + Whitelist file containing valid cell barcodes. Optional. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - alevin_results: + type: directory + description: | + Folder containing the Alevin results for a specific sample + pattern: "*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@fmalmeida" + - "@maxulysse" + - "@Khajidu" + - "@apeltzer" + - "@pinin4fjords" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 7b39824656f..2da44316566 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -3372,6 +3372,14 @@ sickle: - modules/nf-core/sickle/** - tests/modules/nf-core/sickle/** +simpleaf/index: + - modules/nf-core/simpleaf/index/** + - tests/modules/nf-core/simpleaf/index/** + +simpleaf/quant: + - modules/nf-core/simpleaf/quant/** + - tests/modules/nf-core/simpleaf/quant/** + sistr: - modules/nf-core/sistr/** - tests/modules/nf-core/sistr/** diff --git a/tests/modules/nf-core/simpleaf/index/main.nf b/tests/modules/nf-core/simpleaf/index/main.nf new file mode 100644 index 00000000000..947bdef5b05 --- /dev/null +++ b/tests/modules/nf-core/simpleaf/index/main.nf @@ -0,0 +1,31 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SIMPLEAF_INDEX } from '../../../../../modules/nf-core/simpleaf/index/main.nf' + +workflow test_simpleaf_index_expanded { + + genome_fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) + + meta = [ 'id': 'human_genome'] + + SIMPLEAF_INDEX ( + [ meta, genome_fasta ], + [ meta, gtf ], + [[],[]] + ) +} + +workflow test_simpleaf_index_direct { + + transcriptome_fasta = file(params.test_data['homo_sapiens']['genome']['transcriptome_fasta'], checkIfExists: true) + meta = [ 'id': 'human_transcriptome'] + + SIMPLEAF_INDEX ( + [[],[]], + [[],[]], + [ meta, transcriptome_fasta ], + ) +} diff --git a/tests/modules/nf-core/simpleaf/index/nextflow.config b/tests/modules/nf-core/simpleaf/index/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/simpleaf/index/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/simpleaf/index/test.yml b/tests/modules/nf-core/simpleaf/index/test.yml new file mode 100644 index 00000000000..8f82c6c01c5 --- /dev/null +++ b/tests/modules/nf-core/simpleaf/index/test.yml @@ -0,0 +1,103 @@ +- name: simpleaf index test_simpleaf_index_expanded + command: nextflow run ./tests/modules/nf-core/simpleaf/index -entry test_simpleaf_index_expanded -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/simpleaf/index/nextflow.config + tags: + - simpleaf + - simpleaf/index + files: + - path: output/simpleaf/human_genome/index/complete_ref_lens.bin + md5sum: 83d53fa7048affe5dfba4ba38f84fd5c + - path: output/simpleaf/human_genome/index/ctg_offsets.bin + md5sum: c37313b499eb0dc580d962b82ac63f9e + - path: output/simpleaf/human_genome/index/duplicate_clusters.tsv + md5sum: c96ca031de4888558eec24fd13bd1c9b + - path: output/simpleaf/human_genome/index/info.json + md5sum: a78d685bed73b8e19feddd1795c1360f + - path: output/simpleaf/human_genome/index/mphf.bin + md5sum: c7ae1b883f0987fedc8bb61e139136a7 + - path: output/simpleaf/human_genome/index/pre_indexing.log + contains: + - "done building index" + - path: output/simpleaf/human_genome/index/rank.bin + md5sum: 3b5c31ce5d3423b15687c59220d8ef3f + - path: output/simpleaf/human_genome/index/refAccumLengths.bin + md5sum: ba84af8bcdfe540fb66a59d623f7dfde + - path: output/simpleaf/human_genome/index/ref_indexing.log + contains: + - "ntHll estimated 54920 distinct k-mers, setting filter size to 2^20" + - path: output/simpleaf/human_genome/index/reflengths.bin + md5sum: 83d53fa7048affe5dfba4ba38f84fd5c + - path: output/simpleaf/human_genome/index/refseq.bin + md5sum: 64dc6c4822b648c2f36c7934ea9eeeed + - path: output/simpleaf/human_genome/index/seq.bin + - path: output/simpleaf/human_genome/index/simpleaf_index.json + contains: + - "salmon index -k 31" + - path: output/simpleaf/human_genome/index/t2g_3col.tsv + contains: + - "ENSG00000100181" + - path: output/simpleaf/human_genome/index/versionInfo.json + md5sum: f06db51ed32dec928fe518075deb4f2e + - path: output/simpleaf/human_genome/index_info.json + contains: + - "bin/alevin-fry" + - path: output/simpleaf/human_genome/ref/gene_id_to_name.tsv + contains: + - "ENSG00000287285\tAP000547.4" + - path: output/simpleaf/human_genome/ref/roers_make-ref.json + md5sum: 392af1580ee1cb8689353e66b2438ea1 + - path: output/simpleaf/human_genome/ref/roers_ref.fa + md5sum: b75f577627e23bd7708e2c0276a5299b + - path: output/simpleaf/human_genome/ref/t2g_3col.tsv + contains: + - "ENST00000400593" + - path: output/simpleaf/human_genome/simpleaf_index_log.json + contains: + - "salmon index -k 31" + - path: output/simpleaf/versions.yml + +- name: simpleaf index test_simpleaf_index_direct + command: nextflow run ./tests/modules/nf-core/simpleaf/index -entry test_simpleaf_index_direct -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/simpleaf/index/nextflow.config + tags: + - simpleaf + - simpleaf/index + files: + - path: output/simpleaf/human_transcriptome/index/complete_ref_lens.bin + md5sum: 75e3592b2ea434eeadb0ca19d684c206 + - path: output/simpleaf/human_transcriptome/index/ctable.bin + - path: output/simpleaf/human_transcriptome/index/ctg_offsets.bin + md5sum: 3d2ad5b4f1aea940a1d3864b9db19fa0 + - path: output/simpleaf/human_transcriptome/index/duplicate_clusters.tsv + md5sum: c96ca031de4888558eec24fd13bd1c9b + - path: output/simpleaf/human_transcriptome/index/info.json + contains: + - "human_transcriptome/index" + - path: output/simpleaf/human_transcriptome/index/mphf.bin + md5sum: 48234131012798a528048d48881c1ce2 + - path: output/simpleaf/human_transcriptome/index/pos.bin + - path: output/simpleaf/human_transcriptome/index/pre_indexing.log + contains: + - "done building index" + - path: output/simpleaf/human_transcriptome/index/rank.bin + md5sum: f6e3fc0a3faf4a6e52d31524ddab4c81 + - path: output/simpleaf/human_transcriptome/index/refAccumLengths.bin + md5sum: d6698204613dfa65fd5d9e426e696745 + - path: output/simpleaf/human_transcriptome/index/ref_indexing.log + contains: + - "ntHll estimated 50067 distinct k-mers, setting filter size to 2^20" + - path: output/simpleaf/human_transcriptome/index/reflengths.bin + md5sum: 75e3592b2ea434eeadb0ca19d684c206 + - path: output/simpleaf/human_transcriptome/index/refseq.bin + md5sum: 3d2a23204c63c73bf324ade407a86849 + - path: output/simpleaf/human_transcriptome/index/seq.bin + - path: output/simpleaf/human_transcriptome/index/simpleaf_index.json + contains: + - "salmon index -k 31" + - path: output/simpleaf/human_transcriptome/index/versionInfo.json + md5sum: f06db51ed32dec928fe518075deb4f2e + - path: output/simpleaf/human_transcriptome/index_info.json + contains: + - "bin/alevin-fry" + - path: output/simpleaf/human_transcriptome/simpleaf_index_log.json + contains: + - "salmon index -k 31 " + - path: output/simpleaf/versions.yml diff --git a/tests/modules/nf-core/simpleaf/quant/main.nf b/tests/modules/nf-core/simpleaf/quant/main.nf new file mode 100644 index 00000000000..240b4151fd2 --- /dev/null +++ b/tests/modules/nf-core/simpleaf/quant/main.nf @@ -0,0 +1,38 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SIMPLEAF_INDEX } from '../../../../../modules/nf-core/simpleaf/index/main.nf' +include { SIMPLEAF_QUANT } from '../../../../../modules/nf-core/simpleaf/quant/main.nf' + +workflow test_simpleaf_quant { + + genome_fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) + + meta = [ 'id': 'human'] + + SIMPLEAF_INDEX ( + [ meta, genome_fasta ], + [ meta, gtf ], + [[],[]] + ) + + input = [ + [ id:'test_10x', single_end:false, strandedness:'auto' ], // meta map + '10xv3', // Chemistry + [ + file(params.test_data['homo_sapiens']['10xgenomics']['cellranger']['test_10x_5k_cmvpos_tcells_gex1_fastq_1_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['10xgenomics']['cellranger']['test_10x_5k_cmvpos_tcells_gex1_fastq_2_gz'], checkIfExists: true) + ] + ] + + SIMPLEAF_QUANT ( + input, + SIMPLEAF_INDEX.out.index, + SIMPLEAF_INDEX.out.transcript_tsv, + 'cr-like', + [[],[]] + ) +} + diff --git a/tests/modules/nf-core/simpleaf/quant/nextflow.config b/tests/modules/nf-core/simpleaf/quant/nextflow.config new file mode 100644 index 00000000000..681b1b3af56 --- /dev/null +++ b/tests/modules/nf-core/simpleaf/quant/nextflow.config @@ -0,0 +1,8 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: 'test_simpleaf_quant:SIMPLEAF_QUANT' { + ext.args = { "--knee" } + } +} diff --git a/tests/modules/nf-core/simpleaf/quant/test.yml b/tests/modules/nf-core/simpleaf/quant/test.yml new file mode 100644 index 00000000000..3e4510548ef --- /dev/null +++ b/tests/modules/nf-core/simpleaf/quant/test.yml @@ -0,0 +1,53 @@ +- name: simpleaf quant test_simpleaf_quant + command: nextflow run ./tests/modules/nf-core/simpleaf/quant -entry test_simpleaf_quant -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/simpleaf/quant/nextflow.config + tags: + - simpleaf/quant + - simpleaf + files: + - path: output/simpleaf/test_10x/af_map/alevin/alevin.log + contains: + - "parsing read library format" + - path: output/simpleaf/test_10x/af_map/aux_info/meta_info.json + contains: + - "eeb564b47803fd3415a7ef3cca89695fcc0f52dd30eebc381846ff92d7f2c077" + - path: output/simpleaf/test_10x/af_map/cmd_info.json + contains: + - "test_10x/af_map" + - path: output/simpleaf/test_10x/af_map/logs/salmon_quant.log + contains: + - "Number uniquely mapped : 11" + - path: output/simpleaf/test_10x/af_map/map.rad + md5sum: 93ea1875bc36d769ba060d8b38f40aa1 + - path: output/simpleaf/test_10x/af_map/unmapped_bc_count.bin + md5sum: 7d0f401573b121914df1ef036405187c + - path: output/simpleaf/test_10x/af_quant/alevin/quants_mat.mtx + contains: + - "7 21 7" + - path: output/simpleaf/test_10x/af_quant/alevin/quants_mat_cols.txt + contains: + - "ENSG00000283633" + - path: output/simpleaf/test_10x/af_quant/alevin/quants_mat_rows.txt + md5sum: 78e92f0584cc4132374ea7f8fcc1bf1f + - path: output/simpleaf/test_10x/af_quant/all_freq.bin + md5sum: ff6a60def164baabaecc05e10b4ac397 + - path: output/simpleaf/test_10x/af_quant/collate.json + contains: + - "alevin-fry collate" + - path: output/simpleaf/test_10x/af_quant/featureDump.txt + md5sum: 8a337c9fa0660d108dcc0955fcd03b52 + - path: output/simpleaf/test_10x/af_quant/generate_permit_list.json + contains: + - "alevin-fry generate-permit-list" + - path: output/simpleaf/test_10x/af_quant/map.collated.rad + md5sum: bbad29bd96cb245d1893361be81b0ca3 + - path: output/simpleaf/test_10x/af_quant/permit_freq.bin + md5sum: bfddd006392e272c24849861597c34b4 + - path: output/simpleaf/test_10x/af_quant/permit_map.bin + - path: output/simpleaf/test_10x/af_quant/quant.json + contains: + - "alevin-fry quant -i test_10x/af_quant" + - path: output/simpleaf/test_10x/af_quant/unmapped_bc_count_collated.bin + - path: output/simpleaf/test_10x/simpleaf_quant_log.json + contains: + - "subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R2_001.fastq.gz" + - path: output/simpleaf/versions.yml From 1e42df33ff579c126d36ab73d8dcc4fd4f20e11f Mon Sep 17 00:00:00 2001 From: Charlotte Capitanchik Date: Fri, 14 Jul 2023 16:12:48 +0900 Subject: [PATCH 19/65] update icount mini version (#3640) module currently fails, i've fixed the error in icount-mini so now by bumping the version here we fix the issue (old matplotlib syntax) --- modules/nf-core/icountmini/metagene/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/icountmini/metagene/main.nf b/modules/nf-core/icountmini/metagene/main.nf index d6a01476b9e..946e2acd0fc 100644 --- a/modules/nf-core/icountmini/metagene/main.nf +++ b/modules/nf-core/icountmini/metagene/main.nf @@ -2,10 +2,10 @@ process ICOUNTMINI_METAGENE { tag "$meta.id" label 'process_low' - conda "bioconda::icount-mini=3.0.0" + conda "bioconda::icount-mini=3.0.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/icount-mini:3.0.0--pyh7cba7a3_0': - 'biocontainers/icount-mini:3.0.0--pyh7cba7a3_0' }" + 'https://depot.galaxyproject.org/singularity/icount-mini:3.0.1--pyh7cba7a3_0': + 'biocontainers/icount-mini:3.0.1--pyh7cba7a3_0' }" input: tuple val(meta), path(bed) From 4fcf72974a474984bc93718fcc9ba5376b224bb0 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 14 Jul 2023 09:43:38 +0200 Subject: [PATCH 20/65] Bump taxpasta version (biocontainer not yet available) (#3639) --- modules/nf-core/taxpasta/merge/main.nf | 6 +++--- modules/nf-core/taxpasta/standardise/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/taxpasta/merge/main.nf b/modules/nf-core/taxpasta/merge/main.nf index dcbca616892..bddda48221c 100644 --- a/modules/nf-core/taxpasta/merge/main.nf +++ b/modules/nf-core/taxpasta/merge/main.nf @@ -2,10 +2,10 @@ process TAXPASTA_MERGE { tag "$meta.id" label 'process_single' - conda "bioconda::taxpasta=0.4.0" + conda "bioconda::taxpasta=0.4.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.0--pyhdfd78af_0': - 'biocontainers/taxpasta:0.4.0--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.1--pyhdfd78af_0': + 'biocontainers/taxpasta:0.4.1--pyhdfd78af_0' }" input: diff --git a/modules/nf-core/taxpasta/standardise/main.nf b/modules/nf-core/taxpasta/standardise/main.nf index 4dde79670f0..4565ccfa7e2 100644 --- a/modules/nf-core/taxpasta/standardise/main.nf +++ b/modules/nf-core/taxpasta/standardise/main.nf @@ -2,10 +2,10 @@ process TAXPASTA_STANDARDISE { tag "$meta.id" label 'process_single' - conda "bioconda::taxpasta=0.4.0" + conda "bioconda::taxpasta=0.4.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.0--pyhdfd78af_0': - 'biocontainers/taxpasta:0.4.0--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/taxpasta:0.4.1--pyhdfd78af_0': + 'biocontainers/taxpasta:0.4.1--pyhdfd78af_0' }" input: tuple val(meta), path(profile) From 8f61632e7248e790c2d4b30de9c82a12132670fa Mon Sep 17 00:00:00 2001 From: Aldo Sergi <50989854+aldosr@users.noreply.github.com> Date: Fri, 14 Jul 2023 13:28:41 +0200 Subject: [PATCH 21/65] Purecn/run (#3140) * Set up nf-core template for purecn/run module * Add run script and I/O * Clean TODOs and set main script * Fix duplicate entry * Set up main script * [ci skip] Format with prettier * [ci skip] Address review question and set up stub * [ci skip] Set stub for testing * Reformat with prettier * [CI skip] Adjust some typos * [CI skip] Set up test script using stub * Set up test yml * Reformat with prettier * Set up meta.yml file and fix typos * Reformat with prettier * Fix typo * Remove quay.io from container string * Remove optional input argument * Add optional outputs and clean non-mandatory parameters * Clean non-mandatory outputs * Reformat outputs * Fix minor and address reviews --- modules/nf-core/purecn/run/main.nf | 73 ++++++++++++ modules/nf-core/purecn/run/meta.yml | 105 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/modules/nf-core/purecn/run/main.nf | 35 ++++++ .../nf-core/purecn/run/nextflow.config | 5 + tests/modules/nf-core/purecn/run/test.yml | 10 ++ 6 files changed, 232 insertions(+) create mode 100644 modules/nf-core/purecn/run/main.nf create mode 100644 modules/nf-core/purecn/run/meta.yml create mode 100644 tests/modules/nf-core/purecn/run/main.nf create mode 100644 tests/modules/nf-core/purecn/run/nextflow.config create mode 100644 tests/modules/nf-core/purecn/run/test.yml diff --git a/modules/nf-core/purecn/run/main.nf b/modules/nf-core/purecn/run/main.nf new file mode 100644 index 00000000000..956b9efc365 --- /dev/null +++ b/modules/nf-core/purecn/run/main.nf @@ -0,0 +1,73 @@ +process PURECN_RUN { + tag "$meta.id" + label 'process_medium' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + conda "bioconda::bioconductor-purecn=2.4.0 bioconda::bioconductor-txdb.hsapiens.ucsc.hg38.knowngene=3.16.0 bioconductor-txdb.hsapiens.ucsc.hg19.knowngene=3.2.2 bioconda::bioconductor-org.hs.eg.db=3.16.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-582ac26068889091d5e798347c637f8208d77a71:a29c64a63498b1ee8b192521fdf6ed3c65506994-0': + 'biocontainers/mulled-v2-582ac26068889091d5e798347c637f8208d77a71:a29c64a63498b1ee8b192521fdf6ed3c65506994-0' }" + + input: + tuple val(meta), path(intervals), path(coverage) + path normal_db + val genome + + output: + tuple val(meta), path("*.pdf") , emit: pdf + tuple val(meta), path("*_local_optima.pdf") , emit: local_optima_pdf + tuple val(meta), path("*_dnacopy.seg") , emit: seg + tuple val(meta), path("*_genes.csv") , emit: genes_csv , optional: true + tuple val(meta), path("*_amplification_pvalues.csv") , emit: amplification_pvalues_csv , optional: true + tuple val(meta), path("*.vcf.gz") , emit: vcf_gz , optional: true + tuple val(meta), path("*_variants.csv") , emit: variants_csv , optional: true + tuple val(meta), path("*_loh.csv") , emit: loh_csv , optional: true + tuple val(meta), path("*_chromosomes.pdf") , emit: chr_pdf , optional: true + tuple val(meta), path("*_segmentation.pdf") , emit: segmentation_pdf , optional: true + tuple val(meta), path("*_multisample.seg") , emit: multisample_seg , optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2.4.0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + + """ + library_path=\$(Rscript -e 'cat(.libPaths(), sep = "\\n")') + Rscript "\$library_path"/PureCN/extdata/PureCN.R \\ + --out ./ \\ + --tumor ${coverage} \\ + --sampleid ${prefix} \\ + --normaldb ${normal_db} \\ + --intervals ${intervals} \\ + --genome ${genome} \\ + --parallel \\ + --cores ${task.cpus} \\ + --stats-file ${prefix}_stats.txt \\ + ${args} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + purecn: ${VERSION} + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2.4.0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + + """ + touch ${prefix}.pdf + touch ${prefix}_local_optima.pdf + touch ${prefix}_dnacopy.seg + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + purecn: ${VERSION} + END_VERSIONS + """ +} diff --git a/modules/nf-core/purecn/run/meta.yml b/modules/nf-core/purecn/run/meta.yml new file mode 100644 index 00000000000..e51823a45cf --- /dev/null +++ b/modules/nf-core/purecn/run/meta.yml @@ -0,0 +1,105 @@ +name: "purecn_run" +description: Run PureCN workflow to normalize, segment and determine purity and ploidy +keywords: + - copy number alteration calling + - hybrid capture sequencing + - targeted sequencing + - DNA sequencing +tools: + - "purecn": + description: "Copy number calling and SNV classification using targeted short read sequencing" + homepage: "https://bioconductor.org/packages/release/bioc/html/PureCN.html" + documentation: "https://bioconductor.org/packages/release/bioc/html/PureCN.html" + tool_dev_url: "https://github.com/lima1/PureCN" + doi: "10.1186/s13029-016-0060-z" + licence: "Artistic-2.0" + args_id: "$args" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - intervals: + type: file + description: | + BED file of target intervals, generated from IntervalFile.R + pattern: "{*.bed,*.txt}" + - coverage: + type: file + description: Coverage file generated from Coverage.R + pattern: "*.txt" + - normaldb: + type: file + description: | + Normal panel in RDS format, generated from NormalDB.R + pattern: "*.rds" + - genome: + type: string + description: Genome build + +output: + - pdf: + type: file + description: | + PDF file containing copy number plots + pattern: "*.pdf" + - local_optima_pdf: + type: file + description: | + PDF file containing local optima plots + pattern: "*_local_optima.pdf" + - seg: + type: file + description: | + Tab-delimited file containing segmentation results + pattern: "*_dnacopy.seg" + - genes_csv: + type: file + description: | + CSV file containing gene copy number calls. Optional + pattern: "*_genes.csv" + - amplification_pvalues_csv: + type: file + description: | + CSV file containing amplification p-values. Optional + pattern: "*_amplification_pvalues.csv" + - vcf_gz: + type: file + description: | + GZipped VCF file containing SNV calls. Optional + pattern: "*.vcf.gz" + - variants_csv: + type: file + description: | + CSV file containing SNV calls. Optional + pattern: "*_variants.csv" + - loh_csv: + type: file + description: | + CSV file containing LOH calls. Optional + pattern: "*_loh.csv" + - chr_pdf: + type: file + description: | + PDF file containing chromosome plots. Optional + pattern: "*_chromosomes.pdf" + - segmentation_pdf: + type: file + description: | + PDF file containing segmentation plots. Optional + pattern: "*_segmentation.pdf" + - multisample.seg: + type: file + description: | + Tab-delimited file containing segmentation data from multiple samples. Optional + pattern: "*_multisample.seg" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@aldosr" + - "@lbeltrame" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2da44316566..cfebecec1a6 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -2907,6 +2907,10 @@ purecn/normaldb: - modules/nf-core/purecn/normaldb/** - tests/modules/nf-core/purecn/normaldb/** +purecn/run: + - modules/nf-core/purecn/run/** + - tests/modules/nf-core/purecn/run/** + purgedups/calcuts: - modules/nf-core/purgedups/calcuts/** - tests/modules/nf-core/purgedups/calcuts/** diff --git a/tests/modules/nf-core/purecn/run/main.nf b/tests/modules/nf-core/purecn/run/main.nf new file mode 100644 index 00000000000..51b78278fa5 --- /dev/null +++ b/tests/modules/nf-core/purecn/run/main.nf @@ -0,0 +1,35 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PURECN_RUN } from '../../../../../modules/nf-core/purecn/run/main.nf' + +process STUB_PURECN_RUN { + output: + path("*.txt") , emit: intervals + path("*.txt") , emit: coverage + path("*.rds") , emit: normal_db + + stub: + """ + touch interval_file.txt + touch coverage.txt + touch normal_db.rds + """ +} + +workflow test_purecn_run { + + STUB_PURECN_RUN() + + input = [ + [ id:'test'], + file("interval_file.txt"), + file("coverage.txt") + ] + + normal_db = file("normal_db.rds") + genome = "hg38" + + PURECN_RUN ( input, normal_db, genome ) +} diff --git a/tests/modules/nf-core/purecn/run/nextflow.config b/tests/modules/nf-core/purecn/run/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/purecn/run/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/purecn/run/test.yml b/tests/modules/nf-core/purecn/run/test.yml new file mode 100644 index 00000000000..5c062bac774 --- /dev/null +++ b/tests/modules/nf-core/purecn/run/test.yml @@ -0,0 +1,10 @@ +- name: purecn run + command: nextflow run ./tests/modules/nf-core/purecn/run -entry test_purecn_run -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/purecn/run/nextflow.config -stub-run + tags: + - purecn + - purecn/run + files: + - path: output/purecn/test.pdf + - path: output/purecn/test_dnacopy.seg + - path: output/purecn/test_local_optima.pdf + - path: output/purecn/versions.yml From 4592eceeaaca17e6de9e4ba9eb92fe18a2946b42 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 14 Jul 2023 15:36:25 +0200 Subject: [PATCH 22/65] new module: samtools/import (#3642) * new module: samtools/import * fix versions * fix versions some more * Update modules/nf-core/samtools/import/main.nf * fix meta --- modules/nf-core/samtools/import/main.nf | 60 +++++++++++++++++++ modules/nf-core/samtools/import/meta.yml | 57 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/nf-core/samtools/import/main.nf | 36 +++++++++++ .../nf-core/samtools/import/nextflow.config | 5 ++ .../modules/nf-core/samtools/import/test.yml | 29 +++++++++ 6 files changed, 191 insertions(+) create mode 100644 modules/nf-core/samtools/import/main.nf create mode 100644 modules/nf-core/samtools/import/meta.yml create mode 100644 tests/modules/nf-core/samtools/import/main.nf create mode 100644 tests/modules/nf-core/samtools/import/nextflow.config create mode 100644 tests/modules/nf-core/samtools/import/test.yml diff --git a/modules/nf-core/samtools/import/main.nf b/modules/nf-core/samtools/import/main.nf new file mode 100644 index 00000000000..c7180c701a0 --- /dev/null +++ b/modules/nf-core/samtools/import/main.nf @@ -0,0 +1,60 @@ +process SAMTOOLS_IMPORT { + tag "$meta.id" + label 'process_single' + + conda "bioconda::samtools=1.17" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0': + 'biocontainers/samtools:1.17--h00cdaf9_0' }" + + input: + tuple val(meta), path(reads) + + 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 + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = args.contains("--output-fmt sam") ? "sam" : + args.contains("--output-fmt bam") ? "bam" : + args.contains("--output-fmt cram") ? "cram" : + "bam" + def input = reads instanceof List && meta.single_end ? reads.join(" -0") : // multiple single-end files + reads instanceof List && !meta.single_end ? "-1 $reads[0] -2 $reads[1]": // paired end file + meta.single_end ? "-0 $reads" : // single single-end file + !meta.single_end ? "-s $reads": // interleave paired-end file + reads // if all else fails, just add the reads without flags + """ + samtools \\ + import \\ + $input \\ + $args \\ + -@ $task.cpus \\ + -o ${prefix}.${suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}.bam + + 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/import/meta.yml b/modules/nf-core/samtools/import/meta.yml new file mode 100644 index 00000000000..122c16f9795 --- /dev/null +++ b/modules/nf-core/samtools/import/meta.yml @@ -0,0 +1,57 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "samtools_import" +description: converts FASTQ files to unmapped SAM/BAM/CRAM +keywords: + - import + - fastq + - bam + - sam + - cram +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: http://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - reads: + type: file + description: fastq data to be converted to SAM/BAM/CRAM + pattern: "*.{fastq,fq,fastq.gz,fq.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sam: + type: file + description: SAM file + pattern: "*.sam" + - bam: + type: file + description: Unaligned BAM file + pattern: "*.bam" + - cram: + type: file + description: Unaligned CRAM file + pattern: "*.cram" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cfebecec1a6..cb2a6979b72 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -3155,6 +3155,10 @@ samtools/idxstats: - modules/nf-core/samtools/idxstats/** - tests/modules/nf-core/samtools/idxstats/** +samtools/import: + - modules/nf-core/samtools/import/** + - tests/modules/nf-core/samtools/import/** + samtools/index: - modules/nf-core/samtools/index/** - tests/modules/nf-core/samtools/index/** diff --git a/tests/modules/nf-core/samtools/import/main.nf b/tests/modules/nf-core/samtools/import/main.nf new file mode 100644 index 00000000000..daaa1afb609 --- /dev/null +++ b/tests/modules/nf-core/samtools/import/main.nf @@ -0,0 +1,36 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SAMTOOLS_IMPORT } from '../../../../../modules/nf-core/samtools/import/main.nf' + +workflow test_samtools_import_single { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + SAMTOOLS_IMPORT ( input ) +} + +workflow test_samtools_import_paired { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), + ] + + SAMTOOLS_IMPORT ( input ) +} + +workflow test_samtools_import_interleaved { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) + ] + + SAMTOOLS_IMPORT ( input ) +} diff --git a/tests/modules/nf-core/samtools/import/nextflow.config b/tests/modules/nf-core/samtools/import/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/samtools/import/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/samtools/import/test.yml b/tests/modules/nf-core/samtools/import/test.yml new file mode 100644 index 00000000000..cf4eb3e7263 --- /dev/null +++ b/tests/modules/nf-core/samtools/import/test.yml @@ -0,0 +1,29 @@ +- name: samtools import test_samtools_import_single + command: nextflow run ./tests/modules/nf-core/samtools/import -entry test_samtools_import_single -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/import/nextflow.config + tags: + - samtools/import + - samtools + files: + - path: output/samtools/test.bam + md5sum: 5231944dd122dc2431ea4fb6de10041b + - path: output/samtools/versions.yml + +- name: samtools import test_samtools_import_paired + command: nextflow run ./tests/modules/nf-core/samtools/import -entry test_samtools_import_paired -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/import/nextflow.config + tags: + - samtools/import + - samtools + files: + - path: output/samtools/test.bam + md5sum: 5370b9bb6d0c159267911827608b3e2b + - path: output/samtools/versions.yml + +- name: samtools import test_samtools_import_interleaved + command: nextflow run ./tests/modules/nf-core/samtools/import -entry test_samtools_import_interleaved -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/import/nextflow.config + tags: + - samtools/import + - samtools + files: + - path: output/samtools/test.bam + md5sum: ef41ce2ef0ec71864f345bb1a6f3ba84 + - path: output/samtools/versions.yml From e335edf79e120587da0264bdd07d88efbee21c93 Mon Sep 17 00:00:00 2001 From: Damon-Lee Pointon <51855558+DLBPointon@users.noreply.github.com> Date: Mon, 17 Jul 2023 10:14:41 +0100 Subject: [PATCH 23/65] Adding seqkit sliding command (#3637) * Adding seqkit sliding command * Linting fix * Updating for better matching * reverted to regex using end line markers for better matching other wise fastq gets caught by fa, error in other modules * Added a test for fastq too --------- Co-authored-by: Matthieu Muffato --- modules/nf-core/seqkit/sliding/main.nf | 40 ++++++++++++++++++ modules/nf-core/seqkit/sliding/meta.yml | 42 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/nf-core/seqkit/sliding/main.nf | 25 +++++++++++ .../nf-core/seqkit/sliding/nextflow.config | 7 ++++ tests/modules/nf-core/seqkit/sliding/test.yml | 18 ++++++++ 6 files changed, 136 insertions(+) create mode 100644 modules/nf-core/seqkit/sliding/main.nf create mode 100644 modules/nf-core/seqkit/sliding/meta.yml create mode 100644 tests/modules/nf-core/seqkit/sliding/main.nf create mode 100644 tests/modules/nf-core/seqkit/sliding/nextflow.config create mode 100644 tests/modules/nf-core/seqkit/sliding/test.yml diff --git a/modules/nf-core/seqkit/sliding/main.nf b/modules/nf-core/seqkit/sliding/main.nf new file mode 100644 index 00000000000..ffa570eb58f --- /dev/null +++ b/modules/nf-core/seqkit/sliding/main.nf @@ -0,0 +1,40 @@ +process SEQKIT_SLIDING { + tag "$meta.id" + label 'process_low' + + conda "bioconda::seqkit=2.1.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.1.0--h9ee0642_0': + 'biocontainers/seqkit:2.1.0--h9ee0642_0' }" + + input: + tuple val(meta), path(fastx) + + output: + tuple val(meta), path("*.fast*"), emit: fastx + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta$|.+\.fa$|.+\.fas$|.+\.fna$/) { + extension = "fasta" + } + """ + seqkit \\ + sliding \\ + ${fastx} \\ + ${args} \\ + --threads ${task.cpus} \\ + -o ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit | sed '3!d; s/Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/seqkit/sliding/meta.yml b/modules/nf-core/seqkit/sliding/meta.yml new file mode 100644 index 00000000000..d6d6362780c --- /dev/null +++ b/modules/nf-core/seqkit/sliding/meta.yml @@ -0,0 +1,42 @@ +name: seqkit_sliding +description: Use seqkit to generate sliding windows of input fasta +keywords: + - seqkit + - sliding + - windows +tools: + - seqkit: + description: Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. + homepage: https://bioinf.shenwei.me/seqkit/usage/ + documentation: https://bioinf.shenwei.me/seqkit/usage/ + tool_dev_url: https://github.com/shenwei356/seqkit/ + doi: "10.1371/journal.pone.016396" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastx: + type: file + description: fasta/q file + pattern: "*.{fasta,fastq,fa,fq,fas,fna,faa}*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - windows: + type: file + description: fasta/q window file + pattern: "*.{fasta,fastq,fa,fq,fas,fna,faa}*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@DLBPointon" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cb2a6979b72..54dbac81223 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -3259,6 +3259,10 @@ seqkit/replace: - modules/nf-core/seqkit/replace/** - tests/modules/nf-core/seqkit/replace/** +seqkit/sliding: + - modules/nf-core/seqkit/sliding/** + - tests/modules/nf-core/seqkit/sliding/** + seqkit/split2: - modules/nf-core/seqkit/split2/** - tests/modules/nf-core/seqkit/split2/** diff --git a/tests/modules/nf-core/seqkit/sliding/main.nf b/tests/modules/nf-core/seqkit/sliding/main.nf new file mode 100644 index 00000000000..074de723360 --- /dev/null +++ b/tests/modules/nf-core/seqkit/sliding/main.nf @@ -0,0 +1,25 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQKIT_SLIDING } from '../../../../../modules/nf-core/seqkit/sliding/main.nf' + +workflow test_seqkit_sliding_fasta { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + ] + + SEQKIT_SLIDING ( input ) + +} + +workflow test_seqkit_sliding_fastq { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + SEQKIT_SLIDING ( input ) + +} diff --git a/tests/modules/nf-core/seqkit/sliding/nextflow.config b/tests/modules/nf-core/seqkit/sliding/nextflow.config new file mode 100644 index 00000000000..790f4c163f6 --- /dev/null +++ b/tests/modules/nf-core/seqkit/sliding/nextflow.config @@ -0,0 +1,7 @@ +process { + + withName: 'SEQKIT_SLIDING' { + ext.args = "-s 2 -W 5" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } +} diff --git a/tests/modules/nf-core/seqkit/sliding/test.yml b/tests/modules/nf-core/seqkit/sliding/test.yml new file mode 100644 index 00000000000..88b160b1f02 --- /dev/null +++ b/tests/modules/nf-core/seqkit/sliding/test.yml @@ -0,0 +1,18 @@ +- name: seqkit sliding test_seqkit_sliding_fasta + command: nextflow run ./tests/modules/nf-core/seqkit/sliding -entry test_seqkit_sliding_fasta -c ./tests/config/nextflow.config + tags: + - seqkit/sliding + - seqkit + files: + - path: output/seqkit/test.fasta + md5sum: d5e112b55c37bef1f16f28ba16b323dd + - path: output/seqkit/versions.yml +- name: seqkit sliding test_seqkit_sliding_fastq + command: nextflow run ./tests/modules/nf-core/seqkit/sliding -entry test_seqkit_sliding_fastq -c ./tests/config/nextflow.config + tags: + - seqkit/sliding + - seqkit + files: + - path: output/seqkit/test.fastq + md5sum: 59f475cac6d2c372ce2d3a1e3c40305b + - path: output/seqkit/versions.yml From 60c0ee5831cf013165261f34a6d1b3866f0a7c5e Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Mon, 17 Jul 2023 07:42:46 -0400 Subject: [PATCH 24/65] Hicexplorer hicpca (#2933) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * create module hicpca * Update modules/nf-core/hicexplorer/hicpca/main.nf Co-authored-by: Sébastien Guizard * Update modules/nf-core/hicexplorer/hicpca/main.nf Co-authored-by: Sébastien Guizard * add more keywords. * remove quay.io. --------- Co-authored-by: Sébastien Guizard --- modules/nf-core/hicexplorer/hicpca/main.nf | 56 +++++++++++++++++++ modules/nf-core/hicexplorer/hicpca/meta.yml | 47 ++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../nf-core/hicexplorer/hicpca/main.nf | 15 +++++ .../hicexplorer/hicpca/nextflow.config | 5 ++ .../nf-core/hicexplorer/hicpca/test.yml | 11 ++++ 6 files changed, 138 insertions(+) create mode 100644 modules/nf-core/hicexplorer/hicpca/main.nf create mode 100644 modules/nf-core/hicexplorer/hicpca/meta.yml create mode 100644 tests/modules/nf-core/hicexplorer/hicpca/main.nf create mode 100644 tests/modules/nf-core/hicexplorer/hicpca/nextflow.config create mode 100644 tests/modules/nf-core/hicexplorer/hicpca/test.yml diff --git a/modules/nf-core/hicexplorer/hicpca/main.nf b/modules/nf-core/hicexplorer/hicpca/main.nf new file mode 100644 index 00000000000..6e0477c36da --- /dev/null +++ b/modules/nf-core/hicexplorer/hicpca/main.nf @@ -0,0 +1,56 @@ +process HICEXPLORER_HICPCA { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::hicexplorer=3.7.2 numpy=1.23.5" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hicexplorer:3.7.2--pyhdfd78af_1': + 'biocontainers/hicexplorer:3.7.2--pyhdfd78af_1' }" + + input: + tuple val(meta), path(matrix) + + output: + tuple val(meta), path("${prefix}_*") , emit:results + tuple val(meta), path("${prefix}_pca1.$format"), emit:pca1 + tuple val(meta), path("${prefix}_pca2.$format"), emit:pca2 + path("versions.yml") , emit:versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + args = args.tokenize() + def idx = args.findIndexOf{ it == '--format' | it == '-f' } + format = 'bigwig' + if (idx>=0) { + format = args[idx+1] + args.remove(idx+1) + args.remove(idx) + } + idx = args.indexOf('--whichEigenvectors') + eigenvectors = '1 2' + if(idx>=0) { + eigenvectors = args[idx + 1] + args.remove(idx+1) + args.remove(idx) + } + outfilenames = eigenvectors.tokenize() + .collect{"${prefix}_pca${it}.${format}"}.join(' ') + args = args.join(' ') + """ + hicPCA \\ + -m $matrix \\ + $args \\ + --format $format \\ + --whichEigenvectors $eigenvectors \\ + --outputFileName $outfilenames + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hicexplorer: \$(hicPCA --version 2>&1 | sed 's/hicPCA //') + END_VERSIONS + """ +} diff --git a/modules/nf-core/hicexplorer/hicpca/meta.yml b/modules/nf-core/hicexplorer/hicpca/meta.yml new file mode 100644 index 00000000000..a796b570de2 --- /dev/null +++ b/modules/nf-core/hicexplorer/hicpca/meta.yml @@ -0,0 +1,47 @@ +name: "hicexplorer_hicpca" +description: Computes PCA eigenvectors for a Hi-C matrix. +keywords: + - eigenvectors + - PCA + - hicPCA +tools: + - "hicexplorer": + description: "Set of programs to process, analyze and visualize Hi-C and capture Hi-C data" + homepage: "https://hicexplorer.readthedocs.io" + documentation: "https://hicexplorer.readthedocs.io" + tool_dev_url: "https://github.com/deeptools/HiCExplorer" + doi: "10.1038/s41467-017-02525-w" + licence: "['GPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', bin:50000 ] + - matrix: + type: file + description: HiCExplorer matrix in h5 format + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', bin:50000 ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - results: + type: file + description: Outputs of hicPCA + - pca1: + type: file + description: PCA1 file + - pca2: + type: file + description: PCA2 file + +authors: + - "@jianhong" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 54dbac81223..eb3058a9474 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1787,6 +1787,10 @@ hicap: - modules/nf-core/hicap/** - tests/modules/nf-core/hicap/** +hicexplorer/hicpca: + - modules/nf-core/hicexplorer/hicpca/** + - tests/modules/nf-core/hicexplorer/hicpca/** + hifiasm: - modules/nf-core/hifiasm/** - tests/modules/nf-core/hifiasm/** diff --git a/tests/modules/nf-core/hicexplorer/hicpca/main.nf b/tests/modules/nf-core/hicexplorer/hicpca/main.nf new file mode 100644 index 00000000000..1e9d6d6244e --- /dev/null +++ b/tests/modules/nf-core/hicexplorer/hicpca/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HICEXPLORER_HICPCA } from '../../../../../modules/nf-core/hicexplorer/hicpca/main.nf' + +workflow test_hicexplorer_hicpca { + + input = [ + [ id:'test' ], // meta map + file('https://github.com/deeptools/HiCExplorer/raw/master/hicexplorer/test/test_data/hicPCA/mm9_reduced_chr1.cool', checkIfExists: true) + ] + + HICEXPLORER_HICPCA ( input ) +} diff --git a/tests/modules/nf-core/hicexplorer/hicpca/nextflow.config b/tests/modules/nf-core/hicexplorer/hicpca/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/hicexplorer/hicpca/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/hicexplorer/hicpca/test.yml b/tests/modules/nf-core/hicexplorer/hicpca/test.yml new file mode 100644 index 00000000000..29440747392 --- /dev/null +++ b/tests/modules/nf-core/hicexplorer/hicpca/test.yml @@ -0,0 +1,11 @@ +- name: hicexplorer hicpca test_hicexplorer_hicpca + command: nextflow run ./tests/modules/nf-core/hicexplorer/hicpca -entry test_hicexplorer_hicpca -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hicexplorer/hicpca/nextflow.config + tags: + - hicexplorer + - hicexplorer/hicpca + files: + - path: output/hicexplorer/test_pca1.bigwig + md5sum: e228fde481bedea641bcd0204bb663a4 + - path: output/hicexplorer/test_pca2.bigwig + md5sum: 109c0d3cc70ecaf3647f3293504a9683 + - path: output/hicexplorer/versions.yml From ad367dcff8275a25df7716ac867267c48eb4ab78 Mon Sep 17 00:00:00 2001 From: Jasmin Frangenberg <73216762+jasmezz@users.noreply.github.com> Date: Wed, 19 Jul 2023 09:59:20 +0000 Subject: [PATCH 25/65] Fix bug in pyrodigal module (#3643) Add "--force" to pigz --- modules/nf-core/pyrodigal/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/pyrodigal/main.nf b/modules/nf-core/pyrodigal/main.nf index c6429b9d852..aa8e9e48c36 100644 --- a/modules/nf-core/pyrodigal/main.nf +++ b/modules/nf-core/pyrodigal/main.nf @@ -34,7 +34,7 @@ process PYRODIGAL { -a ${prefix}.faa \\ -s ${prefix}.score - pigz -nm ${prefix}* + pigz -nmf ${prefix}* cat <<-END_VERSIONS > versions.yml "${task.process}": From 76e88d8321a7f067796e31c8db75c48fda692038 Mon Sep 17 00:00:00 2001 From: Jasmin Frangenberg <73216762+jasmezz@users.noreply.github.com> Date: Wed, 19 Jul 2023 10:31:08 +0000 Subject: [PATCH 26/65] Update gecco/run (#3652) Version bump to 0.9.8 --- modules/nf-core/gecco/run/main.nf | 6 +++--- tests/modules/nf-core/gecco/run/test.yml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/nf-core/gecco/run/main.nf b/modules/nf-core/gecco/run/main.nf index b0a76a71e22..711fb96555d 100644 --- a/modules/nf-core/gecco/run/main.nf +++ b/modules/nf-core/gecco/run/main.nf @@ -2,10 +2,10 @@ process GECCO_RUN { tag "$meta.id" label 'process_low' - conda "bioconda::gecco=0.9.2" + conda "bioconda::gecco=0.9.8" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gecco:0.9.2--pyhdfd78af_0': - 'biocontainers/gecco:0.9.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gecco:0.9.8--pyhdfd78af_0': + 'biocontainers/gecco:0.9.8--pyhdfd78af_0' }" input: tuple val(meta), path(input), path(hmm) diff --git a/tests/modules/nf-core/gecco/run/test.yml b/tests/modules/nf-core/gecco/run/test.yml index 847364f7da5..bb5ad93d068 100644 --- a/tests/modules/nf-core/gecco/run/test.yml +++ b/tests/modules/nf-core/gecco/run/test.yml @@ -1,13 +1,13 @@ - name: gecco run test_gecco_run - command: nextflow run ./tests/modules/nf-core/gecco/run -entry test_gecco_run -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/gecco/run/nextflow.config + command: nextflow run ./tests/modules/nf-core/gecco/run -entry test_gecco_run -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/gecco/run/nextflow.config tags: - gecco/run - gecco files: - path: output/gecco/NC_018507.1_cluster_1.gbk - path: output/gecco/genome.clusters.tsv - md5sum: 6560ec765f6bbae50645896fd93b35cd + md5sum: 84a10da0afff6e2085d8296db69eb8b0 - path: output/gecco/genome.features.tsv - md5sum: 07492cf186003311ba9829056c65787f + md5sum: dcd929c60337b4835729d886897cdd36 - path: output/gecco/genome.genes.tsv - md5sum: 031a37dc603f8a5296f462608fd7bcc3 + md5sum: 2338b99d9b77200e9a071941ad8bb3ac From 9134e17967ae68594754351dc8cd38ca1b3b2eeb Mon Sep 17 00:00:00 2001 From: Carson J Miller <68351153+CarsonJM@users.noreply.github.com> Date: Wed, 19 Jul 2023 06:54:17 -0700 Subject: [PATCH 27/65] New module: instrain/compare (#3623) * Started instrain compare tests * instrain compare * Update modules/nf-core/instrain/compare/main.nf * Update modules/nf-core/instrain/compare/main.nf * Update modules/nf-core/instrain/compare/main.nf * Updated test.yml and added stub * Update modules/nf-core/instrain/compare/main.nf Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> * Update meta.yml to include meta2 * Updated test.yml output files * Changed md5 to content for several test.yml files * changed content to contains * Added another contains option in test.yml * shortened contains string to pass prettier check --------- Co-authored-by: Margot Lavitt Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- modules/nf-core/instrain/compare/main.nf | 57 ++++++++++++++++++ modules/nf-core/instrain/compare/meta.yml | 59 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../modules/nf-core/instrain/compare/main.nf | 22 +++++++ .../nf-core/instrain/compare/nextflow.config | 5 ++ .../modules/nf-core/instrain/compare/test.yml | 27 +++++++++ 6 files changed, 174 insertions(+) create mode 100644 modules/nf-core/instrain/compare/main.nf create mode 100644 modules/nf-core/instrain/compare/meta.yml create mode 100644 tests/modules/nf-core/instrain/compare/main.nf create mode 100644 tests/modules/nf-core/instrain/compare/nextflow.config create mode 100644 tests/modules/nf-core/instrain/compare/test.yml diff --git a/modules/nf-core/instrain/compare/main.nf b/modules/nf-core/instrain/compare/main.nf new file mode 100644 index 00000000000..ac48da0a528 --- /dev/null +++ b/modules/nf-core/instrain/compare/main.nf @@ -0,0 +1,57 @@ +process INSTRAIN_COMPARE { + tag "$meta.id" + label 'process_high' + + conda "bioconda::instrain=1.6.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/instrain:1.6.1--pyhdfd78af_0': + 'biocontainers/instrain:1.6.1--pyhdfd78af_0' }" + + input: + tuple val(meta), path(profiles) + tuple val(meta2), path(bams) + path stb_file + + output: + tuple val(meta), path("*.IS_compare") , emit: compare + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def stb_args = stb_file ? "-s ${stb_file}": '' + """ + inStrain \\ + compare \\ + -i $profiles \\ + -o ${prefix}.IS_compare \\ + --processes $task.cpus \\ + --bams $bams \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + instrain: \$(echo \$(inStrain compare --version 2>&1) | awk 'NF{ print \$NF }') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def stb_args = stb_file ? "-s ${stb_file}": '' + """ + mkdir -p ${prefix}.IS_compare/output + touch ${prefix}.IS_compare/output/${prefix}.IS_compare_pooled_SNV_info.tsv + touch ${prefix}.IS_compare/output/${prefix}.IS_compare_comparisonsTable.tsv + touch ${prefix}.IS_compare/output/${prefix}.IS_compare_pooled_SNV_data.tsv + touch ${prefix}.IS_compare/output/${prefix}.IS_compare_pooled_SNV_data_keys.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + instrain: \$(echo \$(inStrain compare --version 2>&1) | awk 'NF{ print \$NF }') + END_VERSIONS + """ +} diff --git a/modules/nf-core/instrain/compare/meta.yml b/modules/nf-core/instrain/compare/meta.yml new file mode 100644 index 00000000000..62448e23bc2 --- /dev/null +++ b/modules/nf-core/instrain/compare/meta.yml @@ -0,0 +1,59 @@ +name: "instrain_compare" +description: Strain-level comparisons across multiple inStrain profiles +keywords: + - instrain + - compare + - align + - diversity + - coverage +tools: + - "instrain": + description: "Calculation of strain-level metrics" + homepage: https://github.com/MrOlm/instrain + documentation: https://instrain.readthedocs.io/en/latest/ + tool_dev_url: https://github.com/MrOlm/instrain + doi: 10.1038/s41587-020-00797-0 + licence: "['MIT']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - profiles: + type: directory + description: InStrain profile folders + pattern: "*.IS/" + - bams: + type: file + description: Path to .bam files that were profiled + pattern: "*.{bam,sam}" + - stb_file: + type: file + description: Path to .stb (scaffold to bin) file that was profiled + pattern: "*.stb" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - compare: + type: directory + description: inStrain compare folders + pattern: "*.IS_compare/" + +authors: + - "@margotl9" + - "@CarsonJM" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index eb3058a9474..5479a1c58e7 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1929,6 +1929,10 @@ ilastik/pixelclassification: - modules/nf-core/ilastik/pixelclassification/** - tests/modules/nf-core/ilastik/pixelclassification/** +instrain/compare: + - modules/nf-core/instrain/compare/** + - tests/modules/nf-core/instrain/compare/** + instrain/profile: - modules/nf-core/instrain/profile/** - tests/modules/nf-core/instrain/profile/** diff --git a/tests/modules/nf-core/instrain/compare/main.nf b/tests/modules/nf-core/instrain/compare/main.nf new file mode 100644 index 00000000000..cbe83379931 --- /dev/null +++ b/tests/modules/nf-core/instrain/compare/main.nf @@ -0,0 +1,22 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { INSTRAIN_COMPARE } from '../../../../../modules/nf-core/instrain/compare/main.nf' +include { INSTRAIN_PROFILE } from '../../../../../modules/nf-core/instrain/profile/main.nf' + +workflow test_instrain_compare { + + input = Channel.of( + [[ id:'test1', single_end:true ], file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)], + [[ id:'test2', single_end:true ], file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] + ) + genome_fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + INSTRAIN_PROFILE ( input , genome_fasta , [] , [] ) + instrain_profiles = INSTRAIN_PROFILE.out.profile.map{ [[id:"test"], it[1]] }.groupTuple() + input_bams = input.map{ [[id:"test"], it[1]] }.groupTuple() + + INSTRAIN_COMPARE ( instrain_profiles , input_bams , [] ) + +} diff --git a/tests/modules/nf-core/instrain/compare/nextflow.config b/tests/modules/nf-core/instrain/compare/nextflow.config new file mode 100644 index 00000000000..50f50a7a357 --- /dev/null +++ b/tests/modules/nf-core/instrain/compare/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/nf-core/instrain/compare/test.yml b/tests/modules/nf-core/instrain/compare/test.yml new file mode 100644 index 00000000000..c04e93553f5 --- /dev/null +++ b/tests/modules/nf-core/instrain/compare/test.yml @@ -0,0 +1,27 @@ +- name: instrain compare test_instrain_compare + command: nextflow run ./tests/modules/nf-core/instrain/compare -entry test_instrain_compare -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/instrain/compare/nextflow.config + tags: + - instrain + - instrain/compare + files: + - path: output/instrain/test.IS_compare/output/test.IS_compare_comparisonsTable.tsv + contains: ["test2.paired_end.sorted.bam 0.9516129032258064 944 0.0235994100147496 40001 0 0 1.0 1.0"] + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_data.tsv + contains: ["0 1981 119 0 0 24"] + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_data_keys.tsv + contains: ["paired_end.sorted.bam chr22"] + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_info.tsv + md5sum: 7ed4894afbc4f1abd8692c4a65003a27 + - path: output/instrain/versions.yml + +- name: instrain compare test_instrain_compare_stub + command: nextflow run ./tests/modules/nf-core/instrain/compare -entry test_instrain_compare -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/instrain/compare/nextflow.config -stub-run + tags: + - instrain + - instrain/compare + files: + - path: output/instrain/test.IS_compare/output/test.IS_compare_comparisonsTable.tsv + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_data.tsv + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_data_keys.tsv + - path: output/instrain/test.IS_compare/output/test.IS_compare_pooled_SNV_info.tsv + - path: output/instrain/versions.yml From 5f017eafb7e304b580a97897fc318aad57c60be7 Mon Sep 17 00:00:00 2001 From: Johannes Nicolaus Wibisana Date: Thu, 20 Jul 2023 16:58:52 +0900 Subject: [PATCH 28/65] Update LAST modules to v1453 (#3303) * Update LAST to version 1453. * update lastdb version to 1453 * update last mafconvert to 1453 * update last mafswap to 1453 * update postmask to last v1453 * update last split to v1453 * last update train to v1453 * Update meta.yml Change output value type to string * Update meta.yml Change output value type to string --------- Co-authored-by: Charles Plessy Co-authored-by: Charlotte Capitanchik Co-authored-by: Johannes Nicolaus Wibisana Co-authored-by: Charlotte Capitanchik --- modules/nf-core/last/dotplot/main.nf | 6 +++--- modules/nf-core/last/dotplot/meta.yml | 2 +- modules/nf-core/last/lastdb/main.nf | 6 +++--- modules/nf-core/last/mafconvert/main.nf | 6 +++--- modules/nf-core/last/mafconvert/meta.yml | 2 +- modules/nf-core/last/mafswap/main.nf | 6 +++--- modules/nf-core/last/postmask/main.nf | 6 +++--- modules/nf-core/last/split/main.nf | 6 +++--- modules/nf-core/last/train/main.nf | 6 +++--- tests/modules/nf-core/last/dotplot/test.yml | 3 ++- tests/modules/nf-core/last/lastdb/test.yml | 6 +++--- tests/modules/nf-core/last/mafconvert/test.yml | 2 +- tests/modules/nf-core/last/postmask/test.yml | 2 +- tests/modules/nf-core/last/train/test.yml | 17 ++++++++++++++++- 14 files changed, 46 insertions(+), 30 deletions(-) diff --git a/modules/nf-core/last/dotplot/main.nf b/modules/nf-core/last/dotplot/main.nf index 4c199968f77..61d1c1817b5 100644 --- a/modules/nf-core/last/dotplot/main.nf +++ b/modules/nf-core/last/dotplot/main.nf @@ -2,10 +2,10 @@ process LAST_DOTPLOT { tag "$meta.id" label 'process_low' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/dotplot/meta.yml b/modules/nf-core/last/dotplot/meta.yml index bddc2636f77..f6cfa016cbb 100644 --- a/modules/nf-core/last/dotplot/meta.yml +++ b/modules/nf-core/last/dotplot/meta.yml @@ -26,7 +26,7 @@ input: description: Multiple Aligment Format (MAF) file, compressed with gzip pattern: "*.{maf.gz}" - format: - type: value + type: string description: Output format (PNG or GIF). output: diff --git a/modules/nf-core/last/lastdb/main.nf b/modules/nf-core/last/lastdb/main.nf index 808a7b89aca..ea539f66c94 100644 --- a/modules/nf-core/last/lastdb/main.nf +++ b/modules/nf-core/last/lastdb/main.nf @@ -2,10 +2,10 @@ process LAST_LASTDB { tag "$meta.id" label 'process_medium' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(fastx) diff --git a/modules/nf-core/last/mafconvert/main.nf b/modules/nf-core/last/mafconvert/main.nf index 6dfc2243946..912df8fd07b 100644 --- a/modules/nf-core/last/mafconvert/main.nf +++ b/modules/nf-core/last/mafconvert/main.nf @@ -2,10 +2,10 @@ process LAST_MAFCONVERT { tag "$meta.id" label 'process_high' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/mafconvert/meta.yml b/modules/nf-core/last/mafconvert/meta.yml index cd9633b70a7..daf85aca996 100644 --- a/modules/nf-core/last/mafconvert/meta.yml +++ b/modules/nf-core/last/mafconvert/meta.yml @@ -25,7 +25,7 @@ input: description: Multiple Aligment Format (MAF) file, optionally compressed with gzip pattern: "*.{maf.gz,maf}" - format: - type: value + type: string description: Output format (one of axt, blast, blasttab, chain, gff, html, psl, sam, or tab) output: diff --git a/modules/nf-core/last/mafswap/main.nf b/modules/nf-core/last/mafswap/main.nf index 5e0a9b3832f..c527109dacc 100644 --- a/modules/nf-core/last/mafswap/main.nf +++ b/modules/nf-core/last/mafswap/main.nf @@ -2,10 +2,10 @@ process LAST_MAFSWAP { tag "$meta.id" label 'process_low' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/postmask/main.nf b/modules/nf-core/last/postmask/main.nf index b4a9dd301af..bc94d7e8c3a 100644 --- a/modules/nf-core/last/postmask/main.nf +++ b/modules/nf-core/last/postmask/main.nf @@ -2,10 +2,10 @@ process LAST_POSTMASK { tag "$meta.id" label 'process_low' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/split/main.nf b/modules/nf-core/last/split/main.nf index 3922041f3eb..ff19f34368e 100644 --- a/modules/nf-core/last/split/main.nf +++ b/modules/nf-core/last/split/main.nf @@ -2,10 +2,10 @@ process LAST_SPLIT { tag "$meta.id" label 'process_high' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(maf) diff --git a/modules/nf-core/last/train/main.nf b/modules/nf-core/last/train/main.nf index ad0d6a278ce..da3ccf7f30f 100644 --- a/modules/nf-core/last/train/main.nf +++ b/modules/nf-core/last/train/main.nf @@ -2,10 +2,10 @@ process LAST_TRAIN { tag "$meta.id" label 'process_high' - conda "bioconda::last=1418" + conda "bioconda::last=1453" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/last:1418--h5b5514e_0' : - 'biocontainers/last:1418--h5b5514e_0' }" + 'https://depot.galaxyproject.org/singularity/last:1453--h5b5514e_0' : + 'biocontainers/last:1453--h5b5514e_0' }" input: tuple val(meta), path(fastx) diff --git a/tests/modules/nf-core/last/dotplot/test.yml b/tests/modules/nf-core/last/dotplot/test.yml index ceda8111257..03b0ecb1243 100644 --- a/tests/modules/nf-core/last/dotplot/test.yml +++ b/tests/modules/nf-core/last/dotplot/test.yml @@ -1,8 +1,9 @@ - name: last dotplot test_last_dotplot command: nextflow run ./tests/modules/nf-core/last/dotplot -entry test_last_dotplot -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/last/dotplot/nextflow.config tags: - - last/dotplot - last + - last/dotplot files: - path: output/last/test.png md5sum: 6189aaf96f522cdb664869724997bbcd + - path: output/last/versions.yml diff --git a/tests/modules/nf-core/last/lastdb/test.yml b/tests/modules/nf-core/last/lastdb/test.yml index 8001f49e554..7431c72c420 100644 --- a/tests/modules/nf-core/last/lastdb/test.yml +++ b/tests/modules/nf-core/last/lastdb/test.yml @@ -9,7 +9,7 @@ - path: output/last/lastdb/test.des md5sum: 3a9ea6d336e113a74d7fdca5e7b623fc - path: output/last/lastdb/test.prj - md5sum: 0e570741b20e89e9878fe26f26d84b7a + md5sum: e90f43ca41802e0aa9e95348558c837e - path: output/last/lastdb/test.sds md5sum: 2cd381f4f8a9c52cfcd323a2863eccb2 - path: output/last/lastdb/test.ssp @@ -23,15 +23,15 @@ - name: last lastdb test_last_lastdb_gzipped_input command: nextflow run ./tests/modules/nf-core/last/lastdb -entry test_last_lastdb_gzipped_input -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/last/lastdb/nextflow.config tags: - - last - last/lastdb + - last files: - path: output/last/lastdb/test.bck md5sum: 8692b1229b1fff1c2d39c4c610ff842b - path: output/last/lastdb/test.des md5sum: 26ab49015cc572172b9efa50fc5190bc - path: output/last/lastdb/test.prj - md5sum: b3e3b96d01ce4c2c5c88c85e4dc83453 + md5sum: dabf7db09dbae4c10af3246b56faeab7 - path: output/last/lastdb/test.sds md5sum: cad9927d4bd161257e98165ad755d8e4 - path: output/last/lastdb/test.ssp diff --git a/tests/modules/nf-core/last/mafconvert/test.yml b/tests/modules/nf-core/last/mafconvert/test.yml index 7daf124fc1f..98dc0ec468c 100644 --- a/tests/modules/nf-core/last/mafconvert/test.yml +++ b/tests/modules/nf-core/last/mafconvert/test.yml @@ -1,8 +1,8 @@ - name: last mafconvert test_last_mafconvert command: nextflow run ./tests/modules/nf-core/last/mafconvert -entry test_last_mafconvert -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/last/mafconvert/nextflow.config tags: - - last/mafconvert - last + - last/mafconvert files: - path: output/last/contigs.genome.psl.gz md5sum: 807889fbc4129884ae74c4ecf8804dde diff --git a/tests/modules/nf-core/last/postmask/test.yml b/tests/modules/nf-core/last/postmask/test.yml index 0d3121d96ec..a84d91df887 100644 --- a/tests/modules/nf-core/last/postmask/test.yml +++ b/tests/modules/nf-core/last/postmask/test.yml @@ -1,8 +1,8 @@ - name: last postmask test_last_postmask command: nextflow run ./tests/modules/nf-core/last/postmask -entry test_last_postmask -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/last/postmask/nextflow.config tags: - - last - last/postmask + - last files: - path: output/last/contigs.genome.postmask.maf.gz md5sum: 3a0f42e76da9549748983ac4d7ff7473 diff --git a/tests/modules/nf-core/last/train/test.yml b/tests/modules/nf-core/last/train/test.yml index d551a94d1be..b6015f0e6d1 100644 --- a/tests/modules/nf-core/last/train/test.yml +++ b/tests/modules/nf-core/last/train/test.yml @@ -5,5 +5,20 @@ - last files: - path: output/last/contigs.genome.par - md5sum: 457395281b6852cfee3417816e73a965 + md5sum: caf93e967179237a2eadbe4bae008c52 - path: output/last/versions.yml + - path: output/untar/lastdb/genome.bck + md5sum: 5519879b9b6c4d1fc508da7f17f88f2e + - path: output/untar/lastdb/genome.des + md5sum: 3a9ea6d336e113a74d7fdca5e7b623fc + - path: output/untar/lastdb/genome.prj + md5sum: 489715f14b0fea6273822696e72357f9 + - path: output/untar/lastdb/genome.sds + md5sum: 2cd381f4f8a9c52cfcd323a2863eccb2 + - path: output/untar/lastdb/genome.ssp + md5sum: 4137fb6fe9df2b3d78d5b960390aac7b + - path: output/untar/lastdb/genome.suf + md5sum: 1895efa8653e8e9bd3605cff0408ed33 + - path: output/untar/lastdb/genome.tis + md5sum: b7c40f06b1309dc6f37849eeb86dfd22 + - path: output/untar/versions.yml From 4b0d05aa97e45860be2e54da80614c8751319123 Mon Sep 17 00:00:00 2001 From: Jack Tierney <43453737+JackCurragh@users.noreply.github.com> Date: Thu, 20 Jul 2023 10:56:28 +0100 Subject: [PATCH 29/65] Hisat2-build: index construction w/ truly optional inputs (#3649) * index construction mode dependent on optional inputs rather than memory availability * added tests for new functionality * updated tests to use appropriate test data * cleaned up test.yml to only contain BUILD outputs * removed unnecessary extract ss call * added : to empty metamaps. Reverted to sarscov2 test files --------- Co-authored-by: James A. Fellows Yates --- modules/nf-core/hisat2/build/main.nf | 6 +- .../modules/nf-core/hisat2/build_test/main.nf | 21 +++++++ .../nf-core/hisat2/build_test/test.yml | 60 +++++++++++++++++-- 3 files changed, 78 insertions(+), 9 deletions(-) diff --git a/modules/nf-core/hisat2/build/main.nf b/modules/nf-core/hisat2/build/main.nf index 5ad36a548d2..90f8efcc63f 100644 --- a/modules/nf-core/hisat2/build/main.nf +++ b/modules/nf-core/hisat2/build/main.nf @@ -37,9 +37,9 @@ process HISAT2_BUILD { def hisat2_build_memory = params.hisat2_build_memory ? (params.hisat2_build_memory as nextflow.util.MemoryUnit).toGiga() : 0 if (avail_mem >= hisat2_build_memory) { log.info "[HISAT2 index build] At least ${hisat2_build_memory} GB available, so using splice sites and exons to build HISAT2 index" - extract_exons = "hisat2_extract_exons.py $gtf > ${gtf.baseName}.exons.txt" - ss = "--ss $splicesites" - exon = "--exon ${gtf.baseName}.exons.txt" + extract_exons = gtf ? "hisat2_extract_exons.py $gtf > ${gtf.baseName}.exons.txt" : "" + ss = splicesites ? "--ss $splicesites" : "" + exon = gtf ? "--exon ${gtf.baseName}.exons.txt" : "" } else { log.info "[HISAT2 index build] Less than ${hisat2_build_memory} GB available, so NOT using splice sites and exons to build HISAT2 index." log.info "[HISAT2 index build] Use --hisat2_build_memory [small number] to skip this check." diff --git a/tests/modules/nf-core/hisat2/build_test/main.nf b/tests/modules/nf-core/hisat2/build_test/main.nf index 6f4eb6809f3..3a8192776f7 100644 --- a/tests/modules/nf-core/hisat2/build_test/main.nf +++ b/tests/modules/nf-core/hisat2/build_test/main.nf @@ -15,3 +15,24 @@ workflow test_hisat2_build { HISAT2_EXTRACTSPLICESITES ( gtf ) HISAT2_BUILD ( fasta, gtf, HISAT2_EXTRACTSPLICESITES.out.txt ) } + +workflow test_hisat2_build_fasta_only { + fasta = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + gtf = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_gtf'], checkIfExists: true) + ] + HISAT2_BUILD ( fasta, [[:],[]], [[:],[]] ) +} + +workflow test_hisat2_build_fasta_ss_only { + fasta = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + gtf = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_gtf'], checkIfExists: true) + ] + HISAT2_EXTRACTSPLICESITES ( gtf ) + HISAT2_BUILD ( fasta, [[:],[]], HISAT2_EXTRACTSPLICESITES.out.txt ) +} \ No newline at end of file diff --git a/tests/modules/nf-core/hisat2/build_test/test.yml b/tests/modules/nf-core/hisat2/build_test/test.yml index ba6702aeead..69a3961dc02 100644 --- a/tests/modules/nf-core/hisat2/build_test/test.yml +++ b/tests/modules/nf-core/hisat2/build_test/test.yml @@ -1,23 +1,71 @@ - name: hisat2 build test_hisat2_build - command: nextflow run ./tests/modules/nf-core/hisat2/build_test -entry test_hisat2_build -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/build/nextflow.config + command: nextflow run ./tests/modules/nf-core/hisat2/build -entry test_hisat2_build -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/build/nextflow.config tags: - - hisat2 - hisat2/build + - hisat2 files: - - path: output/hisat2/genome.splice_sites.txt + - path: output/hisat2/hisat2/genome.1.ht2 + md5sum: 057cfa8a22b97ee9cff4c8d342498803 + - path: output/hisat2/hisat2/genome.2.ht2 + md5sum: 47b153cd1319abc88dda532462651fcf + - path: output/hisat2/hisat2/genome.3.ht2 + md5sum: 4ed93abba181d8dfab2e303e33114777 + - path: output/hisat2/hisat2/genome.4.ht2 + md5sum: c25be5f8b0378abf7a58c8a880b87626 - path: output/hisat2/hisat2/genome.5.ht2 md5sum: 91198831aaba993acac1734138c5f173 + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a - path: output/hisat2/hisat2/genome.7.ht2 md5sum: 9013eccd91ad614d7893c739275a394f + - path: output/hisat2/hisat2/genome.8.ht2 + md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/versions.yml + +- name: hisat2 build test_hisat2_build_fasta_only + command: nextflow run ./tests/modules/nf-core/hisat2/build -entry test_hisat2_build_fasta_only -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/build/nextflow.config + tags: + - hisat2/build + - hisat2 + files: - path: output/hisat2/hisat2/genome.1.ht2 - md5sum: 057cfa8a22b97ee9cff4c8d342498803 + md5sum: 98284d11e09faba5be6caeacceae7b3c - path: output/hisat2/hisat2/genome.2.ht2 md5sum: 47b153cd1319abc88dda532462651fcf - - path: output/hisat2/hisat2/genome.6.ht2 - md5sum: 265e1284ce85686516fae5d35540994a - path: output/hisat2/hisat2/genome.3.ht2 md5sum: 4ed93abba181d8dfab2e303e33114777 + - path: output/hisat2/hisat2/genome.4.ht2 + md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: output/hisat2/hisat2/genome.5.ht2 + md5sum: 4db21638bce5ab535147c14a8c5ed27b + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a + - path: output/hisat2/hisat2/genome.7.ht2 + md5sum: 9013eccd91ad614d7893c739275a394f - path: output/hisat2/hisat2/genome.8.ht2 md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/versions.yml + +- name: hisat2 build test_hisat2_build_fasta_ss_only + command: nextflow run ./tests/modules/nf-core/hisat2/build -entry test_hisat2_build_fasta_ss_only -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/build/nextflow.config + tags: + - hisat2/build + - hisat2 + files: + - path: output/hisat2/hisat2/genome.1.ht2 + md5sum: 057cfa8a22b97ee9cff4c8d342498803 + - path: output/hisat2/hisat2/genome.2.ht2 + md5sum: 47b153cd1319abc88dda532462651fcf + - path: output/hisat2/hisat2/genome.3.ht2 + md5sum: 4ed93abba181d8dfab2e303e33114777 - path: output/hisat2/hisat2/genome.4.ht2 md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: output/hisat2/hisat2/genome.5.ht2 + md5sum: 91198831aaba993acac1734138c5f173 + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a + - path: output/hisat2/hisat2/genome.7.ht2 + md5sum: 9013eccd91ad614d7893c739275a394f + - path: output/hisat2/hisat2/genome.8.ht2 + md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/versions.yml From fb4126c2b8201c5bcfba16f436a1bae844af53ca Mon Sep 17 00:00:00 2001 From: Lili Andersson-Li <64467552+LilyAnderssonLee@users.noreply.github.com> Date: Fri, 21 Jul 2023 12:21:08 +0200 Subject: [PATCH 30/65] update metaphlan module (#3661) --- modules/nf-core/metaphlan/metaphlan/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/metaphlan/metaphlan/main.nf b/modules/nf-core/metaphlan/metaphlan/main.nf index 477f1f28ddd..24533571e18 100644 --- a/modules/nf-core/metaphlan/metaphlan/main.nf +++ b/modules/nf-core/metaphlan/metaphlan/main.nf @@ -28,8 +28,8 @@ process METAPHLAN_METAPHLAN { def bowtie2_out = "$input_type" == "--input_type bowtie2out" || "$input_type" == "--input_type sam" ? '' : "--bowtie2out ${prefix}.bowtie2out.txt" """ - BT2_DB=`find -L "${metaphlan_db_latest}" -name "*rev.1.bt2l" -exec dirname {} \\;` - BT2_DB_INDEX=`find -L ${metaphlan_db_latest} -name "*.rev.1.bt2l" | sed 's/\\.rev.1.bt2l\$//' | sed 's/.*\\///'` + BT2_DB=`find -L "${metaphlan_db_latest}" -name "*rev.1.bt2*" -exec dirname {} \\;` + BT2_DB_INDEX=`find -L ${metaphlan_db_latest} -name "*.rev.1.bt2*" | sed 's/\\.rev.1.bt2.*\$//' | sed 's/.*\\///'` metaphlan \\ --nproc $task.cpus \\ From 35a1d9dc3c40f19619449e05baa907bc8e02f82d Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Fri, 21 Jul 2023 11:34:40 +0100 Subject: [PATCH 31/65] CNVKit 0.9.10 update (#3651) * upgrade CNVkit to 0.9.10 * homogenise keywords of all CNVkit modules * Add samtools dependency to bam2seqz module of sequenzautils Without specifying the dependency to a more or less current version of samtools, conda solves the environment for sequenza by using a very old samtools version that can cause problems when processing subsampled files (automated tests) * Update cnvkit to 0.9.10 Changes: - Update cnvkit to 0.9.10 - Update samtools in cnvkit modules to 1.17 Based on #3545 authored by @priesgo. * cnvkit 0.9.10 test update * update checksums of output files in tests for CNVkit batch * Update cnvkit/export VCF test * Additional tags for sequenzautils --------- Co-authored-by: Pablo Riesgo-Ferreiro Co-authored-by: Julian Mohr <81371922+JulianMohr@users.noreply.github.com> --- modules/nf-core/cnvkit/access/main.nf | 6 +++--- modules/nf-core/cnvkit/access/meta.yml | 1 + modules/nf-core/cnvkit/antitarget/main.nf | 6 +++--- modules/nf-core/cnvkit/antitarget/meta.yml | 2 ++ modules/nf-core/cnvkit/batch/main.nf | 6 +++--- modules/nf-core/cnvkit/batch/meta.yml | 8 +++++--- modules/nf-core/cnvkit/call/main.nf | 6 +++--- modules/nf-core/cnvkit/call/meta.yml | 3 +++ modules/nf-core/cnvkit/export/main.nf | 6 +++--- modules/nf-core/cnvkit/export/meta.yml | 1 + modules/nf-core/cnvkit/genemetrics/main.nf | 6 +++--- modules/nf-core/cnvkit/genemetrics/meta.yml | 6 +++++- modules/nf-core/cnvkit/reference/main.nf | 6 +++--- modules/nf-core/cnvkit/reference/meta.yml | 2 ++ modules/nf-core/cnvkit/target/main.nf | 6 +++--- modules/nf-core/cnvkit/target/meta.yml | 1 + modules/nf-core/sequenzautils/bam2seqz/main.nf | 2 +- modules/nf-core/sequenzautils/bam2seqz/meta.yml | 2 ++ modules/nf-core/sequenzautils/gcwiggle/meta.yml | 2 ++ tests/modules/nf-core/cnvkit/batch/test.yml | 14 +++++++------- tests/modules/nf-core/cnvkit/export/test.yml | 5 +++-- tests/modules/nf-core/cnvkit/genemetrics/test.yml | 4 ++-- 22 files changed, 61 insertions(+), 40 deletions(-) diff --git a/modules/nf-core/cnvkit/access/main.nf b/modules/nf-core/cnvkit/access/main.nf index b99d4062259..496ef6dddbd 100644 --- a/modules/nf-core/cnvkit/access/main.nf +++ b/modules/nf-core/cnvkit/access/main.nf @@ -2,10 +2,10 @@ process CNVKIT_ACCESS { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/cnvkit/access/meta.yml b/modules/nf-core/cnvkit/access/meta.yml index 360902cfa66..7708841f40d 100644 --- a/modules/nf-core/cnvkit/access/meta.yml +++ b/modules/nf-core/cnvkit/access/meta.yml @@ -55,3 +55,4 @@ output: authors: - "@adamrtalbot" + - "@priesgo" diff --git a/modules/nf-core/cnvkit/antitarget/main.nf b/modules/nf-core/cnvkit/antitarget/main.nf index 9b19dc9dac8..cda05c635bd 100644 --- a/modules/nf-core/cnvkit/antitarget/main.nf +++ b/modules/nf-core/cnvkit/antitarget/main.nf @@ -2,10 +2,10 @@ process CNVKIT_ANTITARGET { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta), path(targets) diff --git a/modules/nf-core/cnvkit/antitarget/meta.yml b/modules/nf-core/cnvkit/antitarget/meta.yml index 378d0347d36..f22c07b13e2 100644 --- a/modules/nf-core/cnvkit/antitarget/meta.yml +++ b/modules/nf-core/cnvkit/antitarget/meta.yml @@ -43,4 +43,6 @@ output: pattern: "versions.yml" authors: + - "@adamrtalbot" + - "@priesgo" - "@SusiJo" diff --git a/modules/nf-core/cnvkit/batch/main.nf b/modules/nf-core/cnvkit/batch/main.nf index 1e4d81e8a35..b253d6ab11e 100644 --- a/modules/nf-core/cnvkit/batch/main.nf +++ b/modules/nf-core/cnvkit/batch/main.nf @@ -2,10 +2,10 @@ process CNVKIT_BATCH { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:3bdd798e4b9aed6d3e1aaa1596c913a3eeb865cb-0' : - 'biocontainers/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:3bdd798e4b9aed6d3e1aaa1596c913a3eeb865cb-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:c94363856059151a2974dc501fb07a0360cc60a3-0' : + 'biocontainers/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:c94363856059151a2974dc501fb07a0360cc60a3-0' }" input: tuple val(meta), path(tumor), path(normal) diff --git a/modules/nf-core/cnvkit/batch/meta.yml b/modules/nf-core/cnvkit/batch/meta.yml index 3fc00f1bfdb..950b0c9589a 100644 --- a/modules/nf-core/cnvkit/batch/meta.yml +++ b/modules/nf-core/cnvkit/batch/meta.yml @@ -77,10 +77,12 @@ output: description: File containing software versions pattern: "versions.yml" authors: - - "@kaurravneet4123" - - "@KevinMenden" - - "@MaxUlysse" + - "@adamrtalbot" - "@drpatelh" - "@fbdtemme" + - "@kaurravneet4123" + - "@KevinMenden" - "@lassefolkersen" + - "@MaxUlysse" + - "@priesgo" - "@SusiJo" diff --git a/modules/nf-core/cnvkit/call/main.nf b/modules/nf-core/cnvkit/call/main.nf index e79767c8ea8..8501cafedc2 100644 --- a/modules/nf-core/cnvkit/call/main.nf +++ b/modules/nf-core/cnvkit/call/main.nf @@ -2,10 +2,10 @@ process CNVKIT_CALL { tag "$meta.id" label 'process_single' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta) , path(cns), path(vcf) diff --git a/modules/nf-core/cnvkit/call/meta.yml b/modules/nf-core/cnvkit/call/meta.yml index 4bbec1f6475..52a20aad33c 100644 --- a/modules/nf-core/cnvkit/call/meta.yml +++ b/modules/nf-core/cnvkit/call/meta.yml @@ -2,6 +2,8 @@ name: cnvkit_call description: Given segmented log2 ratio estimates (.cns), derive each segment’s absolute integer copy number keywords: - cnvkit + - bam + - fasta - copy number tools: - cnvkit: @@ -47,3 +49,4 @@ output: authors: - "@adamrtalbot" + - "@priesgo" diff --git a/modules/nf-core/cnvkit/export/main.nf b/modules/nf-core/cnvkit/export/main.nf index 333d8589c92..fb77d30c5e0 100644 --- a/modules/nf-core/cnvkit/export/main.nf +++ b/modules/nf-core/cnvkit/export/main.nf @@ -2,10 +2,10 @@ process CNVKIT_EXPORT { tag "$meta.id" label 'process_single' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta) , path(cns) diff --git a/modules/nf-core/cnvkit/export/meta.yml b/modules/nf-core/cnvkit/export/meta.yml index a4359c9c34e..3617c73da4c 100644 --- a/modules/nf-core/cnvkit/export/meta.yml +++ b/modules/nf-core/cnvkit/export/meta.yml @@ -43,3 +43,4 @@ output: authors: - "@adamrtalbot" + - "@priesgo" diff --git a/modules/nf-core/cnvkit/genemetrics/main.nf b/modules/nf-core/cnvkit/genemetrics/main.nf index 109853cad47..60589948663 100755 --- a/modules/nf-core/cnvkit/genemetrics/main.nf +++ b/modules/nf-core/cnvkit/genemetrics/main.nf @@ -2,10 +2,10 @@ process CNVKIT_GENEMETRICS { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta), path(cnr), path(cns) diff --git a/modules/nf-core/cnvkit/genemetrics/meta.yml b/modules/nf-core/cnvkit/genemetrics/meta.yml index 1d8ee9e526f..115a4a87bbe 100755 --- a/modules/nf-core/cnvkit/genemetrics/meta.yml +++ b/modules/nf-core/cnvkit/genemetrics/meta.yml @@ -2,7 +2,9 @@ name: cnvkit_genemetrics description: Copy number variant detection from high-throughput sequencing data keywords: - cnvkit - - genemetrics + - bam + - fasta + - copy number tools: - cnvkit: description: | @@ -40,4 +42,6 @@ output: pattern: "versions.yml" authors: + - "@adamrtalbot" - "@marrip" + - "@priesgo" diff --git a/modules/nf-core/cnvkit/reference/main.nf b/modules/nf-core/cnvkit/reference/main.nf index fcefbadd42d..57e1aed4f01 100644 --- a/modules/nf-core/cnvkit/reference/main.nf +++ b/modules/nf-core/cnvkit/reference/main.nf @@ -2,10 +2,10 @@ process CNVKIT_REFERENCE { tag "$fasta" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: path fasta diff --git a/modules/nf-core/cnvkit/reference/meta.yml b/modules/nf-core/cnvkit/reference/meta.yml index f481c3c2338..eae82c75e79 100644 --- a/modules/nf-core/cnvkit/reference/meta.yml +++ b/modules/nf-core/cnvkit/reference/meta.yml @@ -46,4 +46,6 @@ output: pattern: "versions.yml" authors: + - "@adamrtalbot" + - "@priesgo" - "@SusiJo" diff --git a/modules/nf-core/cnvkit/target/main.nf b/modules/nf-core/cnvkit/target/main.nf index eda0eed5242..47d75ee24d6 100644 --- a/modules/nf-core/cnvkit/target/main.nf +++ b/modules/nf-core/cnvkit/target/main.nf @@ -2,10 +2,10 @@ process CNVKIT_TARGET { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: tuple val(meta), path(baits) diff --git a/modules/nf-core/cnvkit/target/meta.yml b/modules/nf-core/cnvkit/target/meta.yml index 6d523587ae5..669af01e851 100644 --- a/modules/nf-core/cnvkit/target/meta.yml +++ b/modules/nf-core/cnvkit/target/meta.yml @@ -58,3 +58,4 @@ output: authors: - "@adamrtalbot" + - "@priesgo" diff --git a/modules/nf-core/sequenzautils/bam2seqz/main.nf b/modules/nf-core/sequenzautils/bam2seqz/main.nf index 1e5c136338d..46a89033b39 100644 --- a/modules/nf-core/sequenzautils/bam2seqz/main.nf +++ b/modules/nf-core/sequenzautils/bam2seqz/main.nf @@ -2,7 +2,7 @@ process SEQUENZAUTILS_BAM2SEQZ { tag "$meta.id" label 'process_medium' - conda "bioconda::sequenza-utils=3.0.0" + conda "bioconda::samtools=1.15.1 bioconda::sequenza-utils=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/sequenza-utils:3.0.0--py38h6ed170a_2' : 'biocontainers/sequenza-utils:3.0.0--py38h6ed170a_2' }" diff --git a/modules/nf-core/sequenzautils/bam2seqz/meta.yml b/modules/nf-core/sequenzautils/bam2seqz/meta.yml index 0168bd68bfe..73dcdf740cc 100755 --- a/modules/nf-core/sequenzautils/bam2seqz/meta.yml +++ b/modules/nf-core/sequenzautils/bam2seqz/meta.yml @@ -1,6 +1,8 @@ name: sequenzautils_bam2seqz description: Sequenza-utils bam2seqz process BAM and Wiggle files to produce a seqz file keywords: + - sequenzautils + - copy number - bam2seqz tools: - sequenzautils: diff --git a/modules/nf-core/sequenzautils/gcwiggle/meta.yml b/modules/nf-core/sequenzautils/gcwiggle/meta.yml index 6e9a1483c2d..fa0b7bb0010 100644 --- a/modules/nf-core/sequenzautils/gcwiggle/meta.yml +++ b/modules/nf-core/sequenzautils/gcwiggle/meta.yml @@ -1,6 +1,8 @@ name: sequenzautils_gcwiggle description: Sequenza-utils gc_wiggle computes the GC percentage across the sequences, and returns a file in the UCSC wiggle format, given a fasta file and a window size. keywords: + - sequenzautils + - copy number - gc_wiggle tools: - sequenzautils: diff --git a/tests/modules/nf-core/cnvkit/batch/test.yml b/tests/modules/nf-core/cnvkit/batch/test.yml index 38f437f60e3..e57265d5d5c 100755 --- a/tests/modules/nf-core/cnvkit/batch/test.yml +++ b/tests/modules/nf-core/cnvkit/batch/test.yml @@ -12,7 +12,7 @@ - path: output/cnvkit/test.paired_end.sorted.antitargetcoverage.cnn md5sum: 203caf8cef6935bb50b4138097955cb8 - path: output/cnvkit/test.paired_end.sorted.bintest.cns - md5sum: 6544d979475def8a9f69ba42a985668d + md5sum: b6701cceb525c3087f4dad432d20100c - path: output/cnvkit/test.paired_end.sorted.call.cns md5sum: f2ca59b4d50b0c317adc526c1b99b622 - path: output/cnvkit/test.paired_end.sorted.cnr @@ -46,7 +46,7 @@ - path: output/cnvkit/test2.paired_end.sorted.antitargetcoverage.cnn md5sum: 203caf8cef6935bb50b4138097955cb8 - path: output/cnvkit/test2.paired_end.sorted.bintest.cns - md5sum: 6544d979475def8a9f69ba42a985668d + md5sum: b6701cceb525c3087f4dad432d20100c - path: output/cnvkit/test2.paired_end.sorted.call.cns md5sum: f6de754c34f780e6befee5b3ff0893f8 - path: output/cnvkit/test2.paired_end.sorted.cnr @@ -76,7 +76,7 @@ - path: output/cnvkit/test2.paired_end.sorted.antitargetcoverage.cnn md5sum: 203caf8cef6935bb50b4138097955cb8 - path: output/cnvkit/test2.paired_end.sorted.bintest.cns - md5sum: 6544d979475def8a9f69ba42a985668d + md5sum: b6701cceb525c3087f4dad432d20100c - path: output/cnvkit/test2.paired_end.sorted.call.cns md5sum: f6de754c34f780e6befee5b3ff0893f8 - path: output/cnvkit/test2.paired_end.sorted.cnr @@ -99,7 +99,7 @@ - path: output/cnvkit/test2.paired_end.recalibrated.sorted.antitargetcoverage.cnn md5sum: 067115082c4af4b64d58c0dc3a3642e4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.bintest.cns - md5sum: f6adc75a0a86b7a921eca1b79a394cb0 + md5sum: 7a66b5f63acb05e6dfb0784c215851ec - path: output/cnvkit/test2.paired_end.recalibrated.sorted.call.cns md5sum: f7caeca04aba28b125ce26b511f42afb - path: output/cnvkit/test2.paired_end.recalibrated.sorted.cnr @@ -122,7 +122,7 @@ - path: output/cnvkit/test2.paired_end.recalibrated.sorted.antitargetcoverage.cnn md5sum: 067115082c4af4b64d58c0dc3a3642e4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.bintest.cns - md5sum: f6adc75a0a86b7a921eca1b79a394cb0 + md5sum: 7a66b5f63acb05e6dfb0784c215851ec - path: output/cnvkit/test2.paired_end.recalibrated.sorted.call.cns md5sum: f7caeca04aba28b125ce26b511f42afb - path: output/cnvkit/test2.paired_end.recalibrated.sorted.cnr @@ -147,7 +147,7 @@ - path: output/cnvkit/test2.paired_end.recalibrated.sorted.antitargetcoverage.cnn md5sum: 067115082c4af4b64d58c0dc3a3642e4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.bintest.cns - md5sum: 68b62b75cd91b2ffe5633686fb943490 + md5sum: 97ccb82da921185fcb033027914edf40 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.call.cns md5sum: df196edd72613c59186f4d87df3dc4a4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.cnr @@ -172,7 +172,7 @@ - path: output/cnvkit/test2.paired_end.recalibrated.sorted.antitargetcoverage.cnn md5sum: 067115082c4af4b64d58c0dc3a3642e4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.bintest.cns - md5sum: 68b62b75cd91b2ffe5633686fb943490 + md5sum: 97ccb82da921185fcb033027914edf40 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.call.cns md5sum: df196edd72613c59186f4d87df3dc4a4 - path: output/cnvkit/test2.paired_end.recalibrated.sorted.cnr diff --git a/tests/modules/nf-core/cnvkit/export/test.yml b/tests/modules/nf-core/cnvkit/export/test.yml index 96ce0866838..4f963a2f941 100644 --- a/tests/modules/nf-core/cnvkit/export/test.yml +++ b/tests/modules/nf-core/cnvkit/export/test.yml @@ -17,8 +17,9 @@ - path: output/cnvkit/test.vcf contains: - "##fileformat=VCFv4.2" - - "##source=CNVkit v0.9.9" - - "chr1\t160786623\t.\tN\t\t.\t.\tIMPRECISE;SVTYPE=DEL;END=160786747;SVLEN=-124;FOLD_CHANGE=0.271780;FOLD_CHANGE_LOG=-1.879490;PROBES=1\tGT:GQ\t0/1:1" + - "##source=CNVkit v0.9.10" + + - "chr1\t160786623\t.\tN\t\t.\t.\tIMPRECISE;SVTYPE=DEL;END=160786747;SVLEN=-124;FOLD_CHANGE=0.2717797741778673;FOLD_CHANGE_LOG=-1.87949;PROBES=1\tGT:GQ\t0/1:1" - path: output/cnvkit/versions.yml - name: cnvkit export test_cnvkit_export_cdt diff --git a/tests/modules/nf-core/cnvkit/genemetrics/test.yml b/tests/modules/nf-core/cnvkit/genemetrics/test.yml index 8df620e92c2..ac832836dde 100755 --- a/tests/modules/nf-core/cnvkit/genemetrics/test.yml +++ b/tests/modules/nf-core/cnvkit/genemetrics/test.yml @@ -7,7 +7,7 @@ - path: "output/cnvkit/test.tsv" md5sum: 2a18eca552ea33faab1d39795d9e051c - path: "output/cnvkit/versions.yml" - md5sum: 3d211e0077f86038ae454bdce8262cea + md5sum: 3158be0ead57ad4397444cdbe786994a - name: cnvkit genemetrics without cns command: nextflow run ./tests/modules/nf-core/cnvkit/genemetrics -entry test_cnvkit_genemetrics_without_cns -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/cnvkit/genemetrics/nextflow.config @@ -18,4 +18,4 @@ - path: "output/cnvkit/test.tsv" md5sum: 622e154a107301da6f456b4b3196b79d - path: "output/cnvkit/versions.yml" - md5sum: dbc07d4b63731d5077845f9b53226260 + md5sum: 31293c53d7c9ef99bad1dc5b80929ee8 From 664e3c402e88777adcfcef4611009620a3f0a639 Mon Sep 17 00:00:00 2001 From: "Thiseas C. Lamnidis" Date: Fri, 21 Jul 2023 15:15:40 +0200 Subject: [PATCH 32/65] Update gatk3 modules (#3660) * update mapdage2 module * Add meta for all files in gatk modules --- modules/nf-core/gatk/indelrealigner/main.nf | 8 ++-- modules/nf-core/gatk/indelrealigner/meta.yml | 20 +++++++++ .../gatk/realignertargetcreator/main.nf | 14 +++---- .../gatk/realignertargetcreator/meta.yml | 24 ++++++++++- modules/nf-core/gatk/unifiedgenotyper/main.nf | 18 ++++---- .../nf-core/gatk/unifiedgenotyper/meta.yml | 39 ++++++++++++++++- .../nf-core/gatk/indelrealigner/main.nf | 42 ++++++++++++------- .../gatk/realignertargetcreator/main.nf | 26 ++++++++---- .../nf-core/gatk/unifiedgenotyper/main.nf | 26 ++++++++---- 9 files changed, 161 insertions(+), 56 deletions(-) diff --git a/modules/nf-core/gatk/indelrealigner/main.nf b/modules/nf-core/gatk/indelrealigner/main.nf index 6a057ae8ef5..abcb245cabc 100644 --- a/modules/nf-core/gatk/indelrealigner/main.nf +++ b/modules/nf-core/gatk/indelrealigner/main.nf @@ -9,10 +9,10 @@ process GATK_INDELREALIGNER { input: tuple val(meta), path(bam), path(bai), path(intervals) - path(fasta) - path(fai) - path(dict) - path(known_vcf) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(dict) + tuple val(meta5), path(known_vcf) output: tuple val(meta), path("*.bam"), path("*.bai"), emit: bam diff --git a/modules/nf-core/gatk/indelrealigner/meta.yml b/modules/nf-core/gatk/indelrealigner/meta.yml index 35ad28e8e1f..6751f111703 100644 --- a/modules/nf-core/gatk/indelrealigner/meta.yml +++ b/modules/nf-core/gatk/indelrealigner/meta.yml @@ -31,18 +31,38 @@ input: type: file description: Intervals file created by gatk3 RealignerTargetCreator pattern: "*.{intervals,list}" + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fasta: type: file description: Reference file used to generate BAM file pattern: ".{fasta,fa,fna}" + - meta3: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fai: type: file description: Index of reference file used to generate BAM file pattern: ".fai" + - meta4: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - dict: type: file description: GATK dict file for reference pattern: ".dict" + - meta5: + type: map + description: | + Groovy Map containing file meta-information for known_vcf. + e.g. [ id:'test', single_end:false ] - known_vcf: type: file description: Optional input VCF file(s) with known indels diff --git a/modules/nf-core/gatk/realignertargetcreator/main.nf b/modules/nf-core/gatk/realignertargetcreator/main.nf index a4866417eb0..623ac468f7a 100644 --- a/modules/nf-core/gatk/realignertargetcreator/main.nf +++ b/modules/nf-core/gatk/realignertargetcreator/main.nf @@ -8,11 +8,11 @@ process GATK_REALIGNERTARGETCREATOR { 'biocontainers/gatk:3.5--hdfd78af_11' }" input: - tuple val(meta), path(input), path(index) - path fasta - path fai - path dict - path known_vcf + tuple val(meta), path(bam), path(bai) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(dict) + tuple val(meta5), path(known_vcf) output: tuple val(meta), path("*.intervals"), emit: intervals @@ -25,7 +25,7 @@ process GATK_REALIGNERTARGETCREATOR { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def known = known_vcf ? "-known ${known_vcf}" : "" - if ("$input" == "${prefix}.bam") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + if ("$bam" == "${prefix}.bam") error "Input and output names are the same, set prefix in module configuration to disambiguate!" def avail_mem = 3072 if (!task.memory) { @@ -39,7 +39,7 @@ process GATK_REALIGNERTARGETCREATOR { -Xmx${avail_mem}M \\ -T RealignerTargetCreator \\ -nt ${task.cpus} \\ - -I ${input} \\ + -I ${bam} \\ -R ${fasta} \\ -o ${prefix}.intervals \\ ${known} \\ diff --git a/modules/nf-core/gatk/realignertargetcreator/meta.yml b/modules/nf-core/gatk/realignertargetcreator/meta.yml index c49d2a8d914..384c93e14a7 100644 --- a/modules/nf-core/gatk/realignertargetcreator/meta.yml +++ b/modules/nf-core/gatk/realignertargetcreator/meta.yml @@ -20,26 +20,46 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - input: + - bam: type: file description: Sorted and indexed BAM/CRAM/SAM file pattern: "*.bam" - - index: + - bai: type: file description: BAM index file pattern: "*.bai" + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fasta: type: file description: Reference file used to generate BAM file pattern: ".{fasta,fa,fna}" + - meta3: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fai: type: file description: Index of reference file used to generate BAM file pattern: ".fai" + - meta4: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - dict: type: file description: GATK dict file for reference pattern: ".dict" + - meta5: + type: map + description: | + Groovy Map containing file meta-information for known_vcf. + e.g. [ id:'test', single_end:false ] - known_vcf: type: file description: Optional input VCF file(s) with known indels diff --git a/modules/nf-core/gatk/unifiedgenotyper/main.nf b/modules/nf-core/gatk/unifiedgenotyper/main.nf index fceb25e4871..99e700a33e6 100644 --- a/modules/nf-core/gatk/unifiedgenotyper/main.nf +++ b/modules/nf-core/gatk/unifiedgenotyper/main.nf @@ -8,14 +8,14 @@ process GATK_UNIFIEDGENOTYPER { 'biocontainers/gatk:3.5--hdfd78af_11' }" input: - tuple val(meta), path(input), path(index) - path fasta - path fai - path dict - path intervals - path contamination - path dbsnp - path comp + tuple val(meta), path(bam), path(bai) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(dict) + tuple val(meta5), path(intervals) + tuple val(meta6), path(contamination) + tuple val(meta7), path(dbsnp) + tuple val(meta8), path(comp) output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -44,7 +44,7 @@ process GATK_UNIFIEDGENOTYPER { -Xmx${avail_mem}M \\ -nt ${task.cpus} \\ -T UnifiedGenotyper \\ - -I ${input} \\ + -I ${bam} \\ -R ${fasta} \\ ${contamination_file} \\ ${dbsnp_file} \\ diff --git a/modules/nf-core/gatk/unifiedgenotyper/meta.yml b/modules/nf-core/gatk/unifiedgenotyper/meta.yml index fc40bd6362c..f946411dff2 100644 --- a/modules/nf-core/gatk/unifiedgenotyper/meta.yml +++ b/modules/nf-core/gatk/unifiedgenotyper/meta.yml @@ -17,38 +17,73 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - input: + - bam: type: file description: Sorted and indexed BAM/CRAM/SAM file pattern: "*.bam" - - index: + - bai: type: file description: BAM index file pattern: "*.bai" + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fasta: type: file description: Reference file used to generate BAM file pattern: ".{fasta,fa,fna}" + - meta3: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fai: type: file description: Index of reference file used to generate BAM file pattern: ".fai" + - meta4: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - dict: type: file description: GATK dict file for reference pattern: ".dict" + - meta5: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - intervals: type: file description: Bed file with the genomic regions included in the library (optional) pattern: "*.intervals" + - meta6: + type: map + description: | + Groovy Map containing file meta-information for the contamination file. + e.g. [ id:'test', single_end:false ] - contamination: type: file description: Tab-separated file containing fraction of contamination in sequencing data (per sample) to aggressively remove pattern: "*" + - meta7: + type: map + description: | + Groovy Map containing file meta-information for the dbsnps file. + e.g. [ id:'test', single_end:false ] - dbsnps: type: file description: VCF file containing known sites (optional) pattern: "*" + - meta8: + type: map + description: | + Groovy Map containing file meta-information for the VCF comparison file. + e.g. [ id:'test', single_end:false ] - comp: type: file description: Comparison VCF file (optional) diff --git a/tests/modules/nf-core/gatk/indelrealigner/main.nf b/tests/modules/nf-core/gatk/indelrealigner/main.nf index 947c9d820c5..dcde7247517 100644 --- a/tests/modules/nf-core/gatk/indelrealigner/main.nf +++ b/tests/modules/nf-core/gatk/indelrealigner/main.nf @@ -8,26 +8,36 @@ include { GATK_INDELREALIGNER } from '../../../../../modules/nf-core/gatk/indelr workflow test_gatk_indelrealigner { - - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) - - input_realignertargetcreator = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), - ] - - GATK_REALIGNERTARGETCREATOR ( input_realignertargetcreator, fasta, fai, dict, [] ) + fasta = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + fai = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + dict = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + ] + + input_realignertargetcreator = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + ] + + GATK_REALIGNERTARGETCREATOR ( input_realignertargetcreator, fasta, fai, dict, [[],[]] ) ch_intervals = GATK_REALIGNERTARGETCREATOR.out.intervals - ch_bams_indelrealigner = Channel.of([ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) - ]) + ch_bams_indelrealigner = Channel.of([ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ]) ch_input_indelrealigner = ch_bams_indelrealigner.mix(ch_intervals).groupTuple(by: 0).map{ [it[0], it[1][0], it[2], it[1][1] ] } - GATK_INDELREALIGNER ( ch_input_indelrealigner, fasta, fai, dict, [] ) + GATK_INDELREALIGNER ( ch_input_indelrealigner, fasta, fai, dict, [[],[]] ) } diff --git a/tests/modules/nf-core/gatk/realignertargetcreator/main.nf b/tests/modules/nf-core/gatk/realignertargetcreator/main.nf index 9effbc9f80d..8eb4a27ab87 100644 --- a/tests/modules/nf-core/gatk/realignertargetcreator/main.nf +++ b/tests/modules/nf-core/gatk/realignertargetcreator/main.nf @@ -6,13 +6,23 @@ include { GATK_REALIGNERTARGETCREATOR } from '../../../../../modules/nf-core/gat workflow test_gatk_realignertargetcreator { - input = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), - ] - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + input = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + ] + fasta = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + fai = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + dict = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + ] - GATK_REALIGNERTARGETCREATOR ( input, fasta, fai, dict, [] ) + GATK_REALIGNERTARGETCREATOR ( input, fasta, fai, dict, [[],[]] ) } diff --git a/tests/modules/nf-core/gatk/unifiedgenotyper/main.nf b/tests/modules/nf-core/gatk/unifiedgenotyper/main.nf index 9d7fc80904f..b308871657b 100644 --- a/tests/modules/nf-core/gatk/unifiedgenotyper/main.nf +++ b/tests/modules/nf-core/gatk/unifiedgenotyper/main.nf @@ -6,13 +6,23 @@ include { GATK_UNIFIEDGENOTYPER } from '../../../../../modules/nf-core/gatk/unif workflow test_gatk_unifiedgenotyper { - input = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), - ] - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + input = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + ] + fasta = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + fai = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + ] + dict = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + ] - GATK_UNIFIEDGENOTYPER ( input, fasta, fai, dict, [], [], [], []) + GATK_UNIFIEDGENOTYPER ( input, fasta, fai, dict, [[],[]], [[],[]], [[],[]], [[],[]]) } From 2347ffa4710ecd27f757b356049139b97be9476d Mon Sep 17 00:00:00 2001 From: Anders Sune Pedersen <37172585+asp8200@users.noreply.github.com> Date: Sun, 23 Jul 2023 12:37:54 +0200 Subject: [PATCH 33/65] Update tiddit to v3.6.1 (#3663) --- modules/nf-core/tiddit/cov/main.nf | 6 +++--- modules/nf-core/tiddit/sv/main.nf | 6 +++--- tests/modules/nf-core/tiddit/sv/test.yml | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/tiddit/cov/main.nf b/modules/nf-core/tiddit/cov/main.nf index 647f35a2d81..f4b1d675928 100644 --- a/modules/nf-core/tiddit/cov/main.nf +++ b/modules/nf-core/tiddit/cov/main.nf @@ -2,10 +2,10 @@ process TIDDIT_COV { tag "$meta.id" label 'process_low' - conda "bioconda::tiddit=3.3.2" + conda "bioconda::tiddit=3.6.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/tiddit:3.3.2--py310hc2b7f4b_0' : - 'biocontainers/tiddit:3.3.2--py310hc2b7f4b_0' }" + 'https://depot.galaxyproject.org/singularity/tiddit:3.6.1--py38h24c8ff8_0' : + 'biocontainers/tiddit:3.6.1--py38h24c8ff8_0' }" input: tuple val(meta), path(input) diff --git a/modules/nf-core/tiddit/sv/main.nf b/modules/nf-core/tiddit/sv/main.nf index 1ebc8565f4a..67a0670dbc3 100644 --- a/modules/nf-core/tiddit/sv/main.nf +++ b/modules/nf-core/tiddit/sv/main.nf @@ -2,10 +2,10 @@ process TIDDIT_SV { tag "$meta.id" label 'process_medium' - conda "bioconda::tiddit=3.3.2" + conda "bioconda::tiddit=3.6.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/tiddit:3.3.2--py310hc2b7f4b_0' : - 'biocontainers/tiddit:3.3.2--py310hc2b7f4b_0' }" + 'https://depot.galaxyproject.org/singularity/tiddit:3.6.1--py38h24c8ff8_0' : + 'biocontainers/tiddit:3.6.1--py38h24c8ff8_0' }" input: tuple val(meta), path(input), path(input_index) diff --git a/tests/modules/nf-core/tiddit/sv/test.yml b/tests/modules/nf-core/tiddit/sv/test.yml index f371f602004..586d1070389 100644 --- a/tests/modules/nf-core/tiddit/sv/test.yml +++ b/tests/modules/nf-core/tiddit/sv/test.yml @@ -7,7 +7,7 @@ - path: output/tiddit/test.ploidies.tab md5sum: c69e73fe090b260d379205935c64b63c - path: output/tiddit/test.vcf - md5sum: 6e045e4e03729dd0f03e2b6d2193ed88 + md5sum: 2ff97cdcd328c498fdb5aace82bc11e3 - name: tiddit sv test_tiddit_sv_bam_no_bwa command: nextflow run ./tests/modules/nf-core/tiddit/sv -entry test_tiddit_sv_bam_no_bwa -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/tiddit/sv/nextflow.config @@ -18,7 +18,7 @@ - path: output/tiddit/test.ploidies.tab md5sum: c69e73fe090b260d379205935c64b63c - path: output/tiddit/test.vcf - md5sum: 9e03f9ef4eda29ef748c67dc293235b3 + md5sum: f28d5d5e1a27117e8820d82afc09a4ec - name: tiddit sv test_tiddit_sv_cram command: nextflow run ./tests/modules/nf-core/tiddit/sv -entry test_tiddit_sv_cram -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/tiddit/sv/nextflow.config @@ -29,7 +29,7 @@ - path: output/tiddit/test.ploidies.tab md5sum: 13c4762ede32d319e8582cf7d6d77b71 - path: output/tiddit/test.vcf - md5sum: 4ec60aa26e0f055ce51d3fb84fb40cc0 + md5sum: b778ea5e390bf3c8f140a92ab6ae1231 - name: tiddit sv test_tiddit_sv_cram_no_bwa command: nextflow run ./tests/modules/nf-core/tiddit/sv -entry test_tiddit_sv_cram_no_bwa -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/tiddit/sv/nextflow.config @@ -40,4 +40,4 @@ - path: output/tiddit/test.ploidies.tab md5sum: 13c4762ede32d319e8582cf7d6d77b71 - path: output/tiddit/test.vcf - md5sum: 6d0ae57587bd2af0603d52d993053523 + md5sum: f6f06ffba6df0aecdd1974775a05cbe6 From 52812898983bac9efb1fbeac8283e1d744170ed7 Mon Sep 17 00:00:00 2001 From: Ram Sai Nanduri Date: Mon, 24 Jul 2023 11:30:00 +0200 Subject: [PATCH 34/65] Update stubs for samtools flagstat (#3657) Update stubs Co-authored-by: Ram Nanduri --- modules/nf-core/samtools/flagstat/main.nf | 11 +++++++++++ tests/modules/nf-core/samtools/flagstat/main.nf | 11 +++++++++++ tests/modules/nf-core/samtools/flagstat/test.yml | 9 +++++++++ 3 files changed, 31 insertions(+) diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index eb7e72fc6fe..b75707ecaa9 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -32,4 +32,15 @@ process SAMTOOLS_FLAGSTAT { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.flagstat + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/tests/modules/nf-core/samtools/flagstat/main.nf b/tests/modules/nf-core/samtools/flagstat/main.nf index c1a435f02a7..759b19ffb92 100644 --- a/tests/modules/nf-core/samtools/flagstat/main.nf +++ b/tests/modules/nf-core/samtools/flagstat/main.nf @@ -13,3 +13,14 @@ workflow test_samtools_flagstat { SAMTOOLS_FLAGSTAT ( input ) } + + +workflow test_samtools_flagstat_stub { + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + SAMTOOLS_FLAGSTAT ( input ) +} diff --git a/tests/modules/nf-core/samtools/flagstat/test.yml b/tests/modules/nf-core/samtools/flagstat/test.yml index 2386ba3a353..70068889ddf 100644 --- a/tests/modules/nf-core/samtools/flagstat/test.yml +++ b/tests/modules/nf-core/samtools/flagstat/test.yml @@ -7,3 +7,12 @@ - path: output/samtools/test.flagstat md5sum: 4f7ffd1e6a5e85524d443209ac97d783 - path: output/samtools/versions.yml + +- name: samtools faidx test_samtools_flagstat_stub + command: nextflow run ./tests/modules/nf-core/samtools/flagstat -entry test_samtools_flagstat_stub -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/flagstat/nextflow.config -stub + tags: + - samtools/flagstat + - samtools + files: + - path: output/samtools/test.flagstat + - path: output/samtools/versions.yml From 291f9bf3866434841bb56f5c4003812ab30c2539 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 25 Jul 2023 08:47:45 +0100 Subject: [PATCH 35/65] R differential modules control over output prefixes (#3664) * R differential modules control over output prefixes * Set differential module prefixes * Actually we need to do prefix handling within the template * Set differential module prefixes * Fix test files for new prefix specification * Add meta to limma test * Fix DESeq2 tests * fix remaining tests for limma * Update grep to fix broken solve * Try bumping affy * Use new build * update md5sum for annotation --- modules/nf-core/affy/justrma/main.nf | 6 +- .../deseq2/differential/templates/deseq_de.R | 21 ++- .../limma/differential/templates/limma_de.R | 15 +-- modules/nf-core/untar/main.nf | 2 +- tests/modules/nf-core/affy/justrma/test.yml | 2 +- .../nf-core/deseq2/differential/test.yml | 120 +++++++++--------- .../nf-core/limma/differential/main.nf | 6 +- .../nf-core/limma/differential/test.yml | 24 ++-- 8 files changed, 95 insertions(+), 101 deletions(-) diff --git a/modules/nf-core/affy/justrma/main.nf b/modules/nf-core/affy/justrma/main.nf index 40ebcbf1847..d0da712948f 100644 --- a/modules/nf-core/affy/justrma/main.nf +++ b/modules/nf-core/affy/justrma/main.nf @@ -2,10 +2,10 @@ process AFFY_JUSTRMA { tag "$meta.id" label 'process_single' - conda "bioconda::bioconductor-affy=1.76.0" + conda "bioconda::bioconductor-affy=1.78.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-affy:1.76.0--r42hc0cfd56_2': - 'biocontainers/bioconductor-affy:1.76.0--r42hc0cfd56_2' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-affy:1.78.0--r43ha9d7317_1': + 'biocontainers/bioconductor-affy:1.78.0--r43ha9d7317_1' }" input: tuple val(meta), path(samplesheet), path(celfiles_dir) diff --git a/modules/nf-core/deseq2/differential/templates/deseq_de.R b/modules/nf-core/deseq2/differential/templates/deseq_de.R index f1fcd847349..0c7ea82d5bc 100755 --- a/modules/nf-core/deseq2/differential/templates/deseq_de.R +++ b/modules/nf-core/deseq2/differential/templates/deseq_de.R @@ -93,6 +93,7 @@ round_dataframe_columns <- function(df, columns = NULL, digits = 8){ # Set defaults and classes opt <- list( + output_prefix = ifelse('$task.ext.prefix' == 'null', '$meta.id', '$task.ext.prefix'), count_file = '$counts', sample_file = '$samplesheet', contrast_variable = '$contrast_variable', @@ -143,7 +144,7 @@ for ( ao in names(args_opt)){ # Check if required parameters have been provided -required_opts <- c('contrast_variable', 'reference_level', 'target_level') +required_opts <- c('contrast_variable', 'reference_level', 'target_level', 'output_prefix') missing <- required_opts[unlist(lapply(opt[required_opts], is.null)) | ! required_opts %in% names(opt)] if (length(missing) > 0){ @@ -369,10 +370,6 @@ if (opt\$shrink_lfc){ ################################################ ################################################ -prefix_part_names <- c('contrast_variable', 'reference_level', 'target_level', 'blocking_variables') -prefix_parts <- unlist(lapply(prefix_part_names, function(x) gsub("[^[:alnum:]]", "_", opt[[x]]))) -output_prefix <- paste(prefix_parts[prefix_parts != ''], collapse = '-') - contrast.name <- paste(opt\$target_level, opt\$reference_level, sep = "_vs_") cat("Saving results for ", contrast.name, " ...\n", sep = "") @@ -386,7 +383,7 @@ write.table( round_dataframe_columns(data.frame(comp.results, check.names = FALSE)), check.names = FALSE ), - file = paste(output_prefix, 'deseq2.results.tsv', sep = '.'), + file = paste(opt\$output_prefix, 'deseq2.results.tsv', sep = '.'), col.names = TRUE, row.names = FALSE, sep = '\t', @@ -396,7 +393,7 @@ write.table( # Dispersion plot png( - file = paste(output_prefix, 'deseq2.dispersion.png', sep = '.'), + file = paste(opt\$output_prefix, 'deseq2.dispersion.png', sep = '.'), width = 600, height = 600 ) @@ -405,7 +402,7 @@ dev.off() # R object for other processes to use -saveRDS(dds, file = paste(output_prefix, 'dds.rld.rds', sep = '.')) +saveRDS(dds, file = paste(opt\$output_prefix, 'dds.rld.rds', sep = '.')) # Size factors @@ -417,7 +414,7 @@ sf_df = data.frame( colnames(sf_df) <- c('sample', 'sizeFactor') write.table( sf_df, - file = paste(output_prefix, 'deseq2.sizefactors.tsv', sep = '.'), + file = paste(opt\$output_prefix, 'deseq2.sizefactors.tsv', sep = '.'), col.names = TRUE, row.names = FALSE, sep = '\t', @@ -432,7 +429,7 @@ write.table( counts(dds, normalized = TRUE), check.names = FALSE ), - file = paste(output_prefix, 'normalised_counts.tsv', sep = '.'), + file = paste(opt\$output_prefix, 'normalised_counts.tsv', sep = '.'), col.names = TRUE, row.names = FALSE, sep = '\t', @@ -458,7 +455,7 @@ for (vs_method_name in strsplit(opt\$vs_method, ',')){ ), check.names = FALSE ), - file = paste(output_prefix, vs_method_name,'tsv', sep = '.'), + file = paste(opt\$output_prefix, vs_method_name,'tsv', sep = '.'), col.names = TRUE, row.names = FALSE, sep = '\t', @@ -472,7 +469,7 @@ for (vs_method_name in strsplit(opt\$vs_method, ',')){ ################################################ ################################################ -sink(paste(output_prefix, "R_sessionInfo.log", sep = '.')) +sink(paste(opt\$output_prefix, "R_sessionInfo.log", sep = '.')) print(sessionInfo()) sink() diff --git a/modules/nf-core/limma/differential/templates/limma_de.R b/modules/nf-core/limma/differential/templates/limma_de.R index 47d0424f6c7..5a80eb22923 100755 --- a/modules/nf-core/limma/differential/templates/limma_de.R +++ b/modules/nf-core/limma/differential/templates/limma_de.R @@ -65,6 +65,7 @@ read_delim_flexible <- function(file, header = TRUE, row.names = NULL, check.nam # Set defaults and classes opt <- list( + output_prefix = ifelse('$task.ext.prefix' == 'null', '$meta.id', '$task.ext.prefix'), count_file = '$intensities', sample_file = '$samplesheet', contrast_variable = '$contrast_variable', @@ -111,7 +112,7 @@ for ( ao in names(args_opt)){ # Check if required parameters have been provided -required_opts <- c('contrast_variable', 'reference_level', 'target_level') +required_opts <- c('contrast_variable', 'reference_level', 'target_level', 'output_prefix') missing <- required_opts[unlist(lapply(opt[required_opts], is.null)) | ! required_opts %in% names(opt)] if (length(missing) > 0){ @@ -340,10 +341,6 @@ comp.results <- do.call(topTable, toptable_args)[rownames(intensities.table),] ################################################ ################################################ -prefix_part_names <- c('contrast_variable', 'reference_level', 'target_level', 'blocking_variables') -prefix_parts <- unlist(lapply(prefix_part_names, function(x) gsub("[^[:alnum:]]", "_", opt[[x]]))) -output_prefix <- paste(prefix_parts[prefix_parts != ''], collapse = '-') - contrast.name <- paste(opt\$target_level, opt\$reference_level, sep = "_vs_") cat("Saving results for ", contrast.name, " ...\n", sep = "") @@ -356,7 +353,7 @@ write.table( probe_id = rownames(comp.results), comp.results ), - file = paste(output_prefix, 'limma.results.tsv', sep = '.'), + file = paste(opt\$output_prefix, 'limma.results.tsv', sep = '.'), col.names = TRUE, row.names = FALSE, sep = '\t', @@ -366,7 +363,7 @@ write.table( # Dispersion plot png( - file = paste(output_prefix, 'limma.mean_difference.png', sep = '.'), + file = paste(opt\$output_prefix, 'limma.mean_difference.png', sep = '.'), width = 600, height = 600 ) @@ -375,7 +372,7 @@ dev.off() # R object for other processes to use -saveRDS(fit2, file = paste(output_prefix, 'MArrayLM.limma.rds', sep = '.')) +saveRDS(fit2, file = paste(opt\$output_prefix, 'MArrayLM.limma.rds', sep = '.')) ################################################ ################################################ @@ -383,7 +380,7 @@ saveRDS(fit2, file = paste(output_prefix, 'MArrayLM.limma.rds', sep = '.')) ################################################ ################################################ -sink(paste(output_prefix, "R_sessionInfo.log", sep = '.')) +sink(paste(opt\$output_prefix, "R_sessionInfo.log", sep = '.')) print(sessionInfo()) sink() diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 8cd1856c71d..61461c39177 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -2,7 +2,7 @@ process UNTAR { tag "$archive" label 'process_single' - conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34" + conda "conda-forge::sed=4.7 conda-forge::grep=3.11 conda-forge::tar=1.34" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'nf-core/ubuntu:20.04' }" diff --git a/tests/modules/nf-core/affy/justrma/test.yml b/tests/modules/nf-core/affy/justrma/test.yml index 516a0ea6c7c..01b9b7374c7 100644 --- a/tests/modules/nf-core/affy/justrma/test.yml +++ b/tests/modules/nf-core/affy/justrma/test.yml @@ -6,7 +6,7 @@ files: - path: output/affy/normalised.eset.rds - path: output/affy/hgu133a2.annotation.tsv - md5sum: b718d6ff9f3037cf398d7ef7ea03a84d + md5sum: ffe59c061c8e304966f5f8156fb41805 - path: output/affy/normalised.matrix.tsv md5sum: 462665542e9531f6d8993b745ce78ae4 - path: output/affy/versions.yml diff --git a/tests/modules/nf-core/deseq2/differential/test.yml b/tests/modules/nf-core/deseq2/differential/test.yml index 3fd1f45150e..e878d56e20c 100644 --- a/tests/modules/nf-core/deseq2/differential/test.yml +++ b/tests/modules/nf-core/deseq2/differential/test.yml @@ -4,21 +4,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 86f0312a4691dfb4d7c15643059d8fb8 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 4034522732d975951c79731acc1c9731 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - name: deseq2 differential test_deseq2_differential_noblocking @@ -27,13 +27,13 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 4034522732d975951c79731acc1c9731 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - name: deseq2 differential test_deseq2_differential_spikes @@ -42,21 +42,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 150a32eef482244b47ddc7f7ffb1ad2a - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 1708374146b4e8c28fbc78fa292102cd - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 1c9c7ee4ca90ff0d91ae16dbfd64fdc9 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv md5sum: c28300837df9ca6adeba2a52ea5e181e - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 88b3230c5a4ad8717c1d0b38c824f1fc - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 1708374146b4e8c28fbc78fa292102cd - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 1c9c7ee4ca90ff0d91ae16dbfd64fdc9 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: c28300837df9ca6adeba2a52ea5e181e - path: output/spoof/spikes.txt md5sum: 8bd8a80b4616fc0a68f69bee6869c8bc @@ -67,21 +67,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 23de450bda331e7b9330dfd66042a309 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: a526a1bb5cb270f5a4a1641fefd289b3 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: bb916c41f91b2ddcc9607619a023ef44 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv contains: ["ENSMUSG00000036480\t4.01671566\t4.29840714\t5.04221558\t3.09476385\t3.56634694\t5.04719582"] - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 7a385151de48430e592dbcc72c0d0d75 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: a526a1bb5cb270f5a4a1641fefd289b3 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: bb916c41f91b2ddcc9607619a023ef44 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv contains: ["ENSMUSG00000036480\t4.01671566\t4.29840714\t5.04221558\t3.09476385\t3.56634694\t5.04719582"] - path: output/spoof/spikes.txt md5sum: 8bd8a80b4616fc0a68f69bee6869c8bc @@ -92,21 +92,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 86f0312a4691dfb4d7c15643059d8fb8 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 4034522732d975951c79731acc1c9731 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - path: output/tsv/test.csv md5sum: f8e51c79c9add0d07eb46aba6a09d33c @@ -117,21 +117,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 86f0312a4691dfb4d7c15643059d8fb8 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.vst.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.vst.tsv md5sum: 0960df48c0116a626289960284148fbb - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 4034522732d975951c79731acc1c9731 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6.vst.tsv + - path: output/deseq2/treatment_mCherry_hND6_.vst.tsv md5sum: 0960df48c0116a626289960284148fbb - name: deseq2 differential test_deseq2_differential_subset_to_contrast @@ -140,21 +140,21 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv md5sum: 86f0312a4691dfb4d7c15643059d8fb8 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv md5sum: 4034522732d975951c79731acc1c9731 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 6332f21889ecac387bb12eeb04f23849 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 827cdf01f366d72d6e4b500e9862ba74 - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: 1077cf03a8c6a155932eaaed7415b74c - name: deseq2 differential test_deseq2_differential_exclude_samples @@ -163,19 +163,19 @@ - deseq2 - deseq2/differential files: - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.results.tsv contains: ["ENSMUSG00000023978\t396.73852567\t4.843056\t1.18395002\t2.130893e-06\t7.938188e-05"] - - path: output/deseq2/treatment-mCherry-hND6-sample_number.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.deseq2.sizefactors.tsv md5sum: 87d6d634ffea2d7a9df9f9bae91b4d90 - - path: output/deseq2/treatment-mCherry-hND6-sample_number.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.normalised_counts.tsv md5sum: 32c6fb71cc4b296c66e06f6eed96428b - - path: output/deseq2/treatment-mCherry-hND6-sample_number.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_sample_number.rlog.tsv md5sum: 1ed46435eed7cda5d7fcb91b2b5d4429 - - path: output/deseq2/treatment-mCherry-hND6.deseq2.results.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.results.tsv contains: ["ENSMUSG00000023978\t396.73852567\t7.724976\t1.52788385\t4.774373e-08\t5.231349e-06"] - - path: output/deseq2/treatment-mCherry-hND6.deseq2.sizefactors.tsv + - path: output/deseq2/treatment_mCherry_hND6_.deseq2.sizefactors.tsv md5sum: 87d6d634ffea2d7a9df9f9bae91b4d90 - - path: output/deseq2/treatment-mCherry-hND6.normalised_counts.tsv + - path: output/deseq2/treatment_mCherry_hND6_.normalised_counts.tsv md5sum: 32c6fb71cc4b296c66e06f6eed96428b - - path: output/deseq2/treatment-mCherry-hND6.rlog.tsv + - path: output/deseq2/treatment_mCherry_hND6_.rlog.tsv md5sum: 1ed46435eed7cda5d7fcb91b2b5d4429 diff --git a/tests/modules/nf-core/limma/differential/main.nf b/tests/modules/nf-core/limma/differential/main.nf index 9b83d5c24ae..c1e097b0e55 100644 --- a/tests/modules/nf-core/limma/differential/main.nf +++ b/tests/modules/nf-core/limma/differential/main.nf @@ -31,7 +31,7 @@ workflow test_limma_differential { ch_intensities = ch_samplesheet .join(AFFY_JUSTRMA.out.expression) - ch_contrasts = Channel.of(['variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) + ch_contrasts = Channel.of(['id': 'diagnosis_normal_uremia', 'variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) .map{ tuple(it, it.variable, it.reference, it.target) } @@ -67,7 +67,7 @@ workflow test_limma_differential_subset_to_contrast { ch_intensities = ch_samplesheet .join(AFFY_JUSTRMA.out.expression) - ch_contrasts = Channel.of(['variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) + ch_contrasts = Channel.of(['id': 'diagnosis_normal_uremia', 'variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) .map{ tuple(it, it.variable, it.reference, it.target) } @@ -104,7 +104,7 @@ workflow test_limma_differential_exclude_samples { ch_intensities = ch_samplesheet .join(AFFY_JUSTRMA.out.expression) - ch_contrasts = Channel.of(['variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) + ch_contrasts = Channel.of(['id': 'diagnosis_normal_uremia', 'variable': 'diagnosis', 'reference': 'normal', 'target': 'uremia']) .map{ tuple(it, it.variable, it.reference, it.target) } diff --git a/tests/modules/nf-core/limma/differential/test.yml b/tests/modules/nf-core/limma/differential/test.yml index 6c75a8e8aae..61c09cae720 100644 --- a/tests/modules/nf-core/limma/differential/test.yml +++ b/tests/modules/nf-core/limma/differential/test.yml @@ -4,11 +4,11 @@ - limma - limma/differential files: - - path: output/limma/diagnosis-normal-uremia.MArrayLM.limma.rds - - path: output/limma/diagnosis-normal-uremia.R_sessionInfo.log + - path: output/limma/diagnosis_normal_uremia.MArrayLM.limma.rds + - path: output/limma/diagnosis_normal_uremia.R_sessionInfo.log contains: ["limma_3.54.0"] - - path: output/limma/diagnosis-normal-uremia.limma.mean_difference.png - - path: output/limma/diagnosis-normal-uremia.limma.results.tsv + - path: output/limma/diagnosis_normal_uremia.limma.mean_difference.png + - path: output/limma/diagnosis_normal_uremia.limma.results.tsv contains: ["1007_s_at\t-0.2775254", "1053_at\t-0.071547786"] - path: output/limma/versions.yml @@ -18,11 +18,11 @@ - limma - limma/differential files: - - path: output/limma/diagnosis-normal-uremia.MArrayLM.limma.rds - - path: output/limma/diagnosis-normal-uremia.R_sessionInfo.log + - path: output/limma/diagnosis_normal_uremia.MArrayLM.limma.rds + - path: output/limma/diagnosis_normal_uremia.R_sessionInfo.log contains: ["limma_3.54.0"] - - path: output/limma/diagnosis-normal-uremia.limma.mean_difference.png - - path: output/limma/diagnosis-normal-uremia.limma.results.tsv + - path: output/limma/diagnosis_normal_uremia.limma.mean_difference.png + - path: output/limma/diagnosis_normal_uremia.limma.results.tsv contains: ["1007_s_at\t-0.2775254", "1053_at\t-0.071547786"] - path: output/limma/versions.yml @@ -32,10 +32,10 @@ - limma - limma/differential files: - - path: output/limma/diagnosis-normal-uremia.MArrayLM.limma.rds - - path: output/limma/diagnosis-normal-uremia.R_sessionInfo.log + - path: output/limma/diagnosis_normal_uremia.MArrayLM.limma.rds + - path: output/limma/diagnosis_normal_uremia.R_sessionInfo.log contains: ["limma_3.54.0"] - - path: output/limma/diagnosis-normal-uremia.limma.mean_difference.png - - path: output/limma/diagnosis-normal-uremia.limma.results.tsv + - path: output/limma/diagnosis_normal_uremia.limma.mean_difference.png + - path: output/limma/diagnosis_normal_uremia.limma.results.tsv contains: ["1007_s_at\t-0.4778282", "1053_at\t-0.08958278"] - path: output/limma/versions.yml From 5033ada17bc4f10fffbfefe980a3ebf9002ebcff Mon Sep 17 00:00:00 2001 From: Ram Sai Nanduri Date: Tue, 25 Jul 2023 12:04:11 +0200 Subject: [PATCH 36/65] Update stubs for samtools idxstats (#3665) * Update stubs * Update stubs for samtools idxstats --------- Co-authored-by: Ram Nanduri --- modules/nf-core/samtools/idxstats/main.nf | 12 ++++++++++++ tests/modules/nf-core/samtools/idxstats/main.nf | 15 ++++++++++++--- tests/modules/nf-core/samtools/idxstats/test.yml | 9 +++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index a257d7002e4..83c7c34b9d9 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -33,4 +33,16 @@ process SAMTOOLS_IDXSTATS { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}.idxstats + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/tests/modules/nf-core/samtools/idxstats/main.nf b/tests/modules/nf-core/samtools/idxstats/main.nf index 4a29252eb3b..9a0f5aec23c 100644 --- a/tests/modules/nf-core/samtools/idxstats/main.nf +++ b/tests/modules/nf-core/samtools/idxstats/main.nf @@ -6,9 +6,18 @@ include { SAMTOOLS_IDXSTATS } from '../../../../../modules/nf-core/samtools/idxs workflow test_samtools_idxstats { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) - ] + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + SAMTOOLS_IDXSTATS ( input ) +} + +workflow test_samtools_idxstats_stub { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] SAMTOOLS_IDXSTATS ( input ) } diff --git a/tests/modules/nf-core/samtools/idxstats/test.yml b/tests/modules/nf-core/samtools/idxstats/test.yml index d2c6f94d2ab..f2be79899fc 100644 --- a/tests/modules/nf-core/samtools/idxstats/test.yml +++ b/tests/modules/nf-core/samtools/idxstats/test.yml @@ -7,3 +7,12 @@ - path: output/samtools/test.idxstats md5sum: df60a8c8d6621100d05178c93fb053a2 - path: output/samtools/versions.yml + +- name: samtools idxstats test_samtools_idxstats_stub + command: nextflow run ./tests/modules/nf-core/samtools/idxstats -entry test_samtools_idxstats_stub -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/idxstats/nextflow.config -stub + tags: + - samtools/idxstats + - samtools + files: + - path: output/samtools/test.idxstats + - path: output/samtools/versions.yml From adb910a81aa506c41d3a51da15a5627b1c4654a1 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Tue, 25 Jul 2023 14:07:42 +0200 Subject: [PATCH 37/65] Bump ensembl-vep modules to 110.0 (#3658) * bump ensembl-vep to 110.0 * update tests * put conda tests back * update config for ENSEMBLVEP_DOWNLOAD * update tests for related subworkflows * fix path to module * enable conda tests back * better tests * fix tests * nicer channels * fix channel queue to value * fix syntax --- .github/workflows/pytest-workflow.yml | 4 - modules/nf-core/ensemblvep/download/main.nf | 6 +- modules/nf-core/ensemblvep/vep/main.nf | 6 +- .../nf-core/ensemblvep/download/main.nf | 11 +- .../nf-core/ensemblvep/download/test.yml | 2 +- tests/modules/nf-core/ensemblvep/vep/main.nf | 142 +++++++++++------- .../nf-core/ensemblvep/vep/nextflow.config | 10 +- .../nf-core/vcf_annotate_ensemblvep/main.nf | 22 ++- .../vcf_annotate_ensemblvep/nextflow.config | 12 +- .../vcf_annotate_ensemblvep_snpeff/main.nf | 66 +++++--- .../nextflow.config | 13 +- 11 files changed, 182 insertions(+), 112 deletions(-) diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 2c2c5fbb718..251af103d4f 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -76,8 +76,6 @@ jobs: tags: deepcell/mesmer - profile: "conda" tags: deepvariant - - profile: "conda" - tags: ensemblvep/vep - profile: "conda" tags: fastk/fastk - profile: "conda" @@ -150,8 +148,6 @@ jobs: tags: subworkflows/bcl_demultiplex - profile: "conda" tags: subworkflows/vcf_annotate_ensemblvep_snpeff - - profile: "conda" - tags: subworkflows/vcf_annotate_ensemblvep - profile: "conda" tags: subworkflows/fasta_clean_fcs - profile: "conda" diff --git a/modules/nf-core/ensemblvep/download/main.nf b/modules/nf-core/ensemblvep/download/main.nf index 7abc1d1f148..4873b91d574 100644 --- a/modules/nf-core/ensemblvep/download/main.nf +++ b/modules/nf-core/ensemblvep/download/main.nf @@ -2,10 +2,10 @@ process ENSEMBLVEP_DOWNLOAD { tag "$meta.id" label 'process_medium' - conda "bioconda::ensembl-vep=109.3" + conda "bioconda::ensembl-vep=110.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ensembl-vep:109.3--pl5321h2a3209d_1' : - 'biocontainers/ensembl-vep:109.3--pl5321h2a3209d_1' }" + 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' : + 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }" input: tuple val(meta), val(assembly), val(species), val(cache_version) diff --git a/modules/nf-core/ensemblvep/vep/main.nf b/modules/nf-core/ensemblvep/vep/main.nf index b0b8ddc638d..da0e36460aa 100644 --- a/modules/nf-core/ensemblvep/vep/main.nf +++ b/modules/nf-core/ensemblvep/vep/main.nf @@ -2,10 +2,10 @@ process ENSEMBLVEP_VEP { tag "$meta.id" label 'process_medium' - conda "bioconda::ensembl-vep=109.3" + conda "bioconda::ensembl-vep=110.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ensembl-vep:109.3--pl5321h2a3209d_1' : - 'biocontainers/ensembl-vep:109.3--pl5321h2a3209d_1' }" + 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' : + 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }" input: tuple val(meta), path(vcf), path(custom_extra_files) diff --git a/tests/modules/nf-core/ensemblvep/download/main.nf b/tests/modules/nf-core/ensemblvep/download/main.nf index 8e1c8de8c80..dc3d39a5dd1 100644 --- a/tests/modules/nf-core/ensemblvep/download/main.nf +++ b/tests/modules/nf-core/ensemblvep/download/main.nf @@ -2,10 +2,13 @@ nextflow.enable.dsl = 2 -include { ENSEMBLVEP_DOWNLOAD } from '../../../../../modules/nf-core/ensemblvep/download/main.nf' +include { ENSEMBLVEP_DOWNLOAD } from '../../../../../modules/nf-core/ensemblvep/download/main' -workflow test_ensemblvep_download { - input = [[id:"test"], "WBcel235", "caenorhabditis_elegans", "108"] +vep_cache_version = "110" +vep_genome = "WBcel235" +vep_species = "caenorhabditis_elegans" +vep_cache_input = Channel.of([[id:"${vep_cache_version}_${vep_genome}"], vep_genome, vep_species, vep_cache_version]) - ENSEMBLVEP_DOWNLOAD(input) +workflow test_ensemblvep_download { + ENSEMBLVEP_DOWNLOAD(vep_cache_input) } diff --git a/tests/modules/nf-core/ensemblvep/download/test.yml b/tests/modules/nf-core/ensemblvep/download/test.yml index 3add0978d94..ca826f9000b 100644 --- a/tests/modules/nf-core/ensemblvep/download/test.yml +++ b/tests/modules/nf-core/ensemblvep/download/test.yml @@ -4,4 +4,4 @@ - ensemblvep - ensemblvep/download files: - - path: output/ensemblvep/vep_cache/caenorhabditis_elegans/108_WBcel235/ + - path: output/ensemblvep/vep_cache/caenorhabditis_elegans/110_WBcel235/ diff --git a/tests/modules/nf-core/ensemblvep/vep/main.nf b/tests/modules/nf-core/ensemblvep/vep/main.nf index 082fba929cb..4584127f9b5 100644 --- a/tests/modules/nf-core/ensemblvep/vep/main.nf +++ b/tests/modules/nf-core/ensemblvep/vep/main.nf @@ -2,126 +2,164 @@ nextflow.enable.dsl = 2 -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_DEFAULT } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_JSON } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_TAB } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF_BGZIP } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF_GZIP } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' -include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_CUSTOM } from '../../../../../modules/nf-core/ensemblvep/vep/main.nf' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_DEFAULT } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_JSON } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_TAB } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF_BGZIP } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_VCF_GZIP } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_VEP as ENSEMBLVEP_VEP_CUSTOM } from '../../../../../modules/nf-core/ensemblvep/vep/main' +include { ENSEMBLVEP_DOWNLOAD } from '../../../../../modules/nf-core/ensemblvep/download/main' + +vep_cache_version = "110" +vep_genome = "WBcel235" +vep_species = "caenorhabditis_elegans" +vep_cache_input = Channel.of([[id:"${vep_cache_version}_${vep_genome}"], vep_genome, vep_species, vep_cache_version]) workflow test_ensemblvep_vep_fasta_json { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) - ENSEMBLVEP_VEP_JSON ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + ENSEMBLVEP_VEP_JSON ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_fasta_tab { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) - ENSEMBLVEP_VEP_TAB ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_VEP_TAB ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_fasta_vcf { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) - ENSEMBLVEP_VEP_VCF ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + ENSEMBLVEP_VEP_VCF ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_fasta_vcf_bgzip { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } - ENSEMBLVEP_VEP_VCF_BGZIP ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_VEP_VCF_BGZIP ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_fasta_vcf_gzip { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) - ENSEMBLVEP_VEP_VCF_GZIP ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + ENSEMBLVEP_VEP_VCF_GZIP ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_fasta { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } - ENSEMBLVEP_VEP_DEFAULT ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_VEP_DEFAULT ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } workflow test_ensemblvep_vep_no_fasta { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] - ] + ]) - ENSEMBLVEP_VEP_DEFAULT ( input, "WBcel235", "caenorhabditis_elegans", "108", [], [[], []], [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + ENSEMBLVEP_VEP_DEFAULT ( input, vep_genome, vep_species, vep_cache_version, vep_cache, [[], []], [] ) } workflow test_ensemblvep_vep_fasta_custom { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [ file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test3_vcf'], checkIfExists: true)] - ] + ]) - fasta = [ - [ id: 'fasta' ], + fasta = Channel.value([ + [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } - ENSEMBLVEP_VEP_VCF_BGZIP ( input, "WBcel235", "caenorhabditis_elegans", "108", [], fasta, [] ) + ENSEMBLVEP_VEP_VCF_BGZIP ( input, vep_genome, vep_species, vep_cache_version, vep_cache, fasta, [] ) } diff --git a/tests/modules/nf-core/ensemblvep/vep/nextflow.config b/tests/modules/nf-core/ensemblvep/vep/nextflow.config index 32a1029ab26..3afa6d62b9c 100644 --- a/tests/modules/nf-core/ensemblvep/vep/nextflow.config +++ b/tests/modules/nf-core/ensemblvep/vep/nextflow.config @@ -2,37 +2,31 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: ENSEMBLVEP_VEP_DEFAULT { - container = 'docker.io/nfcore/vep:108.2.WBcel235' + withName: ENSEMBLVEP_DOWNLOAD { + ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE' } withName: ENSEMBLVEP_VEP_JSON { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--json' } withName: ENSEMBLVEP_VEP_TAB { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--tab' } withName: ENSEMBLVEP_VEP_VCF { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--vcf' } withName: ENSEMBLVEP_VEP_VCF_BGZIP { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--vcf --compress_output bgzip' } withName: ENSEMBLVEP_VEP_VCF_GZIP { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--vcf --compress_output gzip' } withName: ENSEMBLVEP_VEP_CUSTOM { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = '--custom test2.vcf,,vcf,exact,0,TOPMED --custom test3.vcf,,vcf,exact,0,TOPMED' } } diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf index babe6e6a8fe..2efea619713 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf @@ -2,8 +2,14 @@ nextflow.enable.dsl = 2 -include { VCF_ANNOTATE_ENSEMBLVEP as VCF_ANNOTATE_ENSEMBLVEP_DEFAULT } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf' -include { VCF_ANNOTATE_ENSEMBLVEP as VCF_ANNOTATE_ENSEMBLVEP_CUSTOM } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep/main.nf' +include { ENSEMBLVEP_DOWNLOAD } from '../../../../modules/nf-core/ensemblvep/download/main' +include { VCF_ANNOTATE_ENSEMBLVEP as VCF_ANNOTATE_ENSEMBLVEP_CUSTOM } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep/main' +include { VCF_ANNOTATE_ENSEMBLVEP as VCF_ANNOTATE_ENSEMBLVEP_DEFAULT } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep/main' + +vep_cache_version = "110" +vep_genome = "WBcel235" +vep_species = "caenorhabditis_elegans" +vep_cache_input = Channel.of([[id:"${vep_cache_version}_${vep_genome}"], vep_genome, vep_species, vep_cache_version]) workflow vcf_annotate_ensemblvep { input = Channel.of([ @@ -11,7 +17,11 @@ workflow vcf_annotate_ensemblvep { file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), [] ]) - VCF_ANNOTATE_ENSEMBLVEP_DEFAULT ( input, [[],[]], "WBcel235", "caenorhabditis_elegans", "108", [], [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + VCF_ANNOTATE_ENSEMBLVEP_DEFAULT ( input, [[],[]], vep_genome, vep_species, vep_cache_version, vep_cache, [] ) } workflow vcf_annotate_ensemblvep_custom { @@ -24,5 +34,9 @@ workflow vcf_annotate_ensemblvep_custom { ] ]) - VCF_ANNOTATE_ENSEMBLVEP_CUSTOM ( input, [[],[]], "WBcel235", "caenorhabditis_elegans", "108", [], [] ) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] } + + VCF_ANNOTATE_ENSEMBLVEP_CUSTOM ( input, [[],[]], vep_genome, vep_species, vep_cache_version, vep_cache, [] ) } diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/nextflow.config b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/nextflow.config index a4ec67e803e..0a66891cd41 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/nextflow.config +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep/nextflow.config @@ -2,16 +2,16 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: ENSEMBLVEP_VEP { - container = 'docker.io/nfcore/vep:108.2.WBcel235' - } - - withName: vcf_annotate_ensemblvep_custom:VCF_ANNOTATE_ENSEMBLVEP_CUSTOM:ENSEMBLVEP_VEP { - ext.args = '--custom test2.vcf,,vcf,exact,0,TOPMED --custom test3.vcf,,vcf,exact,0,TOPMED' + withName: ENSEMBLVEP_DOWNLOAD { + ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE' } withName: TABIX_TABIX { ext.prefix = { "${meta.id}_vep.ann" } } + withName: vcf_annotate_ensemblvep_custom:VCF_ANNOTATE_ENSEMBLVEP_CUSTOM:ENSEMBLVEP_VEP { + ext.args = '--custom test2.vcf,,vcf,exact,0,TOPMED --custom test3.vcf,,vcf,exact,0,TOPMED' + } + } diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf index d6af5c2c999..0d44a919ee0 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf @@ -2,7 +2,13 @@ nextflow.enable.dsl = 2 -include { VCF_ANNOTATE_ENSEMBLVEP_SNPEFF } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf' +include { ENSEMBLVEP_DOWNLOAD } from '../../../../modules/nf-core/ensemblvep/download/main' +include { VCF_ANNOTATE_ENSEMBLVEP_SNPEFF } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main' + +vep_cache_version = "110" +vep_genome = "WBcel235" +vep_species = "caenorhabditis_elegans" +vep_cache_input = Channel.of([[id:"${vep_cache_version}_${vep_genome}"], vep_genome, vep_species, vep_cache_version]) workflow vcf_annotate_ensemblvep_snpeff_vep { input = Channel.of([ @@ -20,13 +26,17 @@ workflow vcf_annotate_ensemblvep_snpeff_vep { ] ]) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }.first() + VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( input, [[],[]], - "WBcel235", - "caenorhabditis_elegans", - "108", - [], + vep_genome, + vep_species, + vep_cache_version, + vep_cache, [], [], [], @@ -82,17 +92,21 @@ workflow vcf_annotate_ensemblvep_snpeff_both { ] ]) + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }.first() + VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( input, [[],[]], - "WBcel235", - "caenorhabditis_elegans", - "108", - [], + vep_genome, + vep_species, + vep_cache_version, + vep_cache, [], "WBcel235.99", [], - ["snpeff", "ensemblvep"], + ["ensemblvep", "snpeff"], 5 ) } @@ -113,18 +127,22 @@ workflow vcf_annotate_ensemblvep_snpeff_large_chunks { ] ]) - fasta = [ + fasta = Channel.value([ [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }.first() VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( input, fasta, - "WBcel235", - "caenorhabditis_elegans", - "108", - [], + vep_genome, + vep_species, + vep_cache_version, + vep_cache, [], [], [], @@ -149,18 +167,22 @@ workflow vcf_annotate_ensemblvep_snpeff_no_scatter { ] ]) - fasta = [ + fasta = Channel.value([ [id:"fasta"], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] + ]) + + ENSEMBLVEP_DOWNLOAD(vep_cache_input) + + vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }.first() VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( input, fasta, - "WBcel235", - "caenorhabditis_elegans", - "108", - [], + vep_genome, + vep_species, + vep_cache_version, + vep_cache, [], [], [], diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config index e48fa306d67..8a584f0b3d1 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config @@ -2,8 +2,15 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: BCFTOOLS_CONCAT { + ext.prefix = { "${meta.id}_concat" } + } + + withName: ENSEMBLVEP_DOWNLOAD { + ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE' + } + withName: ENSEMBLVEP_VEP { - container = 'docker.io/nfcore/vep:108.2.WBcel235' ext.args = {[ "--vcf --offline", meta.id.startsWith("custom_test") ? "--custom test3.vcf.gz,,vcf,exact,0,TOPMED" : "" @@ -14,8 +21,4 @@ process { container = 'docker.io/nfcore/snpeff:5.0.WBcel235' } - withName: BCFTOOLS_CONCAT { - ext.prefix = { "${meta.id}_concat" } - } - } From 14ed454d4f6499ae204ca7917748401d1fdc3e50 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Tue, 25 Jul 2023 16:06:46 +0200 Subject: [PATCH 38/65] Remove containers with cache with snpEff too (#3670) * update tests for snpeff * remove containers in config * fix cache version in tests * update meta.yml * fix meta.yml * fix meta data * fix md5sum * re-enable conda tests --- .github/workflows/pytest-workflow.yml | 2 -- modules/nf-core/snpeff/download/meta.yml | 6 +++++- modules/nf-core/snpeff/snpeff/main.nf | 2 +- modules/nf-core/snpeff/snpeff/meta.yml | 4 +++- tests/modules/nf-core/snpeff/download/main.nf | 8 +++++--- tests/modules/nf-core/snpeff/snpeff/main.nf | 17 +++++++++++++---- .../nf-core/snpeff/snpeff/nextflow.config | 4 ---- tests/modules/nf-core/snpeff/snpeff/test.yml | 2 +- .../vcf_annotate_ensemblvep_snpeff/main.nf | 18 ++++++++++++++---- .../nextflow.config | 4 ---- .../nf-core/vcf_annotate_snpeff/main.nf | 17 +++++++++++++---- .../vcf_annotate_snpeff/nextflow.config | 1 - 12 files changed, 55 insertions(+), 30 deletions(-) diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 251af103d4f..38dfba8c6da 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -146,8 +146,6 @@ jobs: tags: gatk4/determinegermlinecontigploidy - profile: "conda" tags: subworkflows/bcl_demultiplex - - profile: "conda" - tags: subworkflows/vcf_annotate_ensemblvep_snpeff - profile: "conda" tags: subworkflows/fasta_clean_fcs - profile: "conda" diff --git a/modules/nf-core/snpeff/download/meta.yml b/modules/nf-core/snpeff/download/meta.yml index 07a7afaf8bb..3c03c2f602e 100644 --- a/modules/nf-core/snpeff/download/meta.yml +++ b/modules/nf-core/snpeff/download/meta.yml @@ -2,6 +2,10 @@ name: SNPEFF_DOWNLOAD description: Genetic variant annotation and functional effect prediction toolbox keywords: - annotation + - effect prediction + - snpeff + - variant + - vcf tools: - snpeff: description: | @@ -21,7 +25,7 @@ input: description: | vcf to annotate - db: - type: value + type: string description: | which db to annotate with output: diff --git a/modules/nf-core/snpeff/snpeff/main.nf b/modules/nf-core/snpeff/snpeff/main.nf index 84f5ee5d58a..e92c1597e77 100644 --- a/modules/nf-core/snpeff/snpeff/main.nf +++ b/modules/nf-core/snpeff/snpeff/main.nf @@ -10,7 +10,7 @@ process SNPEFF_SNPEFF { input: tuple val(meta), path(vcf) val db - path cache + tuple val(meta2), path(cache) output: tuple val(meta), path("*.ann.vcf"), emit: vcf diff --git a/modules/nf-core/snpeff/snpeff/meta.yml b/modules/nf-core/snpeff/snpeff/meta.yml index cf00c819ac7..44bada2303c 100644 --- a/modules/nf-core/snpeff/snpeff/meta.yml +++ b/modules/nf-core/snpeff/snpeff/meta.yml @@ -2,8 +2,10 @@ name: SNPEFF_SNPEFF description: Genetic variant annotation and functional effect prediction toolbox keywords: - annotation - - variant - effect prediction + - snpeff + - variant + - vcf tools: - snpeff: description: | diff --git a/tests/modules/nf-core/snpeff/download/main.nf b/tests/modules/nf-core/snpeff/download/main.nf index b36a710d8e5..dfefff98749 100644 --- a/tests/modules/nf-core/snpeff/download/main.nf +++ b/tests/modules/nf-core/snpeff/download/main.nf @@ -4,8 +4,10 @@ nextflow.enable.dsl = 2 include { SNPEFF_DOWNLOAD } from '../../../../../modules/nf-core/snpeff/download/main.nf' -workflow test_snpeff_download { - input = [ [ id:'test' ], "WBcel235", "105"] +snpeff_cache_version = "105" +snpeff_genome = "WBcel235" +snpeff_cache_input = Channel.of([[id:"${snpeff_genome}.${snpeff_cache_version}"], snpeff_genome, snpeff_cache_version]) - SNPEFF_DOWNLOAD ( input ) +workflow test_snpeff_download { + SNPEFF_DOWNLOAD(snpeff_cache_input) } diff --git a/tests/modules/nf-core/snpeff/snpeff/main.nf b/tests/modules/nf-core/snpeff/snpeff/main.nf index cf33abf233a..68150677abb 100644 --- a/tests/modules/nf-core/snpeff/snpeff/main.nf +++ b/tests/modules/nf-core/snpeff/snpeff/main.nf @@ -2,13 +2,22 @@ nextflow.enable.dsl = 2 -include { SNPEFF_SNPEFF } from '../../../../../modules/nf-core/snpeff/snpeff/main.nf' +include { SNPEFF_DOWNLOAD } from '../../../../../modules/nf-core/snpeff/download/main' +include { SNPEFF_SNPEFF } from '../../../../../modules/nf-core/snpeff/snpeff/main' + +snpeff_cache_version = "105" +snpeff_genome = "WBcel235" +snpeff_cache_input = Channel.of([[id:"${snpeff_genome}.${snpeff_cache_version}"], snpeff_genome, snpeff_cache_version]) workflow test_snpeff_snpeff { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) - ] + ]) + + SNPEFF_DOWNLOAD(snpeff_cache_input) + + snpeff_cache = SNPEFF_DOWNLOAD.out.cache.first() - SNPEFF_SNPEFF ( input, "WBcel235.105", [] ) + SNPEFF_SNPEFF(input, "${snpeff_genome}.${snpeff_cache_version}", snpeff_cache) } diff --git a/tests/modules/nf-core/snpeff/snpeff/nextflow.config b/tests/modules/nf-core/snpeff/snpeff/nextflow.config index d761d06bef4..8730f1c4b93 100644 --- a/tests/modules/nf-core/snpeff/snpeff/nextflow.config +++ b/tests/modules/nf-core/snpeff/snpeff/nextflow.config @@ -2,8 +2,4 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: SNPEFF_SNPEFF { - container = 'docker.io/nfcore/snpeff:5.1.WBcel235' - } - } diff --git a/tests/modules/nf-core/snpeff/snpeff/test.yml b/tests/modules/nf-core/snpeff/snpeff/test.yml index 0c0df7fab3b..62d3b78dc7a 100644 --- a/tests/modules/nf-core/snpeff/snpeff/test.yml +++ b/tests/modules/nf-core/snpeff/snpeff/test.yml @@ -5,7 +5,7 @@ - snpeff/snpeff files: - path: output/snpeff/test.ann.vcf - md5sum: e933384e572fc5ed0cce0faf1c0b2cc9 + md5sum: 9dc12cf54c78516abf3558672d3746d0 - path: output/snpeff/test.csv - path: output/snpeff/test.genes.txt md5sum: 130536bf0237d7f3f746d32aaa32840a diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf index 0d44a919ee0..ce160e4756b 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main.nf @@ -3,8 +3,12 @@ nextflow.enable.dsl = 2 include { ENSEMBLVEP_DOWNLOAD } from '../../../../modules/nf-core/ensemblvep/download/main' +include { SNPEFF_DOWNLOAD } from '../../../../modules/nf-core/snpeff/download/main' include { VCF_ANNOTATE_ENSEMBLVEP_SNPEFF } from '../../../../subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/main' +snpeff_cache_version = "105" +snpeff_genome = "WBcel235" +snpeff_cache_input = Channel.of([[id:"${snpeff_genome}.${snpeff_cache_version}"], snpeff_genome, snpeff_cache_version]) vep_cache_version = "110" vep_genome = "WBcel235" vep_species = "caenorhabditis_elegans" @@ -61,6 +65,10 @@ workflow vcf_annotate_ensemblvep_snpeff_snpeff { ] ]) + SNPEFF_DOWNLOAD(snpeff_cache_input) + + snpeff_cache = SNPEFF_DOWNLOAD.out.cache.first() + VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( input, [[],[]], @@ -69,8 +77,8 @@ workflow vcf_annotate_ensemblvep_snpeff_snpeff { [], [], [], - "WBcel235.99", - [], + "${snpeff_genome}.${snpeff_cache_version}", + snpeff_cache, ["snpeff"], 5 ) @@ -93,7 +101,9 @@ workflow vcf_annotate_ensemblvep_snpeff_both { ]) ENSEMBLVEP_DOWNLOAD(vep_cache_input) + SNPEFF_DOWNLOAD(snpeff_cache_input) + snpeff_cache = SNPEFF_DOWNLOAD.out.cache.first() vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }.first() VCF_ANNOTATE_ENSEMBLVEP_SNPEFF ( @@ -104,8 +114,8 @@ workflow vcf_annotate_ensemblvep_snpeff_both { vep_cache_version, vep_cache, [], - "WBcel235.99", - [], + "${snpeff_genome}.${snpeff_cache_version}", + snpeff_cache, ["ensemblvep", "snpeff"], 5 ) diff --git a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config index 8a584f0b3d1..fa4f5b43091 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config +++ b/tests/subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/nextflow.config @@ -17,8 +17,4 @@ process { ].join(" ")} } - withName: SNPEFF_SNPEFF { - container = 'docker.io/nfcore/snpeff:5.0.WBcel235' - } - } diff --git a/tests/subworkflows/nf-core/vcf_annotate_snpeff/main.nf b/tests/subworkflows/nf-core/vcf_annotate_snpeff/main.nf index 1db1ffcf36b..d2451765c7a 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_snpeff/main.nf +++ b/tests/subworkflows/nf-core/vcf_annotate_snpeff/main.nf @@ -2,13 +2,22 @@ nextflow.enable.dsl = 2 -include { VCF_ANNOTATE_SNPEFF } from '../../../../subworkflows/nf-core/vcf_annotate_snpeff/main.nf' +include { SNPEFF_DOWNLOAD } from '../../../../modules/nf-core/snpeff/download/main' +include { VCF_ANNOTATE_SNPEFF } from '../../../../subworkflows/nf-core/vcf_annotate_snpeff/main' + +snpeff_cache_version = "105" +snpeff_genome = "WBcel235" +snpeff_cache_input = Channel.of([[id:"${snpeff_genome}.${snpeff_cache_version}"], snpeff_genome, snpeff_cache_version]) workflow vcf_annotate_snpeff { - input = [ + input = Channel.of([ [ id:'test' ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) - ] + ]) + + SNPEFF_DOWNLOAD(snpeff_cache_input) + + snpeff_cache = SNPEFF_DOWNLOAD.out.cache.first() - VCF_ANNOTATE_SNPEFF ( input, "WBcel235.99", [] ) + VCF_ANNOTATE_SNPEFF ( input, "${snpeff_genome}.${snpeff_cache_version}", snpeff_cache ) } diff --git a/tests/subworkflows/nf-core/vcf_annotate_snpeff/nextflow.config b/tests/subworkflows/nf-core/vcf_annotate_snpeff/nextflow.config index 3edd9d068ed..de8c0e98231 100644 --- a/tests/subworkflows/nf-core/vcf_annotate_snpeff/nextflow.config +++ b/tests/subworkflows/nf-core/vcf_annotate_snpeff/nextflow.config @@ -3,7 +3,6 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } withName: SNPEFF_SNPEFF { - container = 'docker.io/nfcore/snpeff:5.0.WBcel235' publishDir = [ path: { "output/snpeff/test/" }, pattern: "*{csv,html,genes.txt}" From aae7de5aef89b7bdfbd7d7c0f6de8f57cc51495b Mon Sep 17 00:00:00 2001 From: Ram Sai Nanduri Date: Wed, 26 Jul 2023 11:21:13 +0200 Subject: [PATCH 39/65] Update stubs for bwa mem (#3671) Co-authored-by: Ram Nanduri --- modules/nf-core/bwa/mem/main.nf | 12 ++++++++ tests/modules/nf-core/bwa/mem/main.nf | 41 ++++++++++++++++++++++++++ tests/modules/nf-core/bwa/mem/test.yml | 16 ++++++++++ 3 files changed, 69 insertions(+) diff --git a/modules/nf-core/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf index d2f85dafeba..8ba99dfdb70 100644 --- a/modules/nf-core/bwa/mem/main.nf +++ b/modules/nf-core/bwa/mem/main.nf @@ -40,4 +40,16 @@ process BWA_MEM { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/tests/modules/nf-core/bwa/mem/main.nf b/tests/modules/nf-core/bwa/mem/main.nf index a9be49aeb18..91ece2a52a5 100644 --- a/tests/modules/nf-core/bwa/mem/main.nf +++ b/tests/modules/nf-core/bwa/mem/main.nf @@ -82,3 +82,44 @@ workflow test_bwa_mem_paired_end_sort { BWA_INDEX ( fasta ) BWA_MEM ( input, BWA_INDEX.out.index, true ) } + + +// +// Test with stub pairedend +// +workflow test_bwa_mem_paired_end_stub { + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + fasta = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + BWA_INDEX ( fasta ) + BWA_MEM ( input, BWA_INDEX.out.index, false ) +} + + +// +// Test with single-end data stub +// +workflow test_bwa_mem_single_end_stub { + input = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + fasta = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + BWA_INDEX ( fasta ) + BWA_MEM ( input, BWA_INDEX.out.index, false ) +} diff --git a/tests/modules/nf-core/bwa/mem/test.yml b/tests/modules/nf-core/bwa/mem/test.yml index 7e8157b8bec..1f112602f68 100644 --- a/tests/modules/nf-core/bwa/mem/test.yml +++ b/tests/modules/nf-core/bwa/mem/test.yml @@ -69,3 +69,19 @@ md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 - path: ./output/bwa/bwa/genome.sa md5sum: ab3952cabf026b48cd3eb5bccbb636d1 + +- name: bwa mem paired-end stub + command: nextflow run ./tests/modules/nf-core/bwa/mem -entry test_bwa_mem_paired_end_sort -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bwa/mem/nextflow.config -stub + tags: + - bwa + - bwa/mem + files: + - path: ./output/bwa/test.bam + +- name: bwa mem single-end stub + command: nextflow run ./tests/modules/nf-core/bwa/mem -entry test_bwa_mem_single_end_stub -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bwa/mem/nextflow.config -stub + tags: + - bwa + - bwa/mem + files: + - path: ./output/bwa/test.bam From e84144de97af8dd94155b1627ec1192c36004e2c Mon Sep 17 00:00:00 2001 From: Laura Blum Date: Wed, 26 Jul 2023 17:13:31 -0400 Subject: [PATCH 40/65] Additional optional output to homer/annotatepeaks (#3667) * add optional stats output for use with the -annStats parameter (to be provided with ext.args) * Update meta.yml * add additional stats output to annotatepeaks test --------- Co-authored-by: Edmund Miller --- modules/nf-core/homer/annotatepeaks/main.nf | 1 + modules/nf-core/homer/annotatepeaks/meta.yml | 4 ++++ tests/modules/nf-core/homer/annotatepeaks/nextflow.config | 1 + tests/modules/nf-core/homer/annotatepeaks/test.yml | 1 + 4 files changed, 7 insertions(+) diff --git a/modules/nf-core/homer/annotatepeaks/main.nf b/modules/nf-core/homer/annotatepeaks/main.nf index cfc140f5e1a..b6a4c6bd0c6 100644 --- a/modules/nf-core/homer/annotatepeaks/main.nf +++ b/modules/nf-core/homer/annotatepeaks/main.nf @@ -15,6 +15,7 @@ process HOMER_ANNOTATEPEAKS { output: tuple val(meta), path("*annotatePeaks.txt"), emit: txt + tuple val(meta), path("*annStats.txt"), emit: stats, optional: true path "versions.yml" , emit: versions when: diff --git a/modules/nf-core/homer/annotatepeaks/meta.yml b/modules/nf-core/homer/annotatepeaks/meta.yml index b815e975ddb..2c6e52a1eaa 100644 --- a/modules/nf-core/homer/annotatepeaks/meta.yml +++ b/modules/nf-core/homer/annotatepeaks/meta.yml @@ -39,6 +39,10 @@ output: type: file description: The annotated peaks pattern: "*annotatePeaks.txt" + - annotation_stats: + type: file + description: the annStats file output from -annStats parameter + pattern: "*annStats.txt" - versions: type: file description: File containing software versions diff --git a/tests/modules/nf-core/homer/annotatepeaks/nextflow.config b/tests/modules/nf-core/homer/annotatepeaks/nextflow.config index 8730f1c4b93..86470e91684 100644 --- a/tests/modules/nf-core/homer/annotatepeaks/nextflow.config +++ b/tests/modules/nf-core/homer/annotatepeaks/nextflow.config @@ -1,5 +1,6 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.args = {"-annStats ${meta.id}.annStats.txt"} } diff --git a/tests/modules/nf-core/homer/annotatepeaks/test.yml b/tests/modules/nf-core/homer/annotatepeaks/test.yml index 9bb1256e684..9a07bc5d597 100644 --- a/tests/modules/nf-core/homer/annotatepeaks/test.yml +++ b/tests/modules/nf-core/homer/annotatepeaks/test.yml @@ -5,3 +5,4 @@ - homer/annotatepeaks files: - path: output/homer/test.annotatePeaks.txt + - path: output/homer/test.annStats.txt From 879be434692634cd45b483a6f160e2608a693596 Mon Sep 17 00:00:00 2001 From: Jack Tierney <43453737+JackCurragh@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:09:27 +0100 Subject: [PATCH 41/65] Hisat2 align splicesitesoptional (#3656) * added align tests for splicesitesoptional * changes to homo sap * updated splice sites to be optional with tests --- modules/nf-core/hisat2/align/main.nf | 5 +- tests/modules/nf-core/hisat2/align/main.nf | 34 ++++++++ tests/modules/nf-core/hisat2/align/test.yml | 92 ++++++++++++++++----- 3 files changed, 110 insertions(+), 21 deletions(-) diff --git a/modules/nf-core/hisat2/align/main.nf b/modules/nf-core/hisat2/align/main.nf index e69204692d8..db8e8bb6d4c 100644 --- a/modules/nf-core/hisat2/align/main.nf +++ b/modules/nf-core/hisat2/align/main.nf @@ -33,6 +33,7 @@ process HISAT2_ALIGN { } else if (meta.strandedness == 'reverse') { strandedness = meta.single_end ? '--rna-strandness R' : '--rna-strandness RF' } + ss = "$splicesites" ? "--known-splicesite-infile $splicesites" : '' def seq_center = params.seq_center ? "--rg-id ${prefix} --rg SM:$prefix --rg CN:${params.seq_center.replaceAll('\\s','_')}" : "--rg-id ${prefix} --rg SM:$prefix" if (meta.single_end) { def unaligned = params.save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' @@ -42,7 +43,7 @@ process HISAT2_ALIGN { -x \$INDEX \\ -U $reads \\ $strandedness \\ - --known-splicesite-infile $splicesites \\ + $ss \\ --summary-file ${prefix}.hisat2.summary.log \\ --threads $task.cpus \\ $seq_center \\ @@ -65,7 +66,7 @@ process HISAT2_ALIGN { -1 ${reads[0]} \\ -2 ${reads[1]} \\ $strandedness \\ - --known-splicesite-infile $splicesites \\ + $ss \\ --summary-file ${prefix}.hisat2.summary.log \\ --threads $task.cpus \\ $seq_center \\ diff --git a/tests/modules/nf-core/hisat2/align/main.nf b/tests/modules/nf-core/hisat2/align/main.nf index d6b3f8aa713..9ddbf78ea9c 100644 --- a/tests/modules/nf-core/hisat2/align/main.nf +++ b/tests/modules/nf-core/hisat2/align/main.nf @@ -44,3 +44,37 @@ workflow test_hisat2_align_paired_end { HISAT2_BUILD ( fasta, gtf, HISAT2_EXTRACTSPLICESITES.out.txt ) HISAT2_ALIGN ( input, HISAT2_BUILD.out.index, HISAT2_EXTRACTSPLICESITES.out.txt ) } + +workflow test_hisat2_align_single_end_no_ss { + input = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + fasta = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + HISAT2_BUILD ( fasta, [[:],[]], [[:],[]] ) + HISAT2_ALIGN ( input, HISAT2_BUILD.out.index, [[:],[]] ) +} + +workflow test_hisat2_align_paired_end_no_ss { + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + fasta = [ [id:'genome'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + gtf = [ [id:'test'], + file(params.test_data['sarscov2']['genome']['genome_gtf'], checkIfExists: true) + ] + + HISAT2_BUILD ( fasta, [[:],[]], [[:],[]]) + HISAT2_ALIGN ( input, HISAT2_BUILD.out.index, [[:],[]] ) +} \ No newline at end of file diff --git a/tests/modules/nf-core/hisat2/align/test.yml b/tests/modules/nf-core/hisat2/align/test.yml index 80bff97fc6b..105a351ec39 100644 --- a/tests/modules/nf-core/hisat2/align/test.yml +++ b/tests/modules/nf-core/hisat2/align/test.yml @@ -4,26 +4,26 @@ - hisat2 - hisat2/align files: - - path: output/hisat2/test.hisat2.summary.log - md5sum: 7b8a9e61b7646da1089b041333c41a87 - - path: output/hisat2/genome.splice_sites.txt - - path: output/hisat2/test.bam - - path: output/hisat2/hisat2/genome.5.ht2 - md5sum: 91198831aaba993acac1734138c5f173 - - path: output/hisat2/hisat2/genome.7.ht2 - md5sum: 9013eccd91ad614d7893c739275a394f - path: output/hisat2/hisat2/genome.1.ht2 md5sum: 057cfa8a22b97ee9cff4c8d342498803 - path: output/hisat2/hisat2/genome.2.ht2 md5sum: 47b153cd1319abc88dda532462651fcf - - path: output/hisat2/hisat2/genome.6.ht2 - md5sum: 265e1284ce85686516fae5d35540994a - path: output/hisat2/hisat2/genome.3.ht2 md5sum: 4ed93abba181d8dfab2e303e33114777 - - path: output/hisat2/hisat2/genome.8.ht2 - md5sum: 33cdeccccebe80329f1fdbee7f5874cb - path: output/hisat2/hisat2/genome.4.ht2 md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: output/hisat2/hisat2/genome.5.ht2 + md5sum: 91198831aaba993acac1734138c5f173 + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a + - path: output/hisat2/hisat2/genome.7.ht2 + md5sum: 9013eccd91ad614d7893c739275a394f + - path: output/hisat2/hisat2/genome.8.ht2 + md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/test.bam + - path: output/hisat2/test.hisat2.summary.log + md5sum: 7b8a9e61b7646da1089b041333c41a87 + - path: output/hisat2/versions.yml - name: hisat2 align test_hisat2_align_paired_end command: nextflow run ./tests/modules/nf-core/hisat2/align -entry test_hisat2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/align/nextflow.config @@ -31,23 +31,77 @@ - hisat2 - hisat2/align files: - - path: output/hisat2/test.hisat2.summary.log - md5sum: 9839b31db795958cc4b70711a3414e9c - - path: output/hisat2/genome.splice_sites.txt - - path: output/hisat2/test.bam + - path: output/hisat2/hisat2/genome.1.ht2 + md5sum: 057cfa8a22b97ee9cff4c8d342498803 + - path: output/hisat2/hisat2/genome.2.ht2 + md5sum: 47b153cd1319abc88dda532462651fcf + - path: output/hisat2/hisat2/genome.3.ht2 + md5sum: 4ed93abba181d8dfab2e303e33114777 + - path: output/hisat2/hisat2/genome.4.ht2 + md5sum: c25be5f8b0378abf7a58c8a880b87626 - path: output/hisat2/hisat2/genome.5.ht2 md5sum: 91198831aaba993acac1734138c5f173 + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a - path: output/hisat2/hisat2/genome.7.ht2 md5sum: 9013eccd91ad614d7893c739275a394f + - path: output/hisat2/hisat2/genome.8.ht2 + md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/test.bam + - path: output/hisat2/test.hisat2.summary.log + md5sum: 9839b31db795958cc4b70711a3414e9c + - path: output/hisat2/versions.yml + +- name: hisat2 align test_hisat2_align_single_end_no_ss + command: nextflow run ./tests/modules/nf-core/hisat2/align -entry test_hisat2_align_single_end_no_ss -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/align/nextflow.config + tags: + - hisat2 + - hisat2/align + files: - path: output/hisat2/hisat2/genome.1.ht2 - md5sum: 057cfa8a22b97ee9cff4c8d342498803 + md5sum: 98284d11e09faba5be6caeacceae7b3c - path: output/hisat2/hisat2/genome.2.ht2 md5sum: 47b153cd1319abc88dda532462651fcf - - path: output/hisat2/hisat2/genome.6.ht2 - md5sum: 265e1284ce85686516fae5d35540994a - path: output/hisat2/hisat2/genome.3.ht2 md5sum: 4ed93abba181d8dfab2e303e33114777 + - path: output/hisat2/hisat2/genome.4.ht2 + md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: output/hisat2/hisat2/genome.5.ht2 + md5sum: 4db21638bce5ab535147c14a8c5ed27b + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a + - path: output/hisat2/hisat2/genome.7.ht2 + md5sum: 9013eccd91ad614d7893c739275a394f - path: output/hisat2/hisat2/genome.8.ht2 md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/test.bam + - path: output/hisat2/test.hisat2.summary.log + md5sum: 7b8a9e61b7646da1089b041333c41a87 + - path: output/hisat2/versions.yml + +- name: hisat2 align test_hisat2_align_paired_end_no_ss + command: nextflow run ./tests/modules/nf-core/hisat2/align -entry test_hisat2_align_paired_end_no_ss -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/hisat2/align/nextflow.config + tags: + - hisat2 + - hisat2/align + files: + - path: output/hisat2/hisat2/genome.1.ht2 + md5sum: 98284d11e09faba5be6caeacceae7b3c + - path: output/hisat2/hisat2/genome.2.ht2 + md5sum: 47b153cd1319abc88dda532462651fcf + - path: output/hisat2/hisat2/genome.3.ht2 + md5sum: 4ed93abba181d8dfab2e303e33114777 - path: output/hisat2/hisat2/genome.4.ht2 md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: output/hisat2/hisat2/genome.5.ht2 + md5sum: 4db21638bce5ab535147c14a8c5ed27b + - path: output/hisat2/hisat2/genome.6.ht2 + md5sum: 265e1284ce85686516fae5d35540994a + - path: output/hisat2/hisat2/genome.7.ht2 + md5sum: 9013eccd91ad614d7893c739275a394f + - path: output/hisat2/hisat2/genome.8.ht2 + md5sum: 33cdeccccebe80329f1fdbee7f5874cb + - path: output/hisat2/test.bam + - path: output/hisat2/test.hisat2.summary.log + md5sum: 9839b31db795958cc4b70711a3414e9c + - path: output/hisat2/versions.yml From 674c31a51327f5343b8dd21659f3336b25c48481 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Thu, 27 Jul 2023 11:06:25 +0100 Subject: [PATCH 42/65] Fix invalid GATK container (#3673) Fix GATK container which was invalid Fixes #3668 --- modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf | 2 +- modules/nf-core/gatk4/germlinecnvcaller/main.nf | 2 +- modules/nf-core/gatk4/postprocessgermlinecnvcalls/main.nf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf b/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf index 593c8968e2f..407cc34c982 100644 --- a/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf +++ b/modules/nf-core/gatk4/determinegermlinecontigploidy/main.nf @@ -4,7 +4,7 @@ process GATK4_DETERMINEGERMLINECONTIGPLOIDY { label 'process_single' //Conda is not supported at the moment: https://github.com/broadinstitute/gatk/issues/7811 - container "quay.io/nf-core/gatk:4.4.0.0" //Biocontainers is missing a package + container "nf-core/gatk:4.4.0.0" //Biocontainers is missing a package // Exit if running this module with -profile conda / -profile mamba if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { diff --git a/modules/nf-core/gatk4/germlinecnvcaller/main.nf b/modules/nf-core/gatk4/germlinecnvcaller/main.nf index 9b31c56d386..b5a873aca78 100644 --- a/modules/nf-core/gatk4/germlinecnvcaller/main.nf +++ b/modules/nf-core/gatk4/germlinecnvcaller/main.nf @@ -3,7 +3,7 @@ process GATK4_GERMLINECNVCALLER { label 'process_single' //Conda is not supported at the moment: https://github.com/broadinstitute/gatk/issues/7811 - container "quay.io/nf-core/gatk:4.4.0.0" //Biocontainers is missing a package + container "nf-core/gatk:4.4.0.0" //Biocontainers is missing a package // Exit if running this module with -profile conda / -profile mamba if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { diff --git a/modules/nf-core/gatk4/postprocessgermlinecnvcalls/main.nf b/modules/nf-core/gatk4/postprocessgermlinecnvcalls/main.nf index 8faf0121de9..d1a03fc12c8 100644 --- a/modules/nf-core/gatk4/postprocessgermlinecnvcalls/main.nf +++ b/modules/nf-core/gatk4/postprocessgermlinecnvcalls/main.nf @@ -3,7 +3,7 @@ process GATK4_POSTPROCESSGERMLINECNVCALLS { label 'process_single' //Conda is not supported at the moment: https://github.com/broadinstitute/gatk/issues/7811 - container "quay.io/nf-core/gatk:4.4.0.0" //Biocontainers is missing a package + container "nf-core/gatk:4.4.0.0" //Biocontainers is missing a package // Exit if running this module with -profile conda / -profile mamba if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { From c381236778975d379ef3e25f3e16ab0fb60ae4d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Guizard?= Date: Thu, 27 Jul 2023 11:11:10 +0100 Subject: [PATCH 43/65] Update: bamtools, gstama, ultra (#3655) * Update Bamtools [2.5.1 -> 2.5.2] * Update gstama/merge [1.0.2 -> 1.0.3] * Update ultra [0.0.4.2 -> 0.1] * Update ultra/index|align|pipeline tests replace gffread by gnu/sort * Irregular md5sum for database.db * Update bamtools/convert test.yml --- modules/nf-core/bamtools/convert/main.nf | 6 ++-- modules/nf-core/bamtools/split/main.nf | 4 +-- modules/nf-core/bamtools/stats/main.nf | 6 ++-- modules/nf-core/gstama/merge/main.nf | 6 ++-- modules/nf-core/ultra/align/main.nf | 6 ++-- modules/nf-core/ultra/index/main.nf | 6 ++-- modules/nf-core/ultra/pipeline/main.nf | 6 ++-- modules/nf-core/ultra/pipeline/meta.yml | 4 +++ .../modules/nf-core/bamtools/convert/test.yml | 29 +++++++------------ tests/modules/nf-core/bamtools/stats/test.yml | 5 ++-- tests/modules/nf-core/ultra/align/main.nf | 16 ++++++---- .../nf-core/ultra/align/nextflow.config | 6 ++-- tests/modules/nf-core/ultra/align/test.yml | 9 ++++-- tests/modules/nf-core/ultra/index/main.nf | 11 ++++--- .../nf-core/ultra/index/nextflow.config | 6 ++-- tests/modules/nf-core/ultra/index/test.yml | 8 +++-- tests/modules/nf-core/ultra/pipeline/main.nf | 20 +++++++++---- .../nf-core/ultra/pipeline/nextflow.config | 6 ++-- tests/modules/nf-core/ultra/pipeline/test.yml | 11 ++++--- 19 files changed, 96 insertions(+), 75 deletions(-) diff --git a/modules/nf-core/bamtools/convert/main.nf b/modules/nf-core/bamtools/convert/main.nf index 0d1d95edd1f..7de17f4026f 100644 --- a/modules/nf-core/bamtools/convert/main.nf +++ b/modules/nf-core/bamtools/convert/main.nf @@ -2,10 +2,10 @@ process BAMTOOLS_CONVERT { tag "$meta.id" label 'process_low' - conda "bioconda::bamtools=2.5.1" + conda "bioconda::bamtools=2.5.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bamtools:2.5.1--h9a82719_9' : - 'biocontainers/bamtools:2.5.1--h9a82719_9' }" + 'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hdcf5f25_2' : + 'biocontainers/bamtools:2.5.2--hdcf5f25_2' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/bamtools/split/main.nf b/modules/nf-core/bamtools/split/main.nf index 550f867848d..f07a5eb24c7 100644 --- a/modules/nf-core/bamtools/split/main.nf +++ b/modules/nf-core/bamtools/split/main.nf @@ -4,8 +4,8 @@ process BAMTOOLS_SPLIT { conda "bioconda::bamtools=2.5.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hd03093a_0' : - 'biocontainers/bamtools:2.5.2--hd03093a_0' }" + 'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hdcf5f25_2' : + 'biocontainers/bamtools:2.5.2--hdcf5f25_2' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/bamtools/stats/main.nf b/modules/nf-core/bamtools/stats/main.nf index ace9023790d..c22fdd5c82a 100644 --- a/modules/nf-core/bamtools/stats/main.nf +++ b/modules/nf-core/bamtools/stats/main.nf @@ -2,10 +2,10 @@ process BAMTOOLS_STATS { tag "$meta.id" label 'process_single' - conda "bioconda::bamtools=2.5.1" + conda "bioconda::bamtools=2.5.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bamtools:2.5.1--h9a82719_9' : - 'biocontainers/bamtools:2.5.1--h9a82719_9' }" + 'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hdcf5f25_2' : + 'biocontainers/bamtools:2.5.2--hdcf5f25_2' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/gstama/merge/main.nf b/modules/nf-core/gstama/merge/main.nf index bac21f77eda..a443538c427 100644 --- a/modules/nf-core/gstama/merge/main.nf +++ b/modules/nf-core/gstama/merge/main.nf @@ -2,10 +2,10 @@ process GSTAMA_MERGE { tag "$meta.id" label 'process_low' - conda "bioconda::gs-tama=1.0.2" + conda "bioconda::gs-tama=1.0.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gs-tama:1.0.2--hdfd78af_0' : - 'biocontainers/gs-tama:1.0.2--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gs-tama:1.0.3--hdfd78af_0' : + 'biocontainers/gs-tama:1.0.3--hdfd78af_0' }" input: tuple val(meta), path(bed) diff --git a/modules/nf-core/ultra/align/main.nf b/modules/nf-core/ultra/align/main.nf index 793c32bc11b..903c90d1d42 100644 --- a/modules/nf-core/ultra/align/main.nf +++ b/modules/nf-core/ultra/align/main.nf @@ -2,10 +2,10 @@ process ULTRA_ALIGN { tag "$meta.id" label 'process_medium' - conda "bioconda::ultra_bioinformatics=0.0.4.2 bioconda::samtools=1.16.1" + conda "bioconda::ultra_bioinformatics=0.1 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-4b749ef583d6de806ddbf51c2d235ac8c14763c6:bda5f599c82caf73ec2e2fe0133ce3eb53f1c724-0': - 'biocontainers/mulled-v2-4b749ef583d6de806ddbf51c2d235ac8c14763c6:bda5f599c82caf73ec2e2fe0133ce3eb53f1c724-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-4b749ef583d6de806ddbf51c2d235ac8c14763c6:c2c0cd48e7ed1cf3f365b421c7389d04e6bfa812-0': + 'biocontainers/mulled-v2-4b749ef583d6de806ddbf51c2d235ac8c14763c6:c2c0cd48e7ed1cf3f365b421c7389d04e6bfa812-0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/ultra/index/main.nf b/modules/nf-core/ultra/index/main.nf index a31120bf4ea..96f43ebe31c 100644 --- a/modules/nf-core/ultra/index/main.nf +++ b/modules/nf-core/ultra/index/main.nf @@ -2,10 +2,10 @@ process ULTRA_INDEX { tag "$gtf" label 'process_low' - conda "bioconda::ultra_bioinformatics=0.0.4.2" + conda "bioconda::ultra_bioinformatics=0.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ultra_bioinformatics:0.0.4.2--pyh7cba7a3_0': - 'biocontainers/ultra_bioinformatics:0.0.4.2--pyh7cba7a3_0' }" + 'https://depot.galaxyproject.org/singularity/ultra_bioinformatics:0.1--pyh7cba7a3_1': + 'biocontainers/ultra_bioinformatics:0.1--pyh7cba7a3_1' }" input: path fasta diff --git a/modules/nf-core/ultra/pipeline/main.nf b/modules/nf-core/ultra/pipeline/main.nf index 3363c65eca8..6748ba1f988 100644 --- a/modules/nf-core/ultra/pipeline/main.nf +++ b/modules/nf-core/ultra/pipeline/main.nf @@ -2,10 +2,10 @@ process ULTRA_PIPELINE { tag "$meta.id" label 'process_high' - conda "bioconda::ultra_bioinformatics=0.0.4.2" + conda "bioconda::ultra_bioinformatics=0.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ultra_bioinformatics:0.0.4.2--pyh7cba7a3_0' : - 'biocontainers/ultra_bioinformatics:0.0.4.2--pyh7cba7a3_0' }" + 'https://depot.galaxyproject.org/singularity/ultra_bioinformatics:0.1--pyh7cba7a3_1': + 'biocontainers/ultra_bioinformatics:0.1--pyh7cba7a3_1' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/ultra/pipeline/meta.yml b/modules/nf-core/ultra/pipeline/meta.yml index 1f1f7f11019..6a639841b4b 100644 --- a/modules/nf-core/ultra/pipeline/meta.yml +++ b/modules/nf-core/ultra/pipeline/meta.yml @@ -2,7 +2,11 @@ name: ultra_pipeline description: uLTRA aligner - A wrapper around minimap2 to improve small exon detection keywords: - uLTRA + - index - minimap2 + - long_read + - isoseq + - ont tools: - ultra: description: Splice aligner of long transcriptomic reads to genome. diff --git a/tests/modules/nf-core/bamtools/convert/test.yml b/tests/modules/nf-core/bamtools/convert/test.yml index f930f0d5846..66c6bcb1e7d 100644 --- a/tests/modules/nf-core/bamtools/convert/test.yml +++ b/tests/modules/nf-core/bamtools/convert/test.yml @@ -1,19 +1,19 @@ - name: bamtools convert test_bamtools_convert_ext_error - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_ext_error -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_ext_error -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert exit_code: 1 - name: bamtools convert test_bamtools_convert_noext_error - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_noext_error -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_noext_error -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert exit_code: 1 - name: bamtools convert test_bamtools_convert_bed - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_bed -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_bed -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert @@ -21,10 +21,9 @@ - path: output/bamtools/test.bed md5sum: 4e34cc15bf31e700f5f3a9f8fffb6c81 - path: output/bamtools/versions.yml - md5sum: eb7a144b8a97965d3482f6f96b8a8243 - name: bamtools convert test_bamtools_convert_fasta - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_fasta -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_fasta -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert @@ -32,10 +31,9 @@ - path: output/bamtools/test.fasta md5sum: 52aeacf78571862b7e97c7d44ac8f827 - path: output/bamtools/versions.yml - md5sum: 42d19a2b2b07f05edb82b34369dfd754 - name: bamtools convert test_bamtools_convert_fastq - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_fastq -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_fastq -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert @@ -43,21 +41,19 @@ - path: output/bamtools/test.fastq md5sum: e591c48daad2c56638e5d6f21f1f71c5 - path: output/bamtools/versions.yml - md5sum: 13f0bf8a3e1f8f527f96dabaa5c8051e - name: bamtools convert test_bamtools_convert_json - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_json -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_json -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert files: - path: output/bamtools/test.json - md5sum: 04afed696f9f14da85a460353645d1f5 + md5sum: 9c44279e6da864f30b52a79a14dcb2bd - path: output/bamtools/versions.yml - md5sum: 33d633dbd6209cb93c9b071f8c0ed3b3 - name: bamtools convert test_bamtools_convert_pileup - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_pileup -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_pileup -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert @@ -65,21 +61,19 @@ - path: output/bamtools/test.pileup md5sum: e5a3cb4a3e1bf980a575fafce6a2826f - path: output/bamtools/versions.yml - md5sum: fd3ad0edd1e085b1a002e0593d1d5814 - name: bamtools convert test_bamtools_convert_sam - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_sam -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_sam -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert files: - path: output/bamtools/test.sam - md5sum: 61ab3d0de16a9da8b651f9c692e19d5e + md5sum: 6f559e53e1ea7ff3dc919c8c4695de96 - path: output/bamtools/versions.yml - md5sum: 4be470ce3cc0143ae5ae415b612a4965 - name: bamtools convert test_bamtools_convert_yaml - command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_yaml -c ./tests/config/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/convert -entry test_bamtools_convert_yaml -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/convert/nextflow.config tags: - bamtools - bamtools/convert @@ -87,4 +81,3 @@ - path: output/bamtools/test.yaml md5sum: 68b56f198da036fef33e150eb773dc3b - path: output/bamtools/versions.yml - md5sum: 1116abc088c5edf11bee393961c18b3e diff --git a/tests/modules/nf-core/bamtools/stats/test.yml b/tests/modules/nf-core/bamtools/stats/test.yml index 938a2c7c9ef..b8bd38e44bd 100644 --- a/tests/modules/nf-core/bamtools/stats/test.yml +++ b/tests/modules/nf-core/bamtools/stats/test.yml @@ -1,8 +1,9 @@ - name: bamtools stats test_bamtools_stats - command: nextflow run ./tests/modules/nf-core/bamtools/stats -entry test_bamtools_stats -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/stats/nextflow.config + command: nextflow run ./tests/modules/nf-core/bamtools/stats -entry test_bamtools_stats -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/bamtools/stats/nextflow.config tags: - - bamtools/stats - bamtools + - bamtools/stats files: - path: output/bamtools/test.bam.stats md5sum: b7c3f01682673a652d664a2889b15b66 + - path: output/bamtools/versions.yml diff --git a/tests/modules/nf-core/ultra/align/main.nf b/tests/modules/nf-core/ultra/align/main.nf index ff40ed1acdf..d85a35d1a40 100644 --- a/tests/modules/nf-core/ultra/align/main.nf +++ b/tests/modules/nf-core/ultra/align/main.nf @@ -3,22 +3,26 @@ nextflow.enable.dsl = 2 include { GUNZIP } from '../../../../../modules/nf-core/gunzip/main.nf' -include { GFFREAD } from '../../../../../modules/nf-core/gffread/main.nf' +include { GNU_SORT } from '../../../../../modules/nf-core/gnu/sort/main.nf' include { ULTRA_INDEX } from '../../../../../modules/nf-core/ultra/index/main.nf' include { ULTRA_ALIGN } from '../../../../../modules/nf-core/ultra/align/main.nf' workflow test_ultra_align { - input = [ + input_gunzip = [ [ id:'test', single_end:false ], file(params.test_data['homo_sapiens']['pacbio']['hifi'], checkIfExists: true) ] + input_sort = [ + [ id:'test', single_end:false ], + file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) + ] + genome = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) - GUNZIP ( input ) - GFFREAD ( gtf ) - ULTRA_INDEX ( genome, GFFREAD.out.gtf ) + GUNZIP ( input_gunzip ) + GNU_SORT ( input_sort ) + ULTRA_INDEX ( genome, GNU_SORT.out.sorted.map{ it[1] } ) ULTRA_ALIGN ( GUNZIP.out.gunzip, genome, ULTRA_INDEX.out.index ) } diff --git a/tests/modules/nf-core/ultra/align/nextflow.config b/tests/modules/nf-core/ultra/align/nextflow.config index fbcedd84e60..bb62486aef2 100644 --- a/tests/modules/nf-core/ultra/align/nextflow.config +++ b/tests/modules/nf-core/ultra/align/nextflow.config @@ -2,9 +2,9 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: GFFREAD { - ext.args = '--sort-alpha --keep-genes -T' - ext.prefix = { "${gff.baseName}_sorted" } + withName: GNU_SORT { + ext.args = '-k1,1 -k4,4n' + ext.prefix = { "${input.baseName}_sorted" } } withName: ULTRA_INDEX { diff --git a/tests/modules/nf-core/ultra/align/test.yml b/tests/modules/nf-core/ultra/align/test.yml index f140ca407bc..72ac2e8a50c 100644 --- a/tests/modules/nf-core/ultra/align/test.yml +++ b/tests/modules/nf-core/ultra/align/test.yml @@ -4,10 +4,12 @@ - ultra/align - ultra files: - - path: output/gffread/genome_sorted.gtf - md5sum: c0b034860c679a354cd093109ed90437 + - path: output/gnu/genome_sorted.gtf + md5sum: 5cc4a890e302e08c88c8645e62be50d6 + - path: output/gnu/versions.yml - path: output/gunzip/test_hifi.fastq md5sum: 20e41c569d5828c1e87337e13a5185d3 + - path: output/gunzip/versions.yml - path: output/ultra/all_splice_pairs_annotations.pickle - path: output/ultra/all_splice_sites_annotations.pickle - path: output/ultra/chr_to_id.pickle @@ -29,5 +31,6 @@ - path: output/ultra/segment_to_ref.pickle - path: output/ultra/splices_to_transcripts.pickle - path: output/ultra/test.bam - md5sum: c1490ef929eb22db7ef2f61e0bf9ded5 + md5sum: 0da7faa1e7031db749b32b20cbf209ad - path: output/ultra/transcripts_to_splices.pickle + - path: output/ultra/versions.yml diff --git a/tests/modules/nf-core/ultra/index/main.nf b/tests/modules/nf-core/ultra/index/main.nf index e5df61e6c44..892f8d332e0 100644 --- a/tests/modules/nf-core/ultra/index/main.nf +++ b/tests/modules/nf-core/ultra/index/main.nf @@ -3,13 +3,16 @@ nextflow.enable.dsl = 2 include { ULTRA_INDEX } from '../../../../../modules/nf-core/ultra/index/main.nf' -include { GFFREAD } from '../../../../../modules/nf-core/gffread/main.nf' +include { GNU_SORT } from '../../../../../modules/nf-core/gnu/sort/main.nf' workflow test_ultra_index { + input = [ + [ id:'test' ], + file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) + ] genome = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) - GFFREAD ( gtf ) - ULTRA_INDEX ( genome, GFFREAD.out.gtf ) + GNU_SORT ( input ) + ULTRA_INDEX ( genome, GNU_SORT.out.sorted.map{ it[1] } ) } diff --git a/tests/modules/nf-core/ultra/index/nextflow.config b/tests/modules/nf-core/ultra/index/nextflow.config index fbcedd84e60..bb62486aef2 100644 --- a/tests/modules/nf-core/ultra/index/nextflow.config +++ b/tests/modules/nf-core/ultra/index/nextflow.config @@ -2,9 +2,9 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: GFFREAD { - ext.args = '--sort-alpha --keep-genes -T' - ext.prefix = { "${gff.baseName}_sorted" } + withName: GNU_SORT { + ext.args = '-k1,1 -k4,4n' + ext.prefix = { "${input.baseName}_sorted" } } withName: ULTRA_INDEX { diff --git a/tests/modules/nf-core/ultra/index/test.yml b/tests/modules/nf-core/ultra/index/test.yml index c562c531294..85374f5851b 100644 --- a/tests/modules/nf-core/ultra/index/test.yml +++ b/tests/modules/nf-core/ultra/index/test.yml @@ -1,11 +1,12 @@ - name: ultra index test_ultra_index command: nextflow run ./tests/modules/nf-core/ultra/index -entry test_ultra_index -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/ultra/index/nextflow.config tags: - - ultra - ultra/index + - ultra files: - - path: output/gffread/genome_sorted.gtf - md5sum: c0b034860c679a354cd093109ed90437 + - path: output/gnu/genome_sorted.gtf + md5sum: 5cc4a890e302e08c88c8645e62be50d6 + - path: output/gnu/versions.yml - path: output/ultra/all_splice_pairs_annotations.pickle - path: output/ultra/all_splice_sites_annotations.pickle - path: output/ultra/chr_to_id.pickle @@ -27,3 +28,4 @@ - path: output/ultra/segment_to_ref.pickle - path: output/ultra/splices_to_transcripts.pickle - path: output/ultra/transcripts_to_splices.pickle + - path: output/ultra/versions.yml diff --git a/tests/modules/nf-core/ultra/pipeline/main.nf b/tests/modules/nf-core/ultra/pipeline/main.nf index fe0487e4417..6fe341e0fce 100644 --- a/tests/modules/nf-core/ultra/pipeline/main.nf +++ b/tests/modules/nf-core/ultra/pipeline/main.nf @@ -4,19 +4,27 @@ nextflow.enable.dsl = 2 include { ULTRA_PIPELINE } from '../../../../../modules/nf-core/ultra/pipeline/main.nf' include { GUNZIP } from '../../../../../modules/nf-core/gunzip/main.nf' -include { GFFREAD } from '../../../../../modules/nf-core/gffread/main.nf' +include { GNU_SORT } from '../../../../../modules/nf-core/gnu/sort/main.nf' workflow test_ultra_pipeline { - input = [ + input_gunzip = [ [ id:'test', single_end:false ], file(params.test_data['homo_sapiens']['pacbio']['hifi'], checkIfExists: true) ] - GUNZIP ( input ) - gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) + input_sort = [ + [ id:'test', single_end:false ], + file(params.test_data['homo_sapiens']['genome']['genome_gtf'] , checkIfExists: true) + ] + genome = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - GFFREAD ( gtf ) - ULTRA_PIPELINE ( GUNZIP.out.gunzip, genome, GFFREAD.out.gtf ) + GUNZIP ( input_gunzip ) + GNU_SORT ( input_sort ) + ULTRA_PIPELINE ( + GUNZIP.out.gunzip, + genome, + GNU_SORT.out.sorted.map{ it[1] } ) + } diff --git a/tests/modules/nf-core/ultra/pipeline/nextflow.config b/tests/modules/nf-core/ultra/pipeline/nextflow.config index 2f21093d887..d55d6351db6 100644 --- a/tests/modules/nf-core/ultra/pipeline/nextflow.config +++ b/tests/modules/nf-core/ultra/pipeline/nextflow.config @@ -2,9 +2,9 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: GFFREAD { - ext.args = '--sort-alpha --keep-genes -T' - ext.prefix = { "${gff.baseName}_sorted" } + withName: GNU_SORT { + ext.args = '-k1,1 -k4,4n' + ext.prefix = { "${input.baseName}_sorted" } } } diff --git a/tests/modules/nf-core/ultra/pipeline/test.yml b/tests/modules/nf-core/ultra/pipeline/test.yml index 2d2508fb4f2..3544d6f9176 100644 --- a/tests/modules/nf-core/ultra/pipeline/test.yml +++ b/tests/modules/nf-core/ultra/pipeline/test.yml @@ -1,12 +1,15 @@ - name: ultra pipeline test_ultra_pipeline command: nextflow run ./tests/modules/nf-core/ultra/pipeline -entry test_ultra_pipeline -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/ultra/pipeline/nextflow.config tags: - - ultra - ultra/pipeline + - ultra files: - - path: output/gffread/genome_sorted.gtf - md5sum: c0b034860c679a354cd093109ed90437 + - path: output/gnu/genome_sorted.gtf + md5sum: 5cc4a890e302e08c88c8645e62be50d6 + - path: output/gnu/versions.yml - path: output/gunzip/test_hifi.fastq md5sum: 20e41c569d5828c1e87337e13a5185d3 + - path: output/gunzip/versions.yml - path: output/ultra/test.sam - md5sum: 79230eee060627c50f6f0caaef63b137 + md5sum: 4a1d88a2db09a442630a623083b6d982 + - path: output/ultra/versions.yml From 0f30afbd6c49fa712a958df6c53bcddee49b5edd Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 27 Jul 2023 13:52:24 +0200 Subject: [PATCH 44/65] Fix centrifuge: reduce number of input channels (#3674) * Bump taxpasta version (biocontainer not yet available) * Remove unnecessary (and sometimes problematic) input channel * Improve output glob for optional alignments * Remove now unnecessary variable from command * linting * Add missing args --- modules/nf-core/centrifuge/centrifuge/main.nf | 5 +---- modules/nf-core/centrifuge/centrifuge/meta.yml | 9 +++++++-- tests/modules/nf-core/centrifuge/centrifuge/main.nf | 6 ++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/centrifuge/centrifuge/main.nf b/modules/nf-core/centrifuge/centrifuge/main.nf index b43b0ee194f..6e45ba4e3f3 100644 --- a/modules/nf-core/centrifuge/centrifuge/main.nf +++ b/modules/nf-core/centrifuge/centrifuge/main.nf @@ -12,12 +12,11 @@ process CENTRIFUGE_CENTRIFUGE { path db val save_unaligned val save_aligned - val sam_format output: tuple val(meta), path('*report.txt') , emit: report tuple val(meta), path('*results.txt') , emit: results - tuple val(meta), path('*.sam') , optional: true, emit: sam + tuple val(meta), path('*.{sam,tab}') , optional: true, emit: sam tuple val(meta), path('*.mapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_mapped tuple val(meta), path('*.unmapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_unmapped path "versions.yml" , emit: versions @@ -38,7 +37,6 @@ process CENTRIFUGE_CENTRIFUGE { unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' aligned = save_aligned ? "--al-conc-gz ${prefix}.mapped.fastq.gz" : '' } - def sam_output = sam_format ? "--out-fmt 'sam'" : '' """ ## we add "-no-name ._" to ensure silly Mac OSX metafiles files aren't included db_name=`find -L ${db} -name "*.1.cf" -not -name "._*" | sed 's/\\.1.cf\$//'` @@ -50,7 +48,6 @@ process CENTRIFUGE_CENTRIFUGE { -S ${prefix}.results.txt \\ $unaligned \\ $aligned \\ - $sam_output \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/centrifuge/centrifuge/meta.yml b/modules/nf-core/centrifuge/centrifuge/meta.yml index a252c00c2ce..b51e2522206 100644 --- a/modules/nf-core/centrifuge/centrifuge/meta.yml +++ b/modules/nf-core/centrifuge/centrifuge/meta.yml @@ -27,10 +27,10 @@ input: type: directory description: Path to directory containing centrifuge database files - save_unaligned: - type: value + type: boolean description: If true unmapped fastq files are saved - save_aligned: - type: value + type: boolean description: If true mapped fastq files are saved output: - meta: @@ -48,6 +48,11 @@ output: description: | File containing classification results pattern: "*.{results.txt}" + - sam: + type: file + description: | + Optional output file containing read alignments (SAM format )or a table of per-read hit information (TAB)s + pattern: "*.{sam,tab}" - fastq_unmapped: type: file description: Unmapped fastq files diff --git a/tests/modules/nf-core/centrifuge/centrifuge/main.nf b/tests/modules/nf-core/centrifuge/centrifuge/main.nf index ab91d9f001e..5d4eec15e22 100644 --- a/tests/modules/nf-core/centrifuge/centrifuge/main.nf +++ b/tests/modules/nf-core/centrifuge/centrifuge/main.nf @@ -12,10 +12,9 @@ workflow test_centrifuge_centrifuge_single_end { db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] save_unaligned = true save_aligned = false - sam_format = false UNTAR ( db ) - CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned, sam_format ) + CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned ) } @@ -27,10 +26,9 @@ workflow test_centrifuge_centrifuge_paired_end { db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] save_unaligned = true save_aligned = false - sam_format = false UNTAR ( db ) - CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned, sam_format ) + CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned ) } From e950f937eea04123bfe2c8695c5e165e0346bea2 Mon Sep 17 00:00:00 2001 From: limrp Date: Thu, 27 Jul 2023 22:57:19 -0500 Subject: [PATCH 45/65] Remove unused ublast module --- modules/nf-core/ublast/main.nf | 91 -------------------- modules/nf-core/ublast/meta.yml | 55 ------------ tests/modules/nf-core/ublast/main.nf | 15 ---- tests/modules/nf-core/ublast/nextflow.config | 5 -- tests/modules/nf-core/ublast/test.yml | 12 --- 5 files changed, 178 deletions(-) delete mode 100644 modules/nf-core/ublast/main.nf delete mode 100644 modules/nf-core/ublast/meta.yml delete mode 100644 tests/modules/nf-core/ublast/main.nf delete mode 100644 tests/modules/nf-core/ublast/nextflow.config delete mode 100644 tests/modules/nf-core/ublast/test.yml diff --git a/modules/nf-core/ublast/main.nf b/modules/nf-core/ublast/main.nf deleted file mode 100644 index 77b1b4d9635..00000000000 --- a/modules/nf-core/ublast/main.nf +++ /dev/null @@ -1,91 +0,0 @@ -// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) -// https://github.com/nf-core/modules/tree/master/modules/nf-core/ -// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: -// https://nf-co.re/join -// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. -// All other parameters MUST be provided using the "task.ext" directive, see here: -// https://www.nextflow.io/docs/latest/process.html#ext -// where "task.ext" is a string. -// Any parameters that need to be evaluated in the context of a particular sample -// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. -// TODO nf-core: Software that can be piped together SHOULD be added to separate module files -// unless there is a run-time, storage advantage in implementing in this way -// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: -// bwa mem | samtools view -B -T ref.fasta -// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty -// list (`[]`) instead of a file can be used to work around this issue. - -process UBLAST { - tag "$meta.id" - label 'process_medium' - - // TODO nf-core: List required Conda package(s). - // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). - // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. - // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. - conda "YOUR-TOOL-HERE" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/YOUR-TOOL-HERE': - 'biocontainers/YOUR-TOOL-HERE' }" - - input: - // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" - // MUST be provided as an input via a Groovy Map called "meta". - // This information may not be required in some instances e.g. indexing reference genome files: - // https://github.com/nf-core/modules/blob/master/modules/nf-core/bwa/index/main.nf - // TODO nf-core: Where applicable please provide/convert compressed files as input/output - // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. - tuple val(meta), path(bam) - - output: - // TODO nf-core: Named file extensions MUST be emitted for ALL output channels - tuple val(meta), path("*.bam"), emit: bam - // TODO nf-core: List additional required output channels/values here - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 - // If the software is unable to output a version number on the command-line then it can be manually specified - // e.g. https://github.com/nf-core/modules/blob/master/modules/nf-core/homer/annotatepeaks/main.nf - // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) - // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive - // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter - // using the Nextflow "task" variable e.g. "--threads $task.cpus" - // TODO nf-core: Please replace the example samtools command below with your module's command - // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) - """ - samtools \\ - sort \\ - $args \\ - -@ $task.cpus \\ - -o ${prefix}.bam \\ - -T $prefix \\ - $bam - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) - END_VERSIONS - """ - - stub: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - // TODO nf-core: A stub section should mimic the execution of the original module as best as possible - // Have a look at the following examples: - // Simple example: https://github.com/nf-core/modules/blob/818474a292b4860ae8ff88e149fbcda68814114d/modules/nf-core/bcftools/annotate/main.nf#L47-L63 - // Complex example: https://github.com/nf-core/modules/blob/818474a292b4860ae8ff88e149fbcda68814114d/modules/nf-core/bedtools/split/main.nf#L38-L54 - """ - touch ${prefix}.bam - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - : \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) - END_VERSIONS - """ -} diff --git a/modules/nf-core/ublast/meta.yml b/modules/nf-core/ublast/meta.yml deleted file mode 100644 index 495b957b520..00000000000 --- a/modules/nf-core/ublast/meta.yml +++ /dev/null @@ -1,55 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json -name: "ublast" -## TODO nf-core: Add a description of the module and list keywords -description: write your description here -keywords: - - sort - - example - - genomics -tools: - - "ublast": - ## TODO nf-core: Add a description and other details for the software below - description: "" - homepage: "" - documentation: "" - tool_dev_url: "" - doi: "" - licence: "" - -## TODO nf-core: Add a description of all of the variables used as input -input: - # Only when we have meta - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - ## TODO nf-core: Delete / customise this example input - - bam: - type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" - -## TODO nf-core: Add a description of all of the variables used as output -output: - #Only when we have meta - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'test', single_end:false ]` - - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - ## TODO nf-core: Delete / customise this example output - - bam: - type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" - -authors: - - "@limrp" diff --git a/tests/modules/nf-core/ublast/main.nf b/tests/modules/nf-core/ublast/main.nf deleted file mode 100644 index 9768b07238a..00000000000 --- a/tests/modules/nf-core/ublast/main.nf +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { UBLAST } from '../../../../modules/nf-core/ublast/main.nf' - -workflow test_ublast { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) - ] - - UBLAST ( input ) -} diff --git a/tests/modules/nf-core/ublast/nextflow.config b/tests/modules/nf-core/ublast/nextflow.config deleted file mode 100644 index 50f50a7a357..00000000000 --- a/tests/modules/nf-core/ublast/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file diff --git a/tests/modules/nf-core/ublast/test.yml b/tests/modules/nf-core/ublast/test.yml deleted file mode 100644 index a61a1b0cbf6..00000000000 --- a/tests/modules/nf-core/ublast/test.yml +++ /dev/null @@ -1,12 +0,0 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml -- name: "ublast" - command: nextflow run ./tests/modules/nf-core/ublast -entry test_ublast -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/ublast/nextflow.config - tags: - - "ublast" - files: - - path: "output/ublast/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc - - path: "output/ublast/versions.yml" - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b - From a34398fa9ef86f44846837c4f1234a5df411058f Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 01:06:43 -0500 Subject: [PATCH 46/65] Checking tests that were failing from the samtools/cramsize module. --- modules/nf-core/samtools/cramsize/main.nf | 4 ++-- tests/modules/nf-core/samtools/cramsize/test.yml | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 7e11c61b24a..09354604f20 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -29,7 +29,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ @@ -40,7 +40,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml index 94a5ec85407..1c4b4dbbebc 100644 --- a/tests/modules/nf-core/samtools/cramsize/test.yml +++ b/tests/modules/nf-core/samtools/cramsize/test.yml @@ -1,8 +1,7 @@ -- name: test_samtools_cramsize +- name: samtools cramsize test_samtools_cramsize command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config tags: - - test.cram - - test.size + - samtools/cramsize files: - path: output/samtools/test.size md5sum: aff113286a3368bcb9c5b708bdf5f777 From 926f0c5c898473644d69255bc4cd8a4f1722e9d1 Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 02:08:28 -0500 Subject: [PATCH 47/65] Writing some errors. --- modules/nf-core/samtools/cramsize/main.nf | 4 ++-- tests/modules/nf-core/samtools/cramsize/test.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 09354604f20..28941cf6174 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -29,7 +29,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')) END_VERSIONS """ @@ -40,7 +40,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')) END_VERSIONS """ } diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml index 1c4b4dbbebc..0933cc54ce1 100644 --- a/tests/modules/nf-core/samtools/cramsize/test.yml +++ b/tests/modules/nf-core/samtools/cramsize/test.yml @@ -1,7 +1,7 @@ - name: samtools cramsize test_samtools_cramsize command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config tags: - - samtools/cramsize + - samtools/cramsize. files: - path: output/samtools/test.size md5sum: aff113286a3368bcb9c5b708bdf5f777 From ca0df04e8b8d1e0db4b36f44dd92d97013bad1a5 Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 02:12:16 -0500 Subject: [PATCH 48/65] Checking failed test of the samtools/cram-size module. --- modules/nf-core/samtools/cramsize/main.nf | 4 ++-- tests/modules/nf-core/samtools/cramsize/test.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 28941cf6174..09354604f20 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -29,7 +29,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ @@ -40,7 +40,7 @@ process SAMTOOLS_CRAMSIZE { cat <<-END_VERSIONS > versions.yml "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml index 0933cc54ce1..1c4b4dbbebc 100644 --- a/tests/modules/nf-core/samtools/cramsize/test.yml +++ b/tests/modules/nf-core/samtools/cramsize/test.yml @@ -1,7 +1,7 @@ - name: samtools cramsize test_samtools_cramsize command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config tags: - - samtools/cramsize. + - samtools/cramsize files: - path: output/samtools/test.size md5sum: aff113286a3368bcb9c5b708bdf5f777 From d8bd46ce621c4b1cf5f575971d4ba6383d2f666a Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 21:06:30 -0500 Subject: [PATCH 49/65] Checking failed test on yml file. --- tests/modules/nf-core/plasflow/test.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml index e36f0a3bd43..9190aa0037b 100644 --- a/tests/modules/nf-core/plasflow/test.yml +++ b/tests/modules/nf-core/plasflow/test.yml @@ -1,19 +1,11 @@ -- name: test_plasflow +- name: plasflow test_plasflow command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config tags: - - metagenome - - chromosome - - plasmid + - plasflow. files: - path: output/plasflow/test.tsv md5sum: a7c0ee75bca40f7ae5000a120d3f2099 - path: output/plasflow/test_chromosomes.fasta.gz - contains: - - Fasta file containing chromosome sequences - path: output/plasflow/test_plasmids.fasta.gz - contains: - - Fasta file containing plasmid sequences - path: output/plasflow/test_unclassified.fasta.gz - contains: - - Fasta file containing unclassified sequences - path: output/plasflow/versions.yml From 8d6df3c58aa903572c57c8df90a6ffc988382623 Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 21:12:54 -0500 Subject: [PATCH 50/65] Fixing test.yml file. --- tests/modules/nf-core/plasflow/test.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml index e36f0a3bd43..3aed53f0ddd 100644 --- a/tests/modules/nf-core/plasflow/test.yml +++ b/tests/modules/nf-core/plasflow/test.yml @@ -1,19 +1,11 @@ -- name: test_plasflow +- name: plasflow test_plasflow command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config tags: - - metagenome - - chromosome - - plasmid + - plasflow files: - path: output/plasflow/test.tsv md5sum: a7c0ee75bca40f7ae5000a120d3f2099 - path: output/plasflow/test_chromosomes.fasta.gz - contains: - - Fasta file containing chromosome sequences - path: output/plasflow/test_plasmids.fasta.gz - contains: - - Fasta file containing plasmid sequences - path: output/plasflow/test_unclassified.fasta.gz - contains: - - Fasta file containing unclassified sequences - path: output/plasflow/versions.yml From 573f18c938479507d112b1823f4d1e4cb403d7ca Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 21:31:40 -0500 Subject: [PATCH 51/65] Fixing test.yml from plasflow module. --- tests/modules/nf-core/plasflow/test.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tests/modules/nf-core/plasflow/test.yml diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml new file mode 100644 index 00000000000..15e9b01dae4 --- /dev/null +++ b/tests/modules/nf-core/plasflow/test.yml @@ -0,0 +1,11 @@ +- name: plasflow test_plasflow + command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config + tags: + - plasflow + files: + - path: output/plasflow/test.tsv + md5sum: a7c0ee75bca40f7ae5000a120d3f2099 + - path: output/plasflow/test_chromosomes.fasta.gz + - path: output/plasflow/test_plasmids.fasta.gz + - path: output/plasflow/test_unclassified.fasta.gz + - path: output/plasflow/versions.yml \ No newline at end of file From e52e586f0d09dcffba9f42111bc4e9f242858817 Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 21:38:57 -0500 Subject: [PATCH 52/65] Removing trailing whitespaces from files. --- modules/nf-core/plasflow/meta.yml | 8 ++++---- modules/nf-core/samtools/cramsize/main.nf | 2 +- tests/modules/nf-core/plasflow/test.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/plasflow/meta.yml b/modules/nf-core/plasflow/meta.yml index 0271f96a9ef..c2e65604af4 100644 --- a/modules/nf-core/plasflow/meta.yml +++ b/modules/nf-core/plasflow/meta.yml @@ -8,10 +8,10 @@ keywords: tools: - "PlasFlow": description: | - PlasFlow is a set of scripts used for prediction of plasmid sequences in metagenomic contigs. - It relies on the neural network models trained on full genome and plasmid sequences and is able - to differentiate between plasmids and chromosomes with accuracy reaching 96%. It outperforms - other available solutions for plasmids recovery from metagenomes and incorporates the thresholding + PlasFlow is a set of scripts used for prediction of plasmid sequences in metagenomic contigs. + It relies on the neural network models trained on full genome and plasmid sequences and is able + to differentiate between plasmids and chromosomes with accuracy reaching 96%. It outperforms + other available solutions for plasmids recovery from metagenomes and incorporates the thresholding which allows for exclusion of incertain predictions. homepage: https://github.com/smaegol/PlasFlow documentation: https://github.com/smaegol/PlasFlow diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 09354604f20..02bf7fc16c8 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -42,5 +42,5 @@ process SAMTOOLS_CRAMSIZE { "${task.process}": samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS - """ + """ } diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml index 15e9b01dae4..3aed53f0ddd 100644 --- a/tests/modules/nf-core/plasflow/test.yml +++ b/tests/modules/nf-core/plasflow/test.yml @@ -8,4 +8,4 @@ - path: output/plasflow/test_chromosomes.fasta.gz - path: output/plasflow/test_plasmids.fasta.gz - path: output/plasflow/test_unclassified.fasta.gz - - path: output/plasflow/versions.yml \ No newline at end of file + - path: output/plasflow/versions.yml From 9f6c9b57460d388672800da2a4f9f61b69d7469f Mon Sep 17 00:00:00 2001 From: limrp Date: Fri, 28 Jul 2023 21:53:25 -0500 Subject: [PATCH 53/65] Fixing test.yml from plasflow module. --- tests/modules/nf-core/plasflow/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml index 3aed53f0ddd..4cc2c7902ed 100644 --- a/tests/modules/nf-core/plasflow/test.yml +++ b/tests/modules/nf-core/plasflow/test.yml @@ -1,4 +1,4 @@ -- name: plasflow test_plasflow +- name: plasflow command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config tags: - plasflow From fe506d2682d420c086722668bcf7c71840d30c53 Mon Sep 17 00:00:00 2001 From: limrp Date: Sun, 30 Jul 2023 17:11:53 -0500 Subject: [PATCH 54/65] Removing Plasflow from conda. It doesn't work. --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index c1f2500512c..799d234088d 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - conda "bioconda::plasflow=1.1.0" + //conda "bioconda::plasflow=1.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From 2605c973bae86a2ae6a8df7114cdbd816680683e Mon Sep 17 00:00:00 2001 From: limrp Date: Sun, 30 Jul 2023 17:13:38 -0500 Subject: [PATCH 55/65] Running prettier on test.yml from plasflow. --- tests/modules/nf-core/plasflow/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/nf-core/plasflow/test.yml b/tests/modules/nf-core/plasflow/test.yml index 4cc2c7902ed..150e4d2f268 100644 --- a/tests/modules/nf-core/plasflow/test.yml +++ b/tests/modules/nf-core/plasflow/test.yml @@ -1,4 +1,4 @@ -- name: plasflow +- name: plasflow command: nextflow run ./tests/modules/nf-core/plasflow -entry test_plasflow -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/plasflow/nextflow.config tags: - plasflow From 1eaa0fbabd9dffb44e3a49872b4772cb365e742f Mon Sep 17 00:00:00 2001 From: limrp Date: Mon, 31 Jul 2023 10:06:23 -0500 Subject: [PATCH 56/65] Details of the conda environment. --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index 799d234088d..3a47dfda3f0 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - //conda "bioconda::plasflow=1.1.0" + conda "python=3.5 bioconda::plasflow=1.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From 99edf700a398cdeb67668e7fc0c5c155a60cdca1 Mon Sep 17 00:00:00 2001 From: limrp Date: Mon, 31 Jul 2023 20:34:06 -0500 Subject: [PATCH 57/65] Adding specific Tensorflow version for Plasflow. --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index 3a47dfda3f0..f89b4d4fc2f 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - conda "python=3.5 bioconda::plasflow=1.1.0" + conda "python=3.5 tensorflow=1.5.0 bioconda::plasflow=1.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From eeb8cbadd0c03af23ceb5c99bda8f32cddbca97d Mon Sep 17 00:00:00 2001 From: limrp Date: Thu, 3 Aug 2023 15:13:29 -0500 Subject: [PATCH 58/65] Adding channel for python 3.5 --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index f89b4d4fc2f..60e9dc72607 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - conda "python=3.5 tensorflow=1.5.0 bioconda::plasflow=1.1.0" + conda "pkgs/main::python=3.5 bioconda::plasflow=1.1.0" // conda-forge::tensorflow=1.5.0 container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From 31d0b5dd5cd5f520d06dcc8d1ef1a60155ef71ab Mon Sep 17 00:00:00 2001 From: limrp Date: Thu, 3 Aug 2023 15:29:24 -0500 Subject: [PATCH 59/65] Fixing the channel for python 3.5 for plasflow module. --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index 60e9dc72607..38ef903a2cc 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - conda "pkgs/main::python=3.5 bioconda::plasflow=1.1.0" // conda-forge::tensorflow=1.5.0 + conda "'pkgs/main'::python=3.5 bioconda::plasflow=1.1.0" // conda-forge::tensorflow=1.5.0 container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From 78e7c8372ca61962f8fb72ff495515a07d74a361 Mon Sep 17 00:00:00 2001 From: limrp Date: Thu, 3 Aug 2023 15:38:42 -0500 Subject: [PATCH 60/65] Changing the channel for python 3.5 (to conda-forge) for plasflow module. --- modules/nf-core/plasflow/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/plasflow/main.nf b/modules/nf-core/plasflow/main.nf index 38ef903a2cc..175c38867c3 100644 --- a/modules/nf-core/plasflow/main.nf +++ b/modules/nf-core/plasflow/main.nf @@ -2,7 +2,7 @@ process PLASFLOW { tag "$meta.id" label 'process_medium' - conda "'pkgs/main'::python=3.5 bioconda::plasflow=1.1.0" // conda-forge::tensorflow=1.5.0 + conda "conda-forge::python=3.5 bioconda::plasflow=1.1.0" // conda-forge::tensorflow=1.5.0 container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/plasflow:1.1.0--py35_0': 'biocontainers/plasflow:1.1.0--py35_0' }" From 4407fb4ee65f8aa54238383b0c51938eeff04d89 Mon Sep 17 00:00:00 2001 From: Simon Pearce Date: Fri, 10 May 2024 09:02:37 +0000 Subject: [PATCH 61/65] Update cramsize --- .../nf-core/samtools/cramsize/environment.yml | 10 +++ modules/nf-core/samtools/cramsize/main.nf | 6 +- .../samtools/cramsize/tests/main.nf.test | 56 +++++++++++++++ .../samtools/cramsize/tests/main.nf.test.snap | 72 +++++++++++++++++++ .../nf-core/samtools/cramsize/tests/tags.yml | 2 + modules/nf-core/samtools/cramsize_old/main.nf | 46 ++++++++++++ .../nf-core/samtools/cramsize_old/meta.yml | 42 +++++++++++ .../modules/nf-core/samtools/cramsize/main.nf | 15 ---- .../nf-core/samtools/cramsize/nextflow.config | 5 -- .../nf-core/samtools/cramsize/test.yml | 8 --- 10 files changed, 231 insertions(+), 31 deletions(-) create mode 100644 modules/nf-core/samtools/cramsize/environment.yml create mode 100644 modules/nf-core/samtools/cramsize/tests/main.nf.test create mode 100644 modules/nf-core/samtools/cramsize/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/cramsize/tests/tags.yml create mode 100644 modules/nf-core/samtools/cramsize_old/main.nf create mode 100644 modules/nf-core/samtools/cramsize_old/meta.yml delete mode 100644 tests/modules/nf-core/samtools/cramsize/main.nf delete mode 100644 tests/modules/nf-core/samtools/cramsize/nextflow.config delete mode 100644 tests/modules/nf-core/samtools/cramsize/test.yml diff --git a/modules/nf-core/samtools/cramsize/environment.yml b/modules/nf-core/samtools/cramsize/environment.yml new file mode 100644 index 00000000000..35564a6af29 --- /dev/null +++ b/modules/nf-core/samtools/cramsize/environment.yml @@ -0,0 +1,10 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: samtools_cramsize +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.19.2 + - bioconda::htslib=1.19.1 diff --git a/modules/nf-core/samtools/cramsize/main.nf b/modules/nf-core/samtools/cramsize/main.nf index 02bf7fc16c8..031408538da 100644 --- a/modules/nf-core/samtools/cramsize/main.nf +++ b/modules/nf-core/samtools/cramsize/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_CRAMSIZE { tag "$meta.id" label 'process_medium' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0': - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : + 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" input: tuple val(meta), path(cram) diff --git a/modules/nf-core/samtools/cramsize/tests/main.nf.test b/modules/nf-core/samtools/cramsize/tests/main.nf.test new file mode 100644 index 00000000000..4d9db9eee14 --- /dev/null +++ b/modules/nf-core/samtools/cramsize/tests/main.nf.test @@ -0,0 +1,56 @@ +nextflow_process { + + name "Test Process SAMTOOLS_CRAMSIZE" + script "../main.nf" + process "SAMTOOLS_CRAMSIZE" + + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/cramsize" + + test("sarscov2 - bam") { + + when { + process { + """ + input[0] = [[ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [[ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/samtools/cramsize/tests/main.nf.test.snap b/modules/nf-core/samtools/cramsize/tests/main.nf.test.snap new file mode 100644 index 00000000000..4d287dce723 --- /dev/null +++ b/modules/nf-core/samtools/cramsize/tests/main.nf.test.snap @@ -0,0 +1,72 @@ +{ + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.size:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,db501fa93965ac86378ff1c8d6c68c30" + ], + "size": [ + [ + { + "id": "test", + "single_end": false + }, + "test.size:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,db501fa93965ac86378ff1c8d6c68c30" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T08:59:24.256576584" + }, + "sarscov2 - bam": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.size:md5,aff113286a3368bcb9c5b708bdf5f777" + ] + ], + "1": [ + "versions.yml:md5,db501fa93965ac86378ff1c8d6c68c30" + ], + "size": [ + [ + { + "id": "test", + "single_end": false + }, + "test.size:md5,aff113286a3368bcb9c5b708bdf5f777" + ] + ], + "versions": [ + "versions.yml:md5,db501fa93965ac86378ff1c8d6c68c30" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T08:58:36.451081009" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/cramsize/tests/tags.yml b/modules/nf-core/samtools/cramsize/tests/tags.yml new file mode 100644 index 00000000000..1a6ecc9bf26 --- /dev/null +++ b/modules/nf-core/samtools/cramsize/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/cramsize: + - "modules/nf-core/samtools/cramsize/**" diff --git a/modules/nf-core/samtools/cramsize_old/main.nf b/modules/nf-core/samtools/cramsize_old/main.nf new file mode 100644 index 00000000000..02bf7fc16c8 --- /dev/null +++ b/modules/nf-core/samtools/cramsize_old/main.nf @@ -0,0 +1,46 @@ +process SAMTOOLS_CRAMSIZE { + tag "$meta.id" + label 'process_medium' + + conda "bioconda::samtools=1.17" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0': + 'biocontainers/samtools:1.17--h00cdaf9_0' }" + + input: + tuple val(meta), path(cram) + + output: + tuple val(meta), path("*.size"), emit: size + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "$meta.id" + """ + samtools \\ + cram-size \\ + $args \\ + -o ${prefix}.size \\ + $cram + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "$meta.id" + """ + touch ${prefix}.size + + 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/cramsize_old/meta.yml b/modules/nf-core/samtools/cramsize_old/meta.yml new file mode 100644 index 00000000000..cab8ea44167 --- /dev/null +++ b/modules/nf-core/samtools/cramsize_old/meta.yml @@ -0,0 +1,42 @@ +name: samtools_cramsize +description: List CRAM Content-ID and Data-Series sizes +keywords: + - cram-size + - cram + - size +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: http://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - cram: + type: file + description: CRAM file + pattern: "*.cram" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - size: + type: file + description: Size information file + pattern: "*.size" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@limrp" diff --git a/tests/modules/nf-core/samtools/cramsize/main.nf b/tests/modules/nf-core/samtools/cramsize/main.nf deleted file mode 100644 index dc6e89ee31e..00000000000 --- a/tests/modules/nf-core/samtools/cramsize/main.nf +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SAMTOOLS_CRAMSIZE } from '../../../../../modules/nf-core/samtools/cramsize/main.nf' - -workflow test_samtools_cramsize { - - input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true) - ] - - SAMTOOLS_CRAMSIZE ( input ) -} \ No newline at end of file diff --git a/tests/modules/nf-core/samtools/cramsize/nextflow.config b/tests/modules/nf-core/samtools/cramsize/nextflow.config deleted file mode 100644 index 50f50a7a357..00000000000 --- a/tests/modules/nf-core/samtools/cramsize/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file diff --git a/tests/modules/nf-core/samtools/cramsize/test.yml b/tests/modules/nf-core/samtools/cramsize/test.yml deleted file mode 100644 index 1c4b4dbbebc..00000000000 --- a/tests/modules/nf-core/samtools/cramsize/test.yml +++ /dev/null @@ -1,8 +0,0 @@ -- name: samtools cramsize test_samtools_cramsize - command: nextflow run ./tests/modules/nf-core/samtools/cramsize -entry test_samtools_cramsize -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/samtools/cramsize/nextflow.config - tags: - - samtools/cramsize - files: - - path: output/samtools/test.size - md5sum: aff113286a3368bcb9c5b708bdf5f777 - - path: output/samtools/versions.yml From e630347b3e416d791394237c57fc3bec89805701 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 10 May 2024 09:03:22 +0000 Subject: [PATCH 62/65] Excluse cramsize from pytest --- tests/config/pytest_modules.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d921a7d5c7e..ad6f5dc85a6 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1614,9 +1614,6 @@ sambamba/markdup: samtools/collatefastq: - modules/nf-core/samtools/collatefastq/** - tests/modules/nf-core/samtools/collatefastq/** -samtools/cramsize: - - modules/nf-core/samtools/cramsize/** - - tests/modules/nf-core/samtools/cramsize/** samtools/depth: - modules/nf-core/samtools/depth/** - tests/modules/nf-core/samtools/depth/** From 39f9030731d279c612e01ebd7d9bfc036ad1c11c Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 4 Jun 2024 15:49:49 +0100 Subject: [PATCH 63/65] Delete modules/nf-core/samtools/cramsize_old/main.nf --- modules/nf-core/samtools/cramsize_old/main.nf | 46 ------------------- 1 file changed, 46 deletions(-) delete mode 100644 modules/nf-core/samtools/cramsize_old/main.nf diff --git a/modules/nf-core/samtools/cramsize_old/main.nf b/modules/nf-core/samtools/cramsize_old/main.nf deleted file mode 100644 index 02bf7fc16c8..00000000000 --- a/modules/nf-core/samtools/cramsize_old/main.nf +++ /dev/null @@ -1,46 +0,0 @@ -process SAMTOOLS_CRAMSIZE { - tag "$meta.id" - label 'process_medium' - - conda "bioconda::samtools=1.17" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0': - 'biocontainers/samtools:1.17--h00cdaf9_0' }" - - input: - tuple val(meta), path(cram) - - output: - tuple val(meta), path("*.size"), emit: size - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "$meta.id" - """ - samtools \\ - cram-size \\ - $args \\ - -o ${prefix}.size \\ - $cram - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS - """ - - stub: - def prefix = task.ext.prefix ?: "$meta.id" - """ - touch ${prefix}.size - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS - """ -} From 38347b01d0b4328f3d19bea849f7d4b2b0be8058 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 4 Jun 2024 15:50:03 +0100 Subject: [PATCH 64/65] Delete modules/nf-core/samtools/cramsize_old/meta.yml --- .../nf-core/samtools/cramsize_old/meta.yml | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 modules/nf-core/samtools/cramsize_old/meta.yml diff --git a/modules/nf-core/samtools/cramsize_old/meta.yml b/modules/nf-core/samtools/cramsize_old/meta.yml deleted file mode 100644 index cab8ea44167..00000000000 --- a/modules/nf-core/samtools/cramsize_old/meta.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: samtools_cramsize -description: List CRAM Content-ID and Data-Series sizes -keywords: - - cram-size - - cram - - size -tools: - - samtools: - description: | - SAMtools is a set of utilities for interacting with and post-processing - short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. - These files are generated as output by short read aligners like BWA. - homepage: http://www.htslib.org/ - documentation: http://www.htslib.org/doc/samtools.html - doi: 10.1093/bioinformatics/btp352 - licence: ["MIT"] -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - cram: - type: file - description: CRAM file - pattern: "*.cram" -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - size: - type: file - description: Size information file - pattern: "*.size" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@limrp" From 3459a6521c4169adaa9a602c3e99ae8303e03edd Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 4 Jun 2024 15:50:36 +0100 Subject: [PATCH 65/65] Update environment.yml --- modules/nf-core/samtools/cramsize/environment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nf-core/samtools/cramsize/environment.yml b/modules/nf-core/samtools/cramsize/environment.yml index a7ea32d9cb2..26948ded9ee 100644 --- a/modules/nf-core/samtools/cramsize/environment.yml +++ b/modules/nf-core/samtools/cramsize/environment.yml @@ -1,8 +1,10 @@ name: samtools_cramsize + channels: - conda-forge - bioconda - defaults + dependencies: - bioconda::htslib=1.20 - bioconda::samtools=1.20