diff --git a/CHANGELOG.md b/CHANGELOG.md index 869875bf7..4576aa559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Dependencies` +- [#720](https://github.com/nf-core/ampliseq/pull/720) - Updated nf-core modules, DADA2, and Phyloseq + +| software | previously | now | +| -------- | ---------- | ------ | +| cutadapt | 3.4 | 4.6 | +| DADA2 | 1.28.0 | 1.30.0 | +| Phyloseq | 1.44.0 | 1.46.0 | + ### `Removed` - [#710](https://github.com/nf-core/ampliseq/pull/710) - Removed Phyloref from DADA2 reference option because it's part of PR2 5.0.0 diff --git a/modules.json b/modules.json index 2cc854460..52d78e82c 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "cutadapt": { "branch": "master", - "git_sha": "0efbaeb95c58da5a1096c99b5e919bc0c99cc952", + "git_sha": "6618151ed69274863dc6fe6d2920afa90abaca1f", "installed_by": ["modules"] }, "epang/place": { @@ -62,7 +62,7 @@ }, "kraken2/kraken2": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "653218e79ffa76fde20319e9062f8b8da5cf7555", "installed_by": ["modules"], "patch": "modules/nf-core/kraken2/kraken2/kraken2-kraken2.diff" }, @@ -84,22 +84,22 @@ }, "untar": { "branch": "master", - "git_sha": "d0b4fc03af52a1cc8c6fb4493b921b57352b1dd8", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", "installed_by": ["modules"] }, "vsearch/cluster": { "branch": "master", - "git_sha": "89945ea085b94d3413013b6c82e2633b5184f24d", + "git_sha": "d97b335eb448073c1b680710303c02a55f40c77c", "installed_by": ["modules"] }, "vsearch/sintax": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": ["modules"] }, "vsearch/usearchglobal": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": ["modules"] } } diff --git a/modules/local/cutadapt_summary_merge.nf b/modules/local/cutadapt_summary_merge.nf index 2b25fb422..d3ce87582 100644 --- a/modules/local/cutadapt_summary_merge.nf +++ b/modules/local/cutadapt_summary_merge.nf @@ -2,10 +2,10 @@ process CUTADAPT_SUMMARY_MERGE { tag "${files}" label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: val(action) diff --git a/modules/local/dada2_addspecies.nf b/modules/local/dada2_addspecies.nf index 6f5282642..8976648fe 100644 --- a/modules/local/dada2_addspecies.nf +++ b/modules/local/dada2_addspecies.nf @@ -3,10 +3,10 @@ process DADA2_ADDSPECIES { label 'process_high' label 'single_cpu' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: path(taxtable) diff --git a/modules/local/dada2_denoising.nf b/modules/local/dada2_denoising.nf index 2cf7fa1bd..637bd8981 100644 --- a/modules/local/dada2_denoising.nf +++ b/modules/local/dada2_denoising.nf @@ -3,10 +3,10 @@ process DADA2_DENOISING { label 'process_medium' label 'process_long' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path("filtered/*"), path(errormodel) diff --git a/modules/local/dada2_err.nf b/modules/local/dada2_err.nf index 0c9357e96..9f463292b 100644 --- a/modules/local/dada2_err.nf +++ b/modules/local/dada2_err.nf @@ -2,10 +2,10 @@ process DADA2_ERR { tag "$meta.run" label 'process_medium' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(reads) diff --git a/modules/local/dada2_filtntrim.nf b/modules/local/dada2_filtntrim.nf index 9aca59129..a2a015c20 100644 --- a/modules/local/dada2_filtntrim.nf +++ b/modules/local/dada2_filtntrim.nf @@ -2,10 +2,10 @@ process DADA2_FILTNTRIM { tag "$meta.id" label 'process_medium' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(reads), val(trunclenf), val(trunclenr) diff --git a/modules/local/dada2_quality.nf b/modules/local/dada2_quality.nf index ff91c9958..5401497a3 100644 --- a/modules/local/dada2_quality.nf +++ b/modules/local/dada2_quality.nf @@ -2,10 +2,10 @@ process DADA2_QUALITY { tag "$meta" label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(reads) diff --git a/modules/local/dada2_rmchimera.nf b/modules/local/dada2_rmchimera.nf index 4e14ce1cb..0ba546b73 100644 --- a/modules/local/dada2_rmchimera.nf +++ b/modules/local/dada2_rmchimera.nf @@ -2,10 +2,10 @@ process DADA2_RMCHIMERA { tag "$meta.run" label 'process_medium' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(seqtab) diff --git a/modules/local/dada2_stats.nf b/modules/local/dada2_stats.nf index f4112046c..eb36195bc 100644 --- a/modules/local/dada2_stats.nf +++ b/modules/local/dada2_stats.nf @@ -2,10 +2,10 @@ process DADA2_STATS { tag "$meta.run" label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path("filter_and_trim_files/*"), path(denoised), path(mergers), path(seqtab_nochim) diff --git a/modules/local/dada2_taxonomy.nf b/modules/local/dada2_taxonomy.nf index 4be292d27..0a2c28f66 100644 --- a/modules/local/dada2_taxonomy.nf +++ b/modules/local/dada2_taxonomy.nf @@ -2,10 +2,10 @@ process DADA2_TAXONOMY { tag "${fasta},${database}" label 'process_high' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: path(fasta) diff --git a/modules/local/format_pplacetax.nf b/modules/local/format_pplacetax.nf index 1861a3657..92930b19d 100644 --- a/modules/local/format_pplacetax.nf +++ b/modules/local/format_pplacetax.nf @@ -2,10 +2,10 @@ process FORMAT_PPLACETAX { tag "${tax.baseName}" label 'process_high' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(tax) diff --git a/modules/local/merge_stats.nf b/modules/local/merge_stats.nf index b2e2cb8cb..d9343f5ac 100644 --- a/modules/local/merge_stats.nf +++ b/modules/local/merge_stats.nf @@ -1,10 +1,10 @@ process MERGE_STATS { label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: path('file1.tsv') diff --git a/modules/local/metadata_all.nf b/modules/local/metadata_all.nf index 8993d1ca3..770f994c7 100644 --- a/modules/local/metadata_all.nf +++ b/modules/local/metadata_all.nf @@ -2,10 +2,10 @@ process METADATA_ALL { tag "$metadata" label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: path(metadata) diff --git a/modules/local/metadata_pairwise.nf b/modules/local/metadata_pairwise.nf index 6dd9ab116..a4aa7e067 100644 --- a/modules/local/metadata_pairwise.nf +++ b/modules/local/metadata_pairwise.nf @@ -2,10 +2,10 @@ process METADATA_PAIRWISE { tag "$metadata" label 'process_low' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: path(metadata) diff --git a/modules/local/novaseq_err.nf b/modules/local/novaseq_err.nf index 991fa803c..30e113fd9 100644 --- a/modules/local/novaseq_err.nf +++ b/modules/local/novaseq_err.nf @@ -2,10 +2,10 @@ process NOVASEQ_ERR { tag "$meta.run" label 'process_medium' - conda "bioconda::bioconductor-dada2=1.28.0" + conda "bioconda::bioconductor-dada2=1.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.28.0--r43hf17093f_0' : - 'biocontainers/bioconductor-dada2:1.28.0--r43hf17093f_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-dada2:1.30.0--r43hf17093f_0' : + 'biocontainers/bioconductor-dada2:1.30.0--r43hf17093f_0' }" input: tuple val(meta), path(errormodel) diff --git a/modules/local/phyloseq.nf b/modules/local/phyloseq.nf index 946c91fa0..f2f5430a8 100644 --- a/modules/local/phyloseq.nf +++ b/modules/local/phyloseq.nf @@ -2,10 +2,10 @@ process PHYLOSEQ { tag "$prefix" label 'process_low' - conda "bioconda::bioconductor-phyloseq=1.44.0" + conda "bioconda::bioconductor-phyloseq=1.46.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bioconductor-phyloseq:1.44.0--r43hdfd78af_0' : - 'biocontainers/bioconductor-phyloseq:1.44.0--r43hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bioconductor-phyloseq:1.46.0--r43hdfd78af_0' : + 'biocontainers/bioconductor-phyloseq:1.46.0--r43hdfd78af_0' }" input: tuple val(prefix), path(tax_tsv), path(otu_tsv) diff --git a/modules/nf-core/cutadapt/environment.yml b/modules/nf-core/cutadapt/environment.yml new file mode 100644 index 000000000..288ea6f06 --- /dev/null +++ b/modules/nf-core/cutadapt/environment.yml @@ -0,0 +1,7 @@ +name: cutadapt +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::cutadapt=4.6 diff --git a/modules/nf-core/cutadapt/main.nf b/modules/nf-core/cutadapt/main.nf index 60bd648aa..3d3e57168 100644 --- a/modules/nf-core/cutadapt/main.nf +++ b/modules/nf-core/cutadapt/main.nf @@ -2,10 +2,10 @@ process CUTADAPT { tag "$meta.id" label 'process_medium' - conda "bioconda::cutadapt=3.4" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cutadapt:3.4--py39h38f01e4_1' : - 'biocontainers/cutadapt:3.4--py39h38f01e4_1' }" + 'https://depot.galaxyproject.org/singularity/cutadapt:4.6--py39hf95cd2a_1' : + 'biocontainers/cutadapt:4.6--py39hf95cd2a_1' }" input: tuple val(meta), path(reads) @@ -24,6 +24,7 @@ process CUTADAPT { def trimmed = meta.single_end ? "-o ${prefix}.trim.fastq.gz" : "-o ${prefix}_1.trim.fastq.gz -p ${prefix}_2.trim.fastq.gz" """ cutadapt \\ + -Z \\ --cores $task.cpus \\ $args \\ $trimmed \\ diff --git a/modules/nf-core/cutadapt/meta.yml b/modules/nf-core/cutadapt/meta.yml index 768bac3a4..5ecfe27a9 100644 --- a/modules/nf-core/cutadapt/meta.yml +++ b/modules/nf-core/cutadapt/meta.yml @@ -44,3 +44,6 @@ output: authors: - "@drpatelh" - "@kevinmenden" +maintainers: + - "@drpatelh" + - "@kevinmenden" diff --git a/modules/nf-core/cutadapt/tests/main.nf.test b/modules/nf-core/cutadapt/tests/main.nf.test new file mode 100644 index 000000000..b7ea6ef9f --- /dev/null +++ b/modules/nf-core/cutadapt/tests/main.nf.test @@ -0,0 +1,69 @@ +nextflow_process { + + name "Test Process CUTADAPT" + script "../main.nf" + process "CUTADAPT" + tag "modules" + tag "modules_nfcore" + tag "cutadapt" + + test("sarscov2 Illumina single end [fastq]") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id: 'test', single_end:true ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert process.out.reads != null }, + { assert process.out.reads.get(0).get(1) ==~ ".*.trim.fastq.gz" }, + { assert snapshot(process.out.versions).match("versions_single_end") }, + { assert snapshot(path(process.out.reads.get(0).get(1)).linesGzip[0]).match() } + ) + } + } + + test("sarscov2 Illumina paired-end [fastq]") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id: 'test', single_end:false ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert process.out.reads != null }, + { assert process.out.reads.get(0).get(1).get(0) ==~ ".*.1.trim.fastq.gz" }, + { assert process.out.reads.get(0).get(1).get(1) ==~ ".*.2.trim.fastq.gz" }, + { assert snapshot(path(process.out.reads.get(0).get(1).get(1)).linesGzip[0]).match() }, + { assert snapshot(process.out.versions).match("versions_paired_end") } + ) + } + } +} diff --git a/modules/nf-core/cutadapt/tests/main.nf.test.snap b/modules/nf-core/cutadapt/tests/main.nf.test.snap new file mode 100644 index 000000000..3df7389ee --- /dev/null +++ b/modules/nf-core/cutadapt/tests/main.nf.test.snap @@ -0,0 +1,46 @@ +{ + "sarscov2 Illumina single end [fastq]": { + "content": [ + "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T10:27:15.235936866" + }, + "sarscov2 Illumina paired-end [fastq]": { + "content": [ + "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/2" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T10:27:24.38468252" + }, + "versions_paired_end": { + "content": [ + [ + "versions.yml:md5,bc9892c68bfa7084ec5dbffbb9e8322f" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T10:27:24.38799189" + }, + "versions_single_end": { + "content": [ + [ + "versions.yml:md5,bc9892c68bfa7084ec5dbffbb9e8322f" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T10:27:15.219246449" + } +} \ No newline at end of file diff --git a/modules/nf-core/cutadapt/tests/nextflow.config b/modules/nf-core/cutadapt/tests/nextflow.config new file mode 100644 index 000000000..6c3b42530 --- /dev/null +++ b/modules/nf-core/cutadapt/tests/nextflow.config @@ -0,0 +1,7 @@ +process { + + withName: CUTADAPT { + ext.args = '-q 25' + } + +} diff --git a/modules/nf-core/cutadapt/tests/tags.yml b/modules/nf-core/cutadapt/tests/tags.yml new file mode 100644 index 000000000..f64f99757 --- /dev/null +++ b/modules/nf-core/cutadapt/tests/tags.yml @@ -0,0 +1,2 @@ +cutadapt: + - modules/nf-core/cutadapt/** diff --git a/modules/nf-core/kraken2/kraken2/environment.yml b/modules/nf-core/kraken2/kraken2/environment.yml new file mode 100644 index 000000000..63be419bd --- /dev/null +++ b/modules/nf-core/kraken2/kraken2/environment.yml @@ -0,0 +1,8 @@ +name: kraken2_kraken2 +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::kraken2=2.1.2 + - conda-forge::pigz=2.6 diff --git a/modules/nf-core/kraken2/kraken2/main.nf b/modules/nf-core/kraken2/kraken2/main.nf index 1afdcfbe2..1c97f9bab 100644 --- a/modules/nf-core/kraken2/kraken2/main.nf +++ b/modules/nf-core/kraken2/kraken2/main.nf @@ -2,7 +2,7 @@ process KRAKEN2_KRAKEN2 { tag "$meta.id" label 'process_high' - conda "bioconda::kraken2=2.1.2 conda-forge::pigz=2.6" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-5799ab18b5fc681e75923b2450abaa969907ec98:87fc08d11968d081f3e8a37131c1f1f6715b6542-0' : 'biocontainers/mulled-v2-5799ab18b5fc681e75923b2450abaa969907ec98:87fc08d11968d081f3e8a37131c1f1f6715b6542-0' }" @@ -54,4 +54,31 @@ process KRAKEN2_KRAKEN2 { pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def paired = meta.single_end ? "" : "--paired" + def classified = meta.single_end ? "${prefix}.classified.fastq.gz" : "${prefix}.classified_1.fastq.gz ${prefix}.classified_2.fastq.gz" + def unclassified = meta.single_end ? "${prefix}.unclassified.fastq.gz" : "${prefix}.unclassified_1.fastq.gz ${prefix}.unclassified_2.fastq.gz" + def readclassification_option = save_reads_assignment ? "--output ${prefix}.kraken2.classifiedreads.txt" : "--output /dev/null" + def compress_reads_command = save_output_fastqs ? "pigz -p $task.cpus *.fastq" : "" + + """ + touch ${prefix}.kraken2.report.txt + if [ "$save_output_fastqs" == "true" ]; then + touch $classified + touch $unclassified + fi + if [ "$save_reads_assignment" == "true" ]; then + touch ${prefix}.kraken2.classifiedreads.txt + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kraken2: \$(echo \$(kraken2 --version 2>&1) | sed 's/^.*Kraken version //; s/ .*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ + } diff --git a/modules/nf-core/kraken2/kraken2/meta.yml b/modules/nf-core/kraken2/kraken2/meta.yml index 4721f45bc..7909ffe7e 100644 --- a/modules/nf-core/kraken2/kraken2/meta.yml +++ b/modules/nf-core/kraken2/kraken2/meta.yml @@ -73,3 +73,6 @@ output: authors: - "@joseespinosa" - "@drpatelh" +maintainers: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/kraken2/kraken2/tests/main.nf.test b/modules/nf-core/kraken2/kraken2/tests/main.nf.test new file mode 100644 index 000000000..4c5130217 --- /dev/null +++ b/modules/nf-core/kraken2/kraken2/tests/main.nf.test @@ -0,0 +1,143 @@ +nextflow_process { + name "Test Process KRAKEN2_KRAKEN2" + script "../main.nf" + process "KRAKEN2_KRAKEN2" + tag "modules" + tag "modules_nfcore" + tag "untar" + tag "kraken2" + tag "kraken2/kraken2" + + setup { + run("UNTAR") { + script "modules/nf-core/untar/main.nf" + process { + """ + input[0] = Channel.of([ + [], + file( + params.test_data['sarscov2']['genome']['kraken2_tar_gz'], + checkIfExists: true + ) + ]) + """ + } + } + } + + test("sarscov2 illumina single end [fastq]") { + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ file( + params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], + checkIfExists: true + )] + ] + input[1] = UNTAR.out.untar.map{ it[1] } + input[2] = true + input[3] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.report, + process.out.versions, + ).match() + }, + { assert process.out.classified_reads_fastq.get(0).get(1) ==~ ".*/test.classified.fastq.gz" }, + { assert process.out.unclassified_reads_fastq.get(0).get(1) ==~ ".*/test.unclassified.fastq.gz" }, + ) + } + } + + test("sarscov2 illumina paired end [fastq]") { + when { + params { + outdir = "$outputDir" + } + + process { + """ + input[0] = [ + [ 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 + ) + + ] + ] + input[1] = UNTAR.out.untar.map{ it[1] } + input[2] = true + input[3] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.report, + process.out.versions, + ).match() + }, + { assert process.out.classified_reads_fastq.get(0).get(1).get(0) + ==~ ".*/test.classified_1.fastq.gz" }, + { assert process.out.classified_reads_fastq.get(0).get(1).get(1) + ==~ ".*/test.classified_2.fastq.gz" }, + { assert process.out.unclassified_reads_fastq.get(0).get(1).get(0) + ==~ ".*/test.unclassified_1.fastq.gz" }, + { assert process.out.unclassified_reads_fastq.get(0).get(1).get(1) + ==~ ".*/test.unclassified_2.fastq.gz" }, + ) + } + } + + test("sarscov2 illumina single end [fastq] + save_reads_assignment") { + when { + params { + outdir = "$outputDir" + } + + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ file( + params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], + checkIfExists: true + )] + ] + input[1] = UNTAR.out.untar.map{ it[1] } + input[2] = false + input[3] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.report, + process.out.classified_reads_assignment, + process.out.versions, + ).match() + }, + ) + } + } +} diff --git a/modules/nf-core/kraken2/kraken2/tests/main.nf.test.snap b/modules/nf-core/kraken2/kraken2/tests/main.nf.test.snap new file mode 100644 index 000000000..c1bdd0c61 --- /dev/null +++ b/modules/nf-core/kraken2/kraken2/tests/main.nf.test.snap @@ -0,0 +1,62 @@ +{ + "sarscov2 illumina single end [fastq]": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.kraken2.report.txt:md5,4227755fe40478b8d7dc8634b489761e" + ] + ], + [ + "versions.yml:md5,bcb3e2520685846df02bb27cc6b1794b" + ] + ], + "timestamp": "2023-10-25T09:01:29.775797" + }, + "sarscov2 illumina paired end [fastq]": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.kraken2.report.txt:md5,4227755fe40478b8d7dc8634b489761e" + ] + ], + [ + "versions.yml:md5,bcb3e2520685846df02bb27cc6b1794b" + ] + ], + "timestamp": "2023-10-25T09:01:37.025389" + }, + "sarscov2 illumina single end [fastq] + save_reads_assignment": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.kraken2.report.txt:md5,4227755fe40478b8d7dc8634b489761e" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.kraken2.classifiedreads.txt:md5,e7a90531f0d8d777316515c36fe4cae0" + ] + ], + [ + "versions.yml:md5,bcb3e2520685846df02bb27cc6b1794b" + ] + ], + "timestamp": "2023-10-25T09:01:45.775262" + } +} \ No newline at end of file diff --git a/modules/nf-core/kraken2/kraken2/tests/tags.yml b/modules/nf-core/kraken2/kraken2/tests/tags.yml new file mode 100644 index 000000000..9ebfd7ab6 --- /dev/null +++ b/modules/nf-core/kraken2/kraken2/tests/tags.yml @@ -0,0 +1,3 @@ +kraken2/kraken2: + - modules/nf-core/kraken2/kraken2/** + - modules/nf-core/untar/** diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml new file mode 100644 index 000000000..0c9cbb101 --- /dev/null +++ b/modules/nf-core/untar/environment.yml @@ -0,0 +1,11 @@ +name: untar + +channels: + - conda-forge + - bioconda + - defaults + +dependencies: + - conda-forge::grep=3.11 + - conda-forge::sed=4.7 + - conda-forge::tar=1.34 diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 61461c391..8a75bb957 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 conda-forge::grep=3.11 conda-forge::tar=1.34" + conda "${moduleDir}/environment.yml" 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/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index db241a6e5..a9a2110f5 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -39,3 +39,8 @@ authors: - "@drpatelh" - "@matthdsm" - "@jfy133" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@matthdsm" + - "@jfy133" diff --git a/modules/nf-core/untar/tests/main.nf.test b/modules/nf-core/untar/tests/main.nf.test new file mode 100644 index 000000000..2a7c97bf8 --- /dev/null +++ b/modules/nf-core/untar/tests/main.nf.test @@ -0,0 +1,47 @@ +nextflow_process { + + name "Test Process UNTAR" + script "../main.nf" + process "UNTAR" + tag "modules" + tag "modules_nfcore" + tag "untar" + test("test_untar") { + + when { + process { + """ + input[0] = [ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/kraken2.tar.gz', checkIfExists: true) ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.untar).match("test_untar") }, + ) + } + + } + + test("test_untar_onlyfiles") { + + when { + process { + """ + input[0] = [ [], file(params.modules_testdata_base_path + 'generic/tar/hello.tar.gz', checkIfExists: true) ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.untar).match("test_untar_onlyfiles") }, + ) + } + + } + +} diff --git a/modules/nf-core/untar/tests/main.nf.test.snap b/modules/nf-core/untar/tests/main.nf.test.snap new file mode 100644 index 000000000..64550292f --- /dev/null +++ b/modules/nf-core/untar/tests/main.nf.test.snap @@ -0,0 +1,42 @@ +{ + "test_untar_onlyfiles": { + "content": [ + [ + [ + [ + + ], + [ + "hello.txt:md5,e59ff97941044f85df5297e1c302d260" + ] + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:49:41.320643" + }, + "test_untar": { + "content": [ + [ + [ + [ + + ], + [ + "hash.k2d:md5,8b8598468f54a7087c203ad0190555d9", + "opts.k2d:md5,a033d00cf6759407010b21700938f543", + "taxo.k2d:md5,094d5891cdccf2f1468088855c214b2c" + ] + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:49:33.795172" + } +} \ No newline at end of file diff --git a/modules/nf-core/untar/tests/tags.yml b/modules/nf-core/untar/tests/tags.yml new file mode 100644 index 000000000..feb6f15c0 --- /dev/null +++ b/modules/nf-core/untar/tests/tags.yml @@ -0,0 +1,2 @@ +untar: + - modules/nf-core/untar/** diff --git a/modules/nf-core/vsearch/cluster/environment.yml b/modules/nf-core/vsearch/cluster/environment.yml new file mode 100644 index 000000000..965a7fab4 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/environment.yml @@ -0,0 +1,8 @@ +name: vsearch_cluster +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::vsearch=2.21.1 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/vsearch/cluster/main.nf b/modules/nf-core/vsearch/cluster/main.nf index 922207aa1..23b838c66 100644 --- a/modules/nf-core/vsearch/cluster/main.nf +++ b/modules/nf-core/vsearch/cluster/main.nf @@ -2,7 +2,7 @@ process VSEARCH_CLUSTER { tag "$meta.id" label 'process_low' - conda "bioconda::vsearch=2.21.1 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-53dae514294fca7b44842b784ed85a5303ac2d80:7b3365d778c690ca79bc85aaaeb86bb39a2dec69-0': 'biocontainers/mulled-v2-53dae514294fca7b44842b784ed85a5303ac2d80:7b3365d778c690ca79bc85aaaeb86bb39a2dec69-0' }" diff --git a/modules/nf-core/vsearch/cluster/meta.yml b/modules/nf-core/vsearch/cluster/meta.yml index 469eb8cdb..60d64347c 100644 --- a/modules/nf-core/vsearch/cluster/meta.yml +++ b/modules/nf-core/vsearch/cluster/meta.yml @@ -12,7 +12,6 @@ tools: tool_dev_url: https://github.com/torognes/vsearch doi: 10.7717/peerj.2584 licence: ["GPL v3-or-later OR BSD-2-clause"] - input: - meta: type: map @@ -21,7 +20,6 @@ input: type: file description: Sequences to cluster in FASTA format pattern: "*.{fasta,fa,fasta.gz,fa.gz}" - output: - meta: type: map @@ -64,6 +62,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@mirpedrol" +maintainers: + - "@mirpedrol" diff --git a/modules/nf-core/vsearch/cluster/tests/main.nf.test b/modules/nf-core/vsearch/cluster/tests/main.nf.test new file mode 100644 index 000000000..1a3767933 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/main.nf.test @@ -0,0 +1,132 @@ +nextflow_process { + + name "Test Process VSEARCH_CLUSTER" + script "../main.nf" + process "VSEARCH_CLUSTER" + + tag "modules" + tag "modules_nfcore" + tag "vsearch" + tag "vsearch/cluster" + + test("sarscov2 - fastq - cluster fast") { + + config './nextflow_fast.config' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq - cluster size") { + + config './nextflow_size.config' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq - cluster smallmem") { + + config './nextflow_smallmem.config' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq - cluster unoise") { + + config './nextflow_unoise.config' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq - cluster userout") { + + config './nextflow_userout.config' + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/vsearch/cluster/tests/main.nf.test.snap b/modules/nf-core/vsearch/cluster/tests/main.nf.test.snap new file mode 100644 index 000000000..cb91f4edd --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/main.nf.test.snap @@ -0,0 +1,487 @@ +{ + "sarscov2 - fastq - cluster smallmem": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,f8a6497f29c55465df843da5c5af39ca" + ] + ], + "9": [ + + ], + "aln": [ + + ], + "bam": [ + + ], + "biom": [ + + ], + "blast": [ + + ], + "centroids": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,f8a6497f29c55465df843da5c5af39ca" + ] + ], + "clusters": [ + + ], + "mothur": [ + + ], + "msa": [ + + ], + "otu": [ + + ], + "out": [ + + ], + "profile": [ + + ], + "uc": [ + + ], + "versions": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ] + } + ], + "timestamp": "2023-12-06T14:35:18.210433" + }, + "sarscov2 - fastq - cluster userout": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.tsv.gz:md5,fb3256dd2327bf3dd4b9695394f5d5a8" + ] + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + + ], + "aln": [ + + ], + "bam": [ + + ], + "biom": [ + + ], + "blast": [ + + ], + "centroids": [ + + ], + "clusters": [ + + ], + "mothur": [ + + ], + "msa": [ + + ], + "otu": [ + + ], + "out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.tsv.gz:md5,fb3256dd2327bf3dd4b9695394f5d5a8" + ] + ], + "profile": [ + + ], + "uc": [ + + ], + "versions": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ] + } + ], + "timestamp": "2023-12-06T14:35:27.471744" + }, + "sarscov2 - fastq - cluster size": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,4359e9c250a63a887feb4e8f50555cfd" + ] + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + + ], + "aln": [ + + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,4359e9c250a63a887feb4e8f50555cfd" + ] + ], + "biom": [ + + ], + "blast": [ + + ], + "centroids": [ + + ], + "clusters": [ + + ], + "mothur": [ + + ], + "msa": [ + + ], + "otu": [ + + ], + "out": [ + + ], + "profile": [ + + ], + "uc": [ + + ], + "versions": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ] + } + ], + "timestamp": "2023-12-06T14:35:13.922868" + }, + "sarscov2 - fastq - cluster unoise": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,e84ed4c7d22e1b8a05400c3751c29efc" + ] + ], + "9": [ + + ], + "aln": [ + + ], + "bam": [ + + ], + "biom": [ + + ], + "blast": [ + + ], + "centroids": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,e84ed4c7d22e1b8a05400c3751c29efc" + ] + ], + "clusters": [ + + ], + "mothur": [ + + ], + "msa": [ + + ], + "otu": [ + + ], + "out": [ + + ], + "profile": [ + + ], + "uc": [ + + ], + "versions": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ] + } + ], + "timestamp": "2023-12-06T14:35:22.849537" + }, + "sarscov2 - fastq - cluster fast": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,7ce841a7bba1c14ced4e1322d73a2d1f" + ] + ], + "9": [ + + ], + "aln": [ + + ], + "bam": [ + + ], + "biom": [ + + ], + "blast": [ + + ], + "centroids": [ + [ + { + "id": "test", + "single_end": false + }, + "test.centroids.fasta.gz:md5,7ce841a7bba1c14ced4e1322d73a2d1f" + ] + ], + "clusters": [ + + ], + "mothur": [ + + ], + "msa": [ + + ], + "otu": [ + + ], + "out": [ + + ], + "profile": [ + + ], + "uc": [ + + ], + "versions": [ + "versions.yml:md5,c9f7c3c0952e510ae64bf71dc85c3c0f" + ] + } + ], + "timestamp": "2023-12-06T14:35:07.719346" + } +} \ No newline at end of file diff --git a/modules/nf-core/vsearch/cluster/tests/nextflow_fast.config b/modules/nf-core/vsearch/cluster/tests/nextflow_fast.config new file mode 100644 index 000000000..df76a0609 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/nextflow_fast.config @@ -0,0 +1,7 @@ +process { + + ext.args = '--id 0.8' + ext.args2 = "--cluster_fast" + ext.args3 = "--centroids" + +} diff --git a/modules/nf-core/vsearch/cluster/tests/nextflow_size.config b/modules/nf-core/vsearch/cluster/tests/nextflow_size.config new file mode 100644 index 000000000..b650043e5 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/nextflow_size.config @@ -0,0 +1,7 @@ +process { + + ext.args = '--id 0.8' + ext.args2 = "--cluster_size" + ext.args3 = "--samout" // Test also sam to bam conversion + +} diff --git a/modules/nf-core/vsearch/cluster/tests/nextflow_smallmem.config b/modules/nf-core/vsearch/cluster/tests/nextflow_smallmem.config new file mode 100644 index 000000000..5e4efb8bd --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/nextflow_smallmem.config @@ -0,0 +1,7 @@ +process { + + ext.args = '--id 0.8 --usersort' + ext.args2 = "--cluster_smallmem" + ext.args3 = "--centroids" + +} diff --git a/modules/nf-core/vsearch/cluster/tests/nextflow_unoise.config b/modules/nf-core/vsearch/cluster/tests/nextflow_unoise.config new file mode 100644 index 000000000..96ccf7256 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/nextflow_unoise.config @@ -0,0 +1,7 @@ +process { + + ext.args = '--id 0.8 --minsize 1' + ext.args2 = "--cluster_unoise" + ext.args3 = "--centroids" + +} diff --git a/modules/nf-core/vsearch/cluster/tests/nextflow_userout.config b/modules/nf-core/vsearch/cluster/tests/nextflow_userout.config new file mode 100644 index 000000000..63b04555d --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/nextflow_userout.config @@ -0,0 +1,7 @@ +process { + + ext.args = '--id 0.8 --userfields query+target+id' + ext.args2 = "--cluster_fast" + ext.args3 = "--userout" + +} diff --git a/modules/nf-core/vsearch/cluster/tests/tags.yml b/modules/nf-core/vsearch/cluster/tests/tags.yml new file mode 100644 index 000000000..7238024f9 --- /dev/null +++ b/modules/nf-core/vsearch/cluster/tests/tags.yml @@ -0,0 +1,2 @@ +vsearch/cluster: + - "modules/nf-core/vsearch/cluster/**" diff --git a/modules/nf-core/vsearch/sintax/environment.yml b/modules/nf-core/vsearch/sintax/environment.yml new file mode 100644 index 000000000..16e8d3004 --- /dev/null +++ b/modules/nf-core/vsearch/sintax/environment.yml @@ -0,0 +1,7 @@ +name: vsearch_sintax +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::vsearch=2.21.1 diff --git a/modules/nf-core/vsearch/sintax/main.nf b/modules/nf-core/vsearch/sintax/main.nf index fb122e1ba..9e6147d11 100644 --- a/modules/nf-core/vsearch/sintax/main.nf +++ b/modules/nf-core/vsearch/sintax/main.nf @@ -2,7 +2,7 @@ process VSEARCH_SINTAX { tag "${meta.id}" label 'process_low' - conda "bioconda::vsearch=2.21.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/vsearch:2.21.1--h95f258a_0': 'biocontainers/vsearch:2.21.1--h95f258a_0' }" diff --git a/modules/nf-core/vsearch/sintax/meta.yml b/modules/nf-core/vsearch/sintax/meta.yml index 61019499d..6346260ef 100644 --- a/modules/nf-core/vsearch/sintax/meta.yml +++ b/modules/nf-core/vsearch/sintax/meta.yml @@ -7,11 +7,9 @@ tools: - "vsearch": description: "VSEARCH is a versatile open-source tool for microbiome analysis, including chimera detection, clustering, dereplication and rereplication, extraction, FASTA/FASTQ/SFF file processing, masking, orienting, pair-wise alignment, restriction site cutting, searching, shuffling, sorting, subsampling, and taxonomic classification of amplicon sequences for metagenomics, genomics, and population genetics. (USEARCH alternative)" homepage: "https://github.com/torognes/vsearch" - tool_dev_url: "https://github.com/torognes/vsearch" doi: "10.7717/peerj.2584" licence: "['GPL v3-or-later OR BSD-2-clause']" - input: - meta: type: map @@ -24,7 +22,6 @@ input: type: file description: Reference database file in FASTA or UDB format pattern: "*" - output: - tsv: type: file @@ -34,6 +31,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@jtangrot" +maintainers: + - "@jtangrot" diff --git a/modules/nf-core/vsearch/usearchglobal/environment.yml b/modules/nf-core/vsearch/usearchglobal/environment.yml new file mode 100644 index 000000000..a4f4e8625 --- /dev/null +++ b/modules/nf-core/vsearch/usearchglobal/environment.yml @@ -0,0 +1,7 @@ +name: vsearch_usearchglobal +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::vsearch=2.21.1 diff --git a/modules/nf-core/vsearch/usearchglobal/main.nf b/modules/nf-core/vsearch/usearchglobal/main.nf index 8a5e8e900..549d9756c 100644 --- a/modules/nf-core/vsearch/usearchglobal/main.nf +++ b/modules/nf-core/vsearch/usearchglobal/main.nf @@ -2,7 +2,7 @@ process VSEARCH_USEARCHGLOBAL { tag "${meta.id}" label 'process_low' - conda "bioconda::vsearch=2.21.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/vsearch:2.21.1--h95f258a_0': 'biocontainers/vsearch:2.21.1--h95f258a_0' }" diff --git a/modules/nf-core/vsearch/usearchglobal/meta.yml b/modules/nf-core/vsearch/usearchglobal/meta.yml index 153d66287..dc953946a 100644 --- a/modules/nf-core/vsearch/usearchglobal/meta.yml +++ b/modules/nf-core/vsearch/usearchglobal/meta.yml @@ -9,11 +9,9 @@ tools: - "vsearch": description: "VSEARCH is a versatile open-source tool for microbiome analysis, including chimera detection, clustering, dereplication and rereplication, extraction, FASTA/FASTQ/SFF file processing, masking, orienting, pair-wise alignment, restriction site cutting, searching, shuffling, sorting, subsampling, and taxonomic classification of amplicon sequences for metagenomics, genomics, and population genetics. (USEARCH alternative)" homepage: "https://github.com/torognes/vsearch" - tool_dev_url: "https://github.com/torognes/vsearch" doi: "10.7717/peerj.2584" licence: "['GPL v3-or-later OR BSD-2-clause']" - input: - meta: type: map @@ -36,7 +34,6 @@ input: - user_columns: type: string description: If using the `userout` option, specify which columns to include in output, with fields separated with `+` (e.g. query+target+id). See USEARCH manual for valid options. For other output options, use an empty string. - output: - aln: type: file @@ -78,6 +75,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@jtangrot" +maintainers: + - "@jtangrot" diff --git a/tests/pipeline/doubleprimers.nf.test.snap b/tests/pipeline/doubleprimers.nf.test.snap index 159fe53fa..cfc3e2920 100644 --- a/tests/pipeline/doubleprimers.nf.test.snap +++ b/tests/pipeline/doubleprimers.nf.test.snap @@ -46,8 +46,8 @@ }, "multiqc": { "content": [ - "multiqc_general_stats.txt:md5,bb1d98b03d4cd5091acfbef93cb38fc4", - "multiqc_cutadapt.txt:md5,0ef33b6eb4d202c34fcfa51a0dffadda" + "multiqc_general_stats.txt:md5,5761ecfac7e4d5dca249af61cd3f3de9", + "multiqc_cutadapt.txt:md5,f022f739ce976fd43677d8889c7ba54b" ], "timestamp": "2023-05-28T21:08:54+0000" } diff --git a/tests/pipeline/iontorrent.nf.test.snap b/tests/pipeline/iontorrent.nf.test.snap index 1a98d70f0..59a228c3b 100644 --- a/tests/pipeline/iontorrent.nf.test.snap +++ b/tests/pipeline/iontorrent.nf.test.snap @@ -13,17 +13,17 @@ }, "overall_summary_tsv": { "content": [ - "overall_summary.tsv:md5,a7d1d93ad079ec0ea2479126dba0a607" + "overall_summary.tsv:md5,713981de66c7cea8f95901b0cb07d2fa" ], "timestamp": "2023-06-20T01:42:35+0000" }, "dada2": { "content": [ "ASV_seqs.fasta:md5,24a69ad674c0b99882d095f6e8afdc03", - "ASV_table.tsv:md5,bd99a0696aa853c0d12c2870ec9fb987", - "DADA2_stats.tsv:md5,f543f7445bbb3941138166615fcf4866", - "DADA2_table.rds:md5,bbbe293f2e03869cbe6b8f6b15ea0ed8", - "DADA2_table.tsv:md5,d92684c4ac57c34341171f1dffccb4d6" + "ASV_table.tsv:md5,444a501243cd14f9234aac10dfde704c", + "DADA2_stats.tsv:md5,259dae4928fe3d4d543d6886fd9da609", + "DADA2_table.rds:md5,e19dfd42ae0d68dbe9006b0c489e74ad", + "DADA2_table.tsv:md5,8f495e41be9eb0f40b9dc448cbc05fc6" ], "timestamp": "2023-06-20T01:42:35+0000" }, @@ -39,8 +39,8 @@ "multiqc": { "content": [ "multiqc_fastqc.txt:md5,6f1a5196d0840a35166b88e5b52bfcdd", - "multiqc_general_stats.txt:md5,8b11410948277038a1ba1a77bb30557f", - "multiqc_cutadapt.txt:md5,9315dca2bd7b5476e54a9ccd8b1f24d5" + "multiqc_general_stats.txt:md5,d01288c9cb7eb23d9d80c76594c5c70a", + "multiqc_cutadapt.txt:md5,fc0fd8f43a96692ad13b0f3ad32c7328" ], "timestamp": "2023-06-20T01:42:35+0000" } diff --git a/tests/pipeline/multiregion.nf.test.snap b/tests/pipeline/multiregion.nf.test.snap index 69133adb3..41ecff601 100644 --- a/tests/pipeline/multiregion.nf.test.snap +++ b/tests/pipeline/multiregion.nf.test.snap @@ -33,7 +33,7 @@ "content": [ "multiqc_fastqc.txt:md5,9468ae91af1a841c5e1369f11f704604", "multiqc_general_stats.txt:md5,92c968d218577d47c2364849c07f7ab6", - "multiqc_cutadapt.txt:md5,d0a09fad9260bc83f85b43a0453d9208" + "multiqc_cutadapt.txt:md5,2ef3cbb36c9461cddf6c3f493d2ddbd4" ], "timestamp": "2024-02-23T00:00:00+0000" } diff --git a/tests/pipeline/pacbio_its.nf.test.snap b/tests/pipeline/pacbio_its.nf.test.snap index c453cd5a7..2ff64e531 100644 --- a/tests/pipeline/pacbio_its.nf.test.snap +++ b/tests/pipeline/pacbio_its.nf.test.snap @@ -61,8 +61,8 @@ "multiqc": { "content": [ "multiqc_fastqc.txt:md5,e646906d896ac4514235ae263566a1a8", - "multiqc_general_stats.txt:md5,07a1affcf11214b293ea804eb560a2fb", - "multiqc_cutadapt.txt:md5,1b3b6833e78db31ab12e5c16b7fa1d73" + "multiqc_general_stats.txt:md5,adb8a2b3b0ac2de5d7d5fbfac81cbdaf", + "multiqc_cutadapt.txt:md5,ae5e5bf06cdbfa4d8305bbcb61c3ba04" ], "timestamp": "2023-06-20T02:07:02+0000" } diff --git a/tests/pipeline/pplace.nf.test.snap b/tests/pipeline/pplace.nf.test.snap index cd9a46118..f025937d6 100644 --- a/tests/pipeline/pplace.nf.test.snap +++ b/tests/pipeline/pplace.nf.test.snap @@ -46,8 +46,8 @@ }, "multiqc": { "content": [ - "multiqc_general_stats.txt:md5,cbe0b448f630111ee18976891354701a", - "multiqc_cutadapt.txt:md5,c640ad4fa88bc31b09fa353e606013a2" + "multiqc_general_stats.txt:md5,1a11b1b81648ddd051b8b729b9f8f63d", + "multiqc_cutadapt.txt:md5,b4409890ffb9c6938433c374b50c380e" ], "timestamp": "2023-06-20T17:24:03+0000" } diff --git a/tests/pipeline/qiimecustom.nf.test.snap b/tests/pipeline/qiimecustom.nf.test.snap index 8c96a24cf..14be695b9 100644 --- a/tests/pipeline/qiimecustom.nf.test.snap +++ b/tests/pipeline/qiimecustom.nf.test.snap @@ -29,8 +29,8 @@ "multiqc": { "content": [ "multiqc_fastqc.txt:md5,147764e40079c3abf97a17cfe2275c52", - "multiqc_general_stats.txt:md5,c6456e36c17e592f12f9a2f9069f24f8", - "multiqc_cutadapt.txt:md5,c640ad4fa88bc31b09fa353e606013a2" + "multiqc_general_stats.txt:md5,5cdf44a2a9fb47a9d847eaa68fb770b7", + "multiqc_cutadapt.txt:md5,b4409890ffb9c6938433c374b50c380e" ], "timestamp": "2023-05-28T21:18:54+0000" } diff --git a/tests/pipeline/reftaxcustom.nf.test.snap b/tests/pipeline/reftaxcustom.nf.test.snap index 161250d14..a67fd6afc 100644 --- a/tests/pipeline/reftaxcustom.nf.test.snap +++ b/tests/pipeline/reftaxcustom.nf.test.snap @@ -47,8 +47,8 @@ "multiqc": { "content": [ "multiqc_fastqc.txt:md5,147764e40079c3abf97a17cfe2275c52", - "multiqc_general_stats.txt:md5,c6456e36c17e592f12f9a2f9069f24f8", - "multiqc_cutadapt.txt:md5,c640ad4fa88bc31b09fa353e606013a2" + "multiqc_general_stats.txt:md5,5cdf44a2a9fb47a9d847eaa68fb770b7", + "multiqc_cutadapt.txt:md5,b4409890ffb9c6938433c374b50c380e" ], "timestamp": "2023-05-28T21:18:54+0000" } diff --git a/tests/pipeline/single.nf.test.snap b/tests/pipeline/single.nf.test.snap index fdbe15dea..adb9289fd 100644 --- a/tests/pipeline/single.nf.test.snap +++ b/tests/pipeline/single.nf.test.snap @@ -13,36 +13,36 @@ }, "overall_summary_tsv": { "content": [ - "overall_summary.tsv:md5,9c37a0292537273537640cdb0dd8fba5" + "overall_summary.tsv:md5,a289a49d3afc66ef334f3c08bd933c25" ], - "timestamp": "2023-08-16T20:35:33+0000" + "timestamp": "2024-03-26T20:35:33+0000" }, "dada2": { "content": [ - "ASV_seqs.fasta:md5,d452ff8b8a306b52ffc6db7e4396c6db", - "ASV_table.tsv:md5,06b93679e1f67a8707d2cc7edf345340", + "ASV_seqs.fasta:md5,3cc6f93eeee721c63beddfbeae8462e9", + "ASV_table.tsv:md5,b7f193b12f02f33f4e03e7bfed8ae5c0", "ref_taxonomy.rdp_18.txt:md5,815c4fce9f3d1de019fb995a43fb66ed", - "DADA2_stats.tsv:md5,d4802595db56db3ae706f1650a774e5c", - "DADA2_table.rds:md5,a8e68947cb81f49a36d243619fe5e2f0", - "DADA2_table.tsv:md5,27c340a79b092d8ebea347f9d9324996" + "DADA2_stats.tsv:md5,ce4ebd6936bd78f337870c04ee671070", + "DADA2_table.rds:md5,ef8051d016bb7a868401528982e9920f", + "DADA2_table.tsv:md5,ac91dd7c8a73df76b8143b60bc646c6c" ], - "timestamp": "2023-08-16T20:35:33+0000" + "timestamp": "2024-03-26T20:35:33+0000" }, "barrnap": { "content": [ - "rrna.arc.gff:md5,7ba69096ac8690260dcb2139ba2d9d82", + "rrna.arc.gff:md5,b29c2ddec54aa1ee2f7607e0dd46bf97", "rrna.bac.gff:md5,15c5fa3b75684c42d60174b77fa87a09", "rrna.euk.gff:md5,1978664ae39a761f9082ae605c026182", "rrna.mito.gff:md5,df19e1b84ba6f691d20c72b397c88abf" ], - "timestamp": "2023-05-28T20:35:33+0000" + "timestamp": "2024-03-26T20:35:33+0000" }, "multiqc": { "content": [ "multiqc_fastqc.txt:md5,ede83a16cac9730e6b961ed051c1de0e", - "multiqc_general_stats.txt:md5,d22c32eed33d046503751b23670db5e4", - "multiqc_cutadapt.txt:md5,4311a83074d94040405937e02773c5a9" + "multiqc_general_stats.txt:md5,a77f38a488f9d1bf0bdf32e3e4b01939", + "multiqc_cutadapt.txt:md5,15ff9f378c1d8fb01fdd40b8010862d4" ], - "timestamp": "2023-08-16T20:35:33+0000" + "timestamp": "2024-03-26T20:35:33+0000" } } diff --git a/tests/pipeline/sintax.nf.test.snap b/tests/pipeline/sintax.nf.test.snap index 002e77d7f..f24b515c4 100644 --- a/tests/pipeline/sintax.nf.test.snap +++ b/tests/pipeline/sintax.nf.test.snap @@ -54,8 +54,8 @@ }, "multiqc": { "content": [ - "multiqc_general_stats.txt:md5,07a1affcf11214b293ea804eb560a2fb", - "multiqc_cutadapt.txt:md5,1b3b6833e78db31ab12e5c16b7fa1d73" + "multiqc_general_stats.txt:md5,adb8a2b3b0ac2de5d7d5fbfac81cbdaf", + "multiqc_cutadapt.txt:md5,ae5e5bf06cdbfa4d8305bbcb61c3ba04" ], "timestamp": "2023-06-20T16:40:18+0000" } diff --git a/tests/pipeline/test.nf.test.snap b/tests/pipeline/test.nf.test.snap index b26665d3e..6bb36087d 100644 --- a/tests/pipeline/test.nf.test.snap +++ b/tests/pipeline/test.nf.test.snap @@ -52,8 +52,8 @@ "multiqc": { "content": [ "multiqc_fastqc.txt:md5,147764e40079c3abf97a17cfe2275c52", - "multiqc_general_stats.txt:md5,c6456e36c17e592f12f9a2f9069f24f8", - "multiqc_cutadapt.txt:md5,c640ad4fa88bc31b09fa353e606013a2" + "multiqc_general_stats.txt:md5,5cdf44a2a9fb47a9d847eaa68fb770b7", + "multiqc_cutadapt.txt:md5,b4409890ffb9c6938433c374b50c380e" ], "timestamp": "2023-05-28T20:55:32+0000" },