From 8dd6297beb764fe3e3ebb4dd966e0ce69ff0eb45 Mon Sep 17 00:00:00 2001 From: Jim Downie <19718667+prototaxites@users.noreply.github.com> Date: Mon, 13 Jan 2025 16:52:07 +0000 Subject: [PATCH 01/19] Update Galah & add nf-tests (#7291) * Update Galah & add nf-tests * Fix linting * Update main.nf * Update inputs in meta.yml * Fix missing snapshot output from broken test --- modules/nf-core/galah/environment.yml | 2 +- modules/nf-core/galah/main.nf | 36 ++-- modules/nf-core/galah/meta.yml | 17 +- modules/nf-core/galah/tests/main.nf.test | 133 +++++++++++++++ modules/nf-core/galah/tests/main.nf.test.snap | 161 ++++++++++++++++++ modules/nf-core/galah/tests/nextflow.config | 8 + modules/nf-core/galah/tests/tags.yml | 2 + tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/galah/main.nf | 49 ------ tests/modules/nf-core/galah/nextflow.config | 13 -- tests/modules/nf-core/galah/test.yml | 30 ---- 11 files changed, 332 insertions(+), 122 deletions(-) create mode 100644 modules/nf-core/galah/tests/main.nf.test create mode 100644 modules/nf-core/galah/tests/main.nf.test.snap create mode 100644 modules/nf-core/galah/tests/nextflow.config create mode 100644 modules/nf-core/galah/tests/tags.yml delete mode 100644 tests/modules/nf-core/galah/main.nf delete mode 100644 tests/modules/nf-core/galah/nextflow.config delete mode 100644 tests/modules/nf-core/galah/test.yml diff --git a/modules/nf-core/galah/environment.yml b/modules/nf-core/galah/environment.yml index 4300473f60e..d3b58cd5b45 100644 --- a/modules/nf-core/galah/environment.yml +++ b/modules/nf-core/galah/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::galah=0.3.1 + - bioconda::galah=0.4.2 diff --git a/modules/nf-core/galah/main.nf b/modules/nf-core/galah/main.nf index b991ad2438b..dd4dfe866f8 100644 --- a/modules/nf-core/galah/main.nf +++ b/modules/nf-core/galah/main.nf @@ -4,16 +4,16 @@ process GALAH { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/galah%3A0.3.1--h031d066_3': - 'biocontainers/galah:0.3.1--h031d066_3' }" + 'https://depot.galaxyproject.org/singularity/galah:0.4.2--h7b50bb2_1': + 'biocontainers/galah:0.4.2--h7b50bb2_1' }" input: tuple val(meta), path(bins), path(qc_table), val(qc_format) output: - tuple val(meta), path("*.tsv") , emit: tsv - tuple val(meta), path("${prefix}-dereplicated/*") , emit: dereplicated_bins - path "versions.yml" , emit: versions + tuple val(meta), path("*.tsv") , emit: tsv + tuple val(meta), path("${prefix}/*"), emit: dereplicated_bins + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -21,21 +21,22 @@ process GALAH { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - def qc_args = (qc_format == "checkm") ? "--checkm-tab-table ${qc_table}" : "--genome-info ${qc_table}" - def qc_input = qc_table ? qc_args : "" - def valid_qc_format = qc_format in ["checkm", "genome_info"] - if( qc_table && !valid_qc_format ) { - error "Invalid qc_format supplied! qc_format should be either 'checkm' or 'genome_info'." + def qc_input = "" + if(qc_format == "checkm2") { + qc_input = "--checkm2-quality-report ${qc_table}" + } else if(qc_format == "checkm") { + qc_input = "--checkm-tab-table ${qc_table}" + } else if(qc_format == "genome-info") { + qc_input = "--genome-info ${qc_table}" } """ - mkdir ${prefix}-dereplicated - galah cluster \\ --threads ${task.cpus} \\ --genome-fasta-files ${bins} \\ ${qc_input} \\ - --output-cluster-definition ${prefix}-dereplicated_bins.tsv \\ - --output-representative-fasta-directory ${prefix}-dereplicated + --output-cluster-definition ${prefix}.tsv \\ + --output-representative-fasta-directory ${prefix} \\ + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -44,12 +45,11 @@ process GALAH { """ stub: - def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" """ - mkdir ${prefix}-dereplicated/ - touch ${prefix}-dereplicated/test.fa - touch ${prefix}-dereplicated_bins.tsv + mkdir ${prefix}/ + touch ${prefix}/test.fa + touch ${prefix}.tsv cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/galah/meta.yml b/modules/nf-core/galah/meta.yml index efadae5822a..a720ea188be 100644 --- a/modules/nf-core/galah/meta.yml +++ b/modules/nf-core/galah/meta.yml @@ -29,17 +29,18 @@ input: - qc_table: type: file description: | - (optional) Either a (CheckM)[https://nf-co.re/modules/checkm_lineagewf] summary TSV containing - information on the completeness and contamination of the input genomes (13 columns), - or a 3-column csv with the header `genome,completeness,contamination`. - In both cases the first column should contain the names of the input genome files, - minus the last file extension - (i.e. if the genome is gzipped, the genome name should retain the .fasta extension). + (optional) A summary TSV from either CheckM [https://nf-co.re/modules/checkm_lineagewf], + CheckM2 [https://nf-co.re/modules/checkm2_predict/], or a CSV + in drep-style format [https://github.com/MrOlm/drep] with three columnns, + `genome,completeness,contamination`. In both cases the first column should contain the + names of the input genome files, minus the last file extension + (i.e. if the genome is gzipped, the genome name should + retain the .fasta extension). pattern: "*.{csv,tsv}" - qc_format: type: string description: Defines the type if input table in `qc_table`, if specified. - pattern: "checkm|genome_info" + pattern: "checkm|checkm2|genome_info" output: - tsv: - meta: @@ -57,7 +58,7 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'test', single_end:false ]` - - ${prefix}-dereplicated/*: + - ${prefix}/*: type: file description: The representative genomes following dereplication by galah. pattern: "*" diff --git a/modules/nf-core/galah/tests/main.nf.test b/modules/nf-core/galah/tests/main.nf.test new file mode 100644 index 00000000000..7862dbb742b --- /dev/null +++ b/modules/nf-core/galah/tests/main.nf.test @@ -0,0 +1,133 @@ +nextflow_process { + + name "Test Process GALAH" + script "../main.nf" + config "./nextflow.config" + process "GALAH" + + tag "modules" + tag "modules_nfcore" + tag "galah" + tag "checkm2/databasedownload" + tag "checkm2/predict" + tag "gawk" + + test("genomes - no qc_table") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), + file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)], + [], + [] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() + } + ) + } + + } + + test("genomes - checkm2 qc_table") { + + setup { + run("CHECKM2_DATABASEDOWNLOAD") { + script "../../checkm2/databasedownload/main.nf" + process { + """ + input[0] = "5571251" + """ + } + } + + run("CHECKM2_PREDICT") { + script "../../checkm2/predict/main.nf" + process { + """ + input[0] = [ + [ id:'test_checkm2' ], // meta map + [file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), + file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)] + ] + input[1] = CHECKM2_DATABASEDOWNLOAD.out.database + """ + } + } + + run("GAWK") { + script "../../gawk/main.nf" + process { + """ + input[0] = CHECKM2_PREDICT.out.checkm2_tsv + input[1] = [] + """ + } + } + } + + when { + process { + """ + ch_checkm_tsv = GAWK.out.output + | map { meta, tsv -> [ [id: "test"], tsv ] } + + input[0] = Channel.of([ + [ id:'test' ], // meta map + [file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), + file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)] + ]) + .combine(ch_checkm_tsv, by: 0) + .map { meta, bins, tsv -> [ meta, bins, tsv, "checkm2" ] } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() + } + ) + } + + } + + test("genomes - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), + file("https://github.com/nf-core/test-datasets/raw/refs/heads/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)], + [], + "checkm2" + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() + } + ) + } + + } + +} diff --git a/modules/nf-core/galah/tests/main.nf.test.snap b/modules/nf-core/galah/tests/main.nf.test.snap new file mode 100644 index 00000000000..62191554814 --- /dev/null +++ b/modules/nf-core/galah/tests/main.nf.test.snap @@ -0,0 +1,161 @@ +{ + "genomes - checkm2 qc_table": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d2f8a621bfa5794467f4fdd759e2bce7" + ] + ], + "1": [ + [ + { + "id": "test" + }, + [ + "GCA_002688505.1_ASM268850v1_genomic.fna.gz:md5,fe93f30498a00395d0aa61ff51346df0", + "GCF_004296495.1_ASM429649v1_genomic.fna.gz:md5,d2b13175217b96d0ed2881ccdb510357" + ] + ] + ], + "2": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ], + "dereplicated_bins": [ + [ + { + "id": "test" + }, + [ + "GCA_002688505.1_ASM268850v1_genomic.fna.gz:md5,fe93f30498a00395d0aa61ff51346df0", + "GCF_004296495.1_ASM429649v1_genomic.fna.gz:md5,d2b13175217b96d0ed2881ccdb510357" + ] + ] + ], + "tsv": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d2f8a621bfa5794467f4fdd759e2bce7" + ] + ], + "versions": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-13T15:03:55.475991521" + }, + "genomes - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ], + "dereplicated_bins": [ + [ + { + "id": "test" + }, + "test.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tsv": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-10T15:57:08.039293521" + }, + "genomes - no qc_table": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d2f8a621bfa5794467f4fdd759e2bce7" + ] + ], + "1": [ + [ + { + "id": "test" + }, + [ + "GCA_002688505.1_ASM268850v1_genomic.fna.gz:md5,fe93f30498a00395d0aa61ff51346df0", + "GCF_004296495.1_ASM429649v1_genomic.fna.gz:md5,d2b13175217b96d0ed2881ccdb510357" + ] + ] + ], + "2": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ], + "dereplicated_bins": [ + [ + { + "id": "test" + }, + [ + "GCA_002688505.1_ASM268850v1_genomic.fna.gz:md5,fe93f30498a00395d0aa61ff51346df0", + "GCF_004296495.1_ASM429649v1_genomic.fna.gz:md5,d2b13175217b96d0ed2881ccdb510357" + ] + ] + ], + "tsv": [ + [ + { + "id": "test" + }, + "test.tsv:md5,d2f8a621bfa5794467f4fdd759e2bce7" + ] + ], + "versions": [ + "versions.yml:md5,6c652af133dffb7ad60778428b1e6f3e" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-10T15:56:46.806177387" + } +} \ No newline at end of file diff --git a/modules/nf-core/galah/tests/nextflow.config b/modules/nf-core/galah/tests/nextflow.config new file mode 100644 index 00000000000..666c1ca1b93 --- /dev/null +++ b/modules/nf-core/galah/tests/nextflow.config @@ -0,0 +1,8 @@ +process { + withName: 'CHECKM2_PREDICT' { + ext.args = "--extension gz" + } + withName: 'GAWK' { + ext.args2 = "'BEGIN {FS = OFS = \"\\t\"} NR == 1 {print \$0} NR > 1 {\$1=\$1\".fna\"; print \$0}'" + } +} diff --git a/modules/nf-core/galah/tests/tags.yml b/modules/nf-core/galah/tests/tags.yml new file mode 100644 index 00000000000..3354d012848 --- /dev/null +++ b/modules/nf-core/galah/tests/tags.yml @@ -0,0 +1,2 @@ +galah: + - "modules/nf-core/galah/**" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 6b2c28ff0c4..1dfa854152f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -155,9 +155,6 @@ fqtk: - modules/nf-core/fqtk/** - modules/nf-core/untar/** - tests/modules/nf-core/fqtk/** -galah: - - modules/nf-core/galah/** - - tests/modules/nf-core/galah/** gangstr: - modules/nf-core/gangstr/** - tests/modules/nf-core/gangstr/** diff --git a/tests/modules/nf-core/galah/main.nf b/tests/modules/nf-core/galah/main.nf deleted file mode 100644 index dba70de9169..00000000000 --- a/tests/modules/nf-core/galah/main.nf +++ /dev/null @@ -1,49 +0,0 @@ - -include { GALAH } from '../../../../modules/nf-core/galah/main.nf' -include { BIOAWK as BIOAWK_CHECKM } from '../../../../modules/nf-core/bioawk/main.nf' -include { BIOAWK as BIOAWK_GENOMEINFO } from '../../../../modules/nf-core/bioawk/main.nf' -include { GUNZIP } from '../../../../modules/nf-core/gunzip/main.nf' - -workflow test_galah { - - input = [ - [ id:'test' ], // meta map - [file("https://github.com/nf-core/test-datasets/raw/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), - file("https://github.com/nf-core/test-datasets/raw/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)], - [], - [] - ] - - GALAH ( input ) - -} - -workflow test_galah_genomeinfo { - - genomeinfo = Channel.fromPath("https://raw.githubusercontent.com/nf-core/test-datasets/magmap/testdata/checkm.lineage_wf.qa_2.tsv", checkIfExists: true) - .map { file -> - [ [id: "genomeinfo"], file ] - } - - BIOAWK_GENOMEINFO(genomeinfo) - - GUNZIP(BIOAWK_GENOMEINFO.out.output) - - ch_genomeinfo = GUNZIP.out.gunzip - .map { meta, tsv -> [tsv] } - - input = Channel.of( - [ - [ id:'test' ], // meta map - [file("https://github.com/nf-core/test-datasets/raw/magmap/testdata/GCA_002688505.1_ASM268850v1_genomic.fna.gz", checkIfExists: true), - file("https://github.com/nf-core/test-datasets/raw/magmap/testdata/GCF_004296495.1_ASM429649v1_genomic.fna.gz", checkIfExists: true)] - ] - ) - .combine(ch_genomeinfo) - .map {meta, bins, qc -> - [ meta, bins, qc, "genome_info" ] - } - - GALAH ( input ) - -} diff --git a/tests/modules/nf-core/galah/nextflow.config b/tests/modules/nf-core/galah/nextflow.config deleted file mode 100644 index 8cae6f9910f..00000000000 --- a/tests/modules/nf-core/galah/nextflow.config +++ /dev/null @@ -1,13 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - // write a horrid awk to munge the checkm_qa tsv to a 3 column csv - // as files are gzipped, genome has to include extension "fna" as galah expects the genome name to be - // the file name minus the last extension - withName: BIOAWK_GENOMEINFO { - ext.args = '\'BEGIN {{FS="\t"; OFS=","}} NR==1 {print "genome","completeness","contamination"} NR>1 {print $1".fna",$6, $7}\'' - ext.prefix = "genome_info.tsv" - } - -} diff --git a/tests/modules/nf-core/galah/test.yml b/tests/modules/nf-core/galah/test.yml deleted file mode 100644 index 47f9e900e96..00000000000 --- a/tests/modules/nf-core/galah/test.yml +++ /dev/null @@ -1,30 +0,0 @@ -- name: galah test_galah - command: nextflow run ./tests/modules/nf-core/galah -entry test_galah -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/galah/nextflow.config - tags: - - galah - files: - - path: output/galah/test-dereplicated/GCA_002688505.1_ASM268850v1_genomic.fna.gz - md5sum: 0747c48f6693a4fb03c7164c2f472326 - - path: output/galah/test-dereplicated/GCF_004296495.1_ASM429649v1_genomic.fna.gz - md5sum: a8e9bac598df938f25e09418ff7214dd - - path: output/galah/test-dereplicated_bins.tsv - md5sum: d2f8a621bfa5794467f4fdd759e2bce7 - - path: output/galah/versions.yml - -- name: galah test_galah_genomeinfo - command: nextflow run ./tests/modules/nf-core/galah -entry test_galah_genomeinfo -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/galah/nextflow.config - tags: - - galah - files: - - path: output/bioawk/genome_info.tsv.gz - - path: output/bioawk/versions.yml - - path: output/galah/test-dereplicated/GCA_002688505.1_ASM268850v1_genomic.fna.gz - md5sum: 0747c48f6693a4fb03c7164c2f472326 - - path: output/galah/test-dereplicated/GCF_004296495.1_ASM429649v1_genomic.fna.gz - md5sum: a8e9bac598df938f25e09418ff7214dd - - path: output/galah/test-dereplicated_bins.tsv - md5sum: d2f8a621bfa5794467f4fdd759e2bce7 - - path: output/galah/versions.yml - - path: output/gunzip/genome_info.tsv - md5sum: f73b9131ab91ddb754725b94e5085955 - - path: output/gunzip/versions.yml From 258399c484a25b880fddc9a8dd35b98f371d31f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Mon, 13 Jan 2025 14:30:02 -0300 Subject: [PATCH 02/19] Added nftests to gseagsea (#7266) * Added nftests to gseagsea * Update input files * fix nftests * Address PR comments * Add seed setting parameter for stabilizing results * Fix linting * Add default random seed * Update datasets paths --------- Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- modules/nf-core/gsea/gsea/main.nf | 92 ++- modules/nf-core/gsea/gsea/meta.yml | 13 +- modules/nf-core/gsea/gsea/tests/main.nf.test | 78 ++ .../nf-core/gsea/gsea/tests/main.nf.test.snap | 692 ++++++++++++++++++ tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/gsea/gsea/main.nf | 53 -- .../modules/nf-core/gsea/gsea/nextflow.config | 18 - tests/modules/nf-core/gsea/gsea/test.yml | 653 ----------------- 8 files changed, 853 insertions(+), 749 deletions(-) create mode 100644 modules/nf-core/gsea/gsea/tests/main.nf.test create mode 100644 modules/nf-core/gsea/gsea/tests/main.nf.test.snap delete mode 100644 tests/modules/nf-core/gsea/gsea/main.nf delete mode 100644 tests/modules/nf-core/gsea/gsea/nextflow.config delete mode 100644 tests/modules/nf-core/gsea/gsea/test.yml diff --git a/modules/nf-core/gsea/gsea/main.nf b/modules/nf-core/gsea/gsea/main.nf index 6a060c46582..2cc542dc989 100644 --- a/modules/nf-core/gsea/gsea/main.nf +++ b/modules/nf-core/gsea/gsea/main.nf @@ -4,8 +4,8 @@ process GSEA_GSEA { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gsea:4.3.2--hdfd78af_0': - 'biocontainers/gsea:4.3.2--hdfd78af_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f4fe28961396eeeaa98484cb4f2db5c79abfdf117700df132312fe5c41bff81/data': + 'community.wave.seqera.io/library/gsea:4.3.2--a7421d7504fd7c81' }" input: tuple val(meta), path(gct), path(cls), path(gene_sets) @@ -26,29 +26,27 @@ process GSEA_GSEA { tuple val(meta), path("*heat_map_1.png") , emit: heatmap tuple val(meta), path("*pvalues_vs_nes_plot.png") , emit: pvalues_vs_nes_plot tuple val(meta), path("*ranked_list_corr_2.png") , emit: ranked_list_corr - tuple val(meta), path("*butterfly_plot.png") , emit: butterfly_plot, optional: true - tuple val(meta), path("*[!gene_set_size|gsea_report|ranked_gene_list]*.tsv"), emit: gene_set_tsv, optional: true - tuple val(meta), path("*[!gsea_report|heat_map_corr_plot|index|pos_snapshot|neg_snapshot]*.html"), emit: gene_set_html, optional: true - tuple val(meta), path("*[!butterfly|enplot|global_es_histogram|gset_rnd_es_dist|heat_map|pvalues_vs_nes_plot|ranked_list_corr]*.png"), emit: gene_set_heatmap, optional: true - tuple val(meta), path("*_snapshot*.html") , emit: snapshot, optional: true - tuple val(meta), path("*enplot*.png") , emit: gene_set_enplot, optional: true - tuple val(meta), path("*gset_rnd_es_dist*.png") , emit: gene_set_dist, optional: true - tuple val(meta), path("*.zip") , emit: archive, optional: true + tuple val(meta), path("*butterfly_plot.png") , emit: butterfly_plot , optional: true + tuple val(meta), path("gene_sets_*.tsv") , emit: gene_set_tsv , optional: true + tuple val(meta), path("gene_sets_*.html") , emit: gene_set_html , optional: true + tuple val(meta), path("gene_sets_*.png") , emit: gene_set_heatmap, optional: true + tuple val(meta), path("*_snapshot*.html") , emit: snapshot , optional: true + tuple val(meta), path("*enplot*.png") , emit: gene_set_enplot , optional: true + tuple val(meta), path("*gset_rnd_es_dist*.png") , emit: gene_set_dist , optional: true + tuple val(meta), path("*.zip") , emit: archive , optional: true path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def VERSION = '4.3.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - - // Remove any trailing dots from prefix when passed as report label, so - // GSEA doesn't produce double-dotted top-level outputs - def rpt_label = prefix.replaceAll('\\.$', '') - + def rpt_label = prefix.replaceAll('\\.$', '') // Remove any trailing dots from prefix when passed as report label, so GSEA doesn't produce double-dotted top-level outputs def chip_command = chip ? "-chip $chip -collapse true" : '' + def VERSION = '4.3.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + if (!(args ==~ /.*-rnd_seed.*/)) {args += " -rnd_seed 10"} + """ # Run GSEA @@ -78,9 +76,71 @@ process GSEA_GSEA { sed -i.bak "s/\$f/${prefix}\${f}/g" *.rpt *.html && rm *.bak done + # Rename files so that they can be properly referenced by the output channels + # Function to rename files based on the given pattern + rename_files() { + local pattern=\$1 + local exclude_patterns=\$2 + local extension=\$3 + + # Find files matching the pattern but not matching the exclusion patterns + find . -type f -name "\$pattern" | while read -r file; do + # Exclude files based on the provided exclusion patterns + if ! echo "\$file" | grep -qE "\$exclude_patterns"; then + # Rename the file by adding the prefix "gene_sets_" + mv "\$file" "\$(dirname "\$file")/gene_sets_\$(basename "\$file")" + fi + done + } + + # Pattern and exclusion for .tsv files + tsv_pattern="*.tsv" + tsv_exclude="gene_set_size|gsea_report|ranked_gene_list" + + # Pattern and exclusion for .html files + html_pattern="*.html" + html_exclude="gsea_report|heat_map_corr_plot|index|pos_snapshot|neg_snapshot" + + # Pattern and exclusion for .png files + png_pattern="*.png" + png_exclude="butterfly|enplot|global_es_histogram|gset_rnd_es_dist|heat_map|pvalues_vs_nes_plot|ranked_list_corr" + + # Rename .tsv files + rename_files "\$tsv_pattern" "\$tsv_exclude" ".tsv" + + # Rename .html files + rename_files "\$html_pattern" "\$html_exclude" ".html" + + # Rename .png files + rename_files "\$png_pattern" "\$png_exclude" ".png" + + cat <<-END_VERSIONS > versions.yml "${task.process}": gsea: $VERSION END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '4.3.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${prefix}.rpt + touch ${prefix}.index.html + touch ${prefix}.heat_map_corr_plot.html + touch ${prefix}.gsea_report_for_${reference}.tsv + touch ${prefix}.gsea_report_for_${reference}.html + touch ${prefix}.gsea_report_for_${target}.tsv + touch ${prefix}.gsea_report_for_${target}.html + touch ${prefix}.ranked_gene_list*.tsv + touch ${prefix}.gene_set_sizes.tsv + touch ${prefix}.global_es_histogram.png + touch ${prefix}.heat_map_1.png + touch ${prefix}.pvalues_vs_nes_plot.png + touch ${prefix}.ranked_list_corr_2.png + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gsea: $VERSION + """ } diff --git a/modules/nf-core/gsea/gsea/meta.yml b/modules/nf-core/gsea/gsea/meta.yml index f3ce403fd04..937d3a6ac4b 100644 --- a/modules/nf-core/gsea/gsea/meta.yml +++ b/modules/nf-core/gsea/gsea/meta.yml @@ -182,31 +182,31 @@ output: type: map description: | Groovy Map containing metadata, at a minimum an id e.g. [ id:'test' ] - - "*[!gene_set_size|gsea_report|ranked_gene_list]*.tsv": + - "gene_sets_*.tsv": type: list description: Where -make_sets is not set to false, TSV files, one file for each gene set, with detail on enrichment for each gene - pattern: "[!gene_set_size|gsea_report|ranked_gene_list]*.tsv" + pattern: "gene_sets_*.tsv" - gene_set_html: - meta: type: map description: | Groovy Map containing metadata, at a minimum an id e.g. [ id:'test' ] - - "*[!gsea_report|heat_map_corr_plot|index|pos_snapshot|neg_snapshot]*.html": + - "gene_sets_*.html": type: list description: Where -make_sets is not set to false, HTML files, one file for each gene set, with detail on enrichment for each gene - pattern: "[!gsea_report|heat_map_corr_plot|index|pos_snapshot|neg_snapshot]*.html" + pattern: "gene_sets_*.html" - gene_set_heatmap: - meta: type: map description: | Groovy Map containing metadata, at a minimum an id e.g. [ id:'test' ] - - "*[!butterfly|enplot|global_es_histogram|gset_rnd_es_dist|heat_map|pvalues_vs_nes_plot|ranked_list_corr]*.png": + - "gene_sets_*.png": type: list description: Where -make_sets is not set to false, PNG-format heatmaps, one file for each gene set, showing expression for each gene - pattern: "[!butterfly|enplot|global_es_histogram|gset_rnd_es_dist|heat_map|pvalues_vs_nes_plot|ranked_list_corr]*.png" + pattern: "gene_sets_*.png" - snapshot: - meta: type: map @@ -255,3 +255,4 @@ authors: - "@pinin4fjords" maintainers: - "@pinin4fjords" + - "@nschcolnicov" diff --git a/modules/nf-core/gsea/gsea/tests/main.nf.test b/modules/nf-core/gsea/gsea/tests/main.nf.test new file mode 100644 index 00000000000..869cf0ca0ef --- /dev/null +++ b/modules/nf-core/gsea/gsea/tests/main.nf.test @@ -0,0 +1,78 @@ +nextflow_process { + + name "Test Process GSEA_GSEA" + script "../main.nf" + process "GSEA_GSEA" + + tag "modules" + tag "modules_nfcore" + tag "gsea_gsea" + tag "gsea" + tag "gsea/gsea" + + test("test") { + + when { + process { + """ + input[0] = [['id':'Condition_genotype_WT_KO', 'variable':'Condition genotype', 'reference':'WT', 'target':'KO', 'blocking':'batch'], file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Condition_treatment_Control_Treated.gct", checkIfExists:true), file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Condition_genotype_WT_KO.cls", checkIfExists:true), file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/mh.all.v2022.1.Mm.symbols.gmt", checkIfExists:true)] + input[1] = ['WT', 'KO'] + input[2] = file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Mus_musculus.anno.feature_metadata.chip", checkIfExists:true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.rpt.collect{ meta,rpt -> file(rpt).name }, //assert unstable file + process.out.index_html.collect{ meta,index_html -> file(index_html).name }, //assert unstable file + process.out.heat_map_corr_plot, + process.out.report_tsvs_ref, + process.out.report_htmls_ref.collect{ meta,report_htmls_ref -> file(report_htmls_ref).name }, //assert unstable file + process.out.report_tsvs_target, + process.out.report_htmls_target.collect{ meta,report_htmls_target -> file(report_htmls_target).name }, //assert unstable file + process.out.ranked_gene_list, + process.out.gene_set_sizes, + process.out.histogram.collect{ meta,histogram -> file(histogram).name }, //assert unstable file + process.out.heatmap.collect{ meta,heatmap -> file(heatmap).name }, //assert unstable file + process.out.pvalues_vs_nes_plot.collect{ meta,pvalues_vs_nes_plot -> file(pvalues_vs_nes_plot).name }, //assert unstable file + process.out.ranked_list_corr.collect{ meta,ranked_list_corr -> file(ranked_list_corr).name }, //assert unstable file + process.out.butterfly_plot.collect{ meta,butterfly_plot -> file(butterfly_plot).name }, //assert unstable file + process.out.gene_set_tsv, + process.out.gene_set_html[0][1].collect{ file(it).name }, //assert unstable file + process.out.gene_set_heatmap[0][1].collect{ file(it).name }, // unstable file and unstable name + process.out.snapshot[0][1].collect{ file(it).name }, //assert unstable file + process.out.gene_set_enplot[0][1].collect{ file(it).name }, // unstable file and unstable name + process.out.gene_set_dist[0][1].collect{ file(it).name }, //assert unstable file + process.out.archive, + process.out.versions + ).match() + } + ) + } + } + + test("stub") { + + options "-stub" + + when { + process { + """ + input[0] = [['id':'Condition_genotype_WT_KO', 'variable':'Condition genotype', 'reference':'WT', 'target':'KO', 'blocking':'batch'], file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Condition_treatment_Control_Treated.gct", checkIfExists:true), file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Condition_genotype_WT_KO.cls", checkIfExists:true), file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/mh.all.v2022.1.Mm.symbols.gmt", checkIfExists:true)] + input[1] = ['WT', 'KO'] + input[2] = file("https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/mus_musculus/gene_set_analysis/Mus_musculus.anno.feature_metadata.chip", checkIfExists:true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + ) + } + } +} diff --git a/modules/nf-core/gsea/gsea/tests/main.nf.test.snap b/modules/nf-core/gsea/gsea/tests/main.nf.test.snap new file mode 100644 index 00000000000..5ed2fe53c03 --- /dev/null +++ b/modules/nf-core/gsea/gsea/tests/main.nf.test.snap @@ -0,0 +1,692 @@ +{ + "test": { + "content": [ + [ + "Condition_genotype_WT_KO.Gsea.rpt" + ], + [ + "Condition_genotype_WT_KOindex.html" + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KOheat_map_corr_plot.html:md5,129c561984542746bc50c3f6db9c7c5e" + ] + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KOgsea_report_for_WT.tsv:md5,674b21a1646cc554d6686ddd67c55dab" + ] + ], + [ + "Condition_genotype_WT_KOgsea_report_for_WT.html" + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KOgsea_report_for_KO.tsv:md5,a4e7de6cf0400befc6e52e379c89c178" + ] + ], + [ + "Condition_genotype_WT_KOgsea_report_for_KO.html" + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KOranked_gene_list_KO_versus_WT.tsv:md5,3ae0171ae04398f350cd3e0f183b9d67" + ] + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KOgene_set_sizes.tsv:md5,61ca77f6b13620a78170c0b9366b8425" + ] + ], + [ + "Condition_genotype_WT_KOglobal_es_histogram.png" + ], + [ + "Condition_genotype_WT_KOheat_map_1.png" + ], + [ + "Condition_genotype_WT_KOpvalues_vs_nes_plot.png" + ], + [ + "Condition_genotype_WT_KOranked_list_corr_2.png" + ], + [ + "Condition_genotype_WT_KObutterfly_plot.png" + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + [ + "gene_sets_Condition_genotype_WT_KOHALLMARK_ADIPOGENESIS.tsv:md5,0e7035e5cbaba4a35d87538da823e05c", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANDROGEN_RESPONSE.tsv:md5,46cee22eddeac12e1d8643e539c6c397", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANGIOGENESIS.tsv:md5,3b4a7f1b28282bf886c9c06d73f61e45", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_JUNCTION.tsv:md5,e9d02a848a5aca73a22a6aef7473defd", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_SURFACE.tsv:md5,84eed15b2aad41077b2a4c5367c05782", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APOPTOSIS.tsv:md5,302c2afbf1b77c6eccd7983fb657007c", + "gene_sets_Condition_genotype_WT_KOHALLMARK_BILE_ACID_METABOLISM.tsv:md5,967e4be880742f32720419fe879b7cc7", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COAGULATION.tsv:md5,6c5bece0e26c1e1b32d9d47b10651baf", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COMPLEMENT.tsv:md5,0d3dfe9073ddbbfa3a6f0c7bcb4c8601", + "gene_sets_Condition_genotype_WT_KOHALLMARK_DNA_REPAIR.tsv:md5,975b4b3905685e73500ec49cd54a2c03", + "gene_sets_Condition_genotype_WT_KOHALLMARK_EPITHELIAL_MESENCHYMAL_TRANSITION.tsv:md5,122c6786499f76f5ec0c6ce604b52aa0", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_EARLY.tsv:md5,7fea0527089b002ccf840223a60ecbf4", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_LATE.tsv:md5,a838545de228235bc4f8830b5777e893", + "gene_sets_Condition_genotype_WT_KOHALLMARK_FATTY_ACID_METABOLISM.tsv:md5,926ddf4b74ad3a6d76bc99e82ae6aaf3", + "gene_sets_Condition_genotype_WT_KOHALLMARK_GLYCOLYSIS.tsv:md5,4dcdce8b8db83dd971800f2ff18ccbeb", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEDGEHOG_SIGNALING.tsv:md5,2d508b31d0ec00228db110a0e9e2f059", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEME_METABOLISM.tsv:md5,bb723be28feecbbc68909fdb17f8e2f4", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HYPOXIA.tsv:md5,e3a7d53519ee12377377659743d9cf4c", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL2_STAT5_SIGNALING.tsv:md5,4bcc7835887602c732c85ef2db4f5584", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL6_JAK_STAT3_SIGNALING.tsv:md5,18e50d2154c81700b2c44ee848ced133", + "gene_sets_Condition_genotype_WT_KOHALLMARK_INTERFERON_ALPHA_RESPONSE.tsv:md5,fb6fcf993118271ee3340e9a12de0ed7", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_DN.tsv:md5,d0649d9c33c0f81bf4e8e2dcdb6a036d", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_UP.tsv:md5,1b4411d95e2bf08db2bae06996d6729c", + "gene_sets_Condition_genotype_WT_KOHALLMARK_MYOGENESIS.tsv:md5,564c3e924517993e6eac6819a5f53d92", + "gene_sets_Condition_genotype_WT_KOHALLMARK_NOTCH_SIGNALING.tsv:md5,e91e740dac62555b603bf44c427e671e", + "gene_sets_Condition_genotype_WT_KOHALLMARK_OXIDATIVE_PHOSPHORYLATION.tsv:md5,75095d76fc23eccb98d67e045839d4a9", + "gene_sets_Condition_genotype_WT_KOHALLMARK_P53_PATHWAY.tsv:md5,ce4a9fc08c539fc4d930f81e08a2db55", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PANCREAS_BETA_CELLS.tsv:md5,9df68cbfc6e4666d18ff6d214c5f1544", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PEROXISOME.tsv:md5,f0e60a2f8bc511be09ff8f04886eca61", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PI3K_AKT_MTOR_SIGNALING.tsv:md5,f76d919c3e1342304bb69e50a58c81d9", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PROTEIN_SECRETION.tsv:md5,f16a1fcc6e9b4fd976b3c9fefd0f8dc9", + "gene_sets_Condition_genotype_WT_KOHALLMARK_REACTIVE_OXIGEN_SPECIES_PATHWAY.tsv:md5,66bcbea77b774b7d0542abeb460bfef8", + "gene_sets_Condition_genotype_WT_KOHALLMARK_TGF_BETA_SIGNALING.tsv:md5,5970edfc5faad9bb73408d75a2f40350", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_DN.tsv:md5,bb751fac5d95a22e6872ef347038cd4e", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_UP.tsv:md5,8cfe52d138bc42ec8fd7d2c6fbf6761f", + "gene_sets_Condition_genotype_WT_KOHALLMARK_WNT_BETA_CATENIN_SIGNALING.tsv:md5,b45d874ea3fdd7cd4f8bd09843eaa941", + "gene_sets_Condition_genotype_WT_KOHALLMARK_XENOBIOTIC_METABOLISM.tsv:md5,ca28e2bd7b3584d1354e97b09a37f8af", + "gene_sets_Condition_genotype_WT_KOSymbol_to_probe_set_mapping_details.tsv:md5,a8bed433fe3e8081495c82226ec44917" + ] + ] + ], + [ + "gene_sets_Condition_genotype_WT_KOHALLMARK_ADIPOGENESIS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANDROGEN_RESPONSE.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANGIOGENESIS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_JUNCTION.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_SURFACE.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APOPTOSIS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_BILE_ACID_METABOLISM.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COAGULATION.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COMPLEMENT.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_DNA_REPAIR.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_EPITHELIAL_MESENCHYMAL_TRANSITION.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_EARLY.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_LATE.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_FATTY_ACID_METABOLISM.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_GLYCOLYSIS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEDGEHOG_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEME_METABOLISM.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HYPOXIA.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL2_STAT5_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL6_JAK_STAT3_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_INTERFERON_ALPHA_RESPONSE.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_DN.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_UP.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_MYOGENESIS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_NOTCH_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_OXIDATIVE_PHOSPHORYLATION.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_P53_PATHWAY.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PANCREAS_BETA_CELLS.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PEROXISOME.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PI3K_AKT_MTOR_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PROTEIN_SECRETION.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_REACTIVE_OXIGEN_SPECIES_PATHWAY.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_TGF_BETA_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_DN.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_UP.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_WNT_BETA_CATENIN_SIGNALING.html", + "gene_sets_Condition_genotype_WT_KOHALLMARK_XENOBIOTIC_METABOLISM.html" + ], + [ + "gene_sets_Condition_genotype_WT_KOHALLMARK_ADIPOGENESIS_13.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANDROGEN_RESPONSE_100.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ANGIOGENESIS_94.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_JUNCTION_55.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APICAL_SURFACE_82.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_APOPTOSIS_40.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_BILE_ACID_METABOLISM_31.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COAGULATION_34.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_COMPLEMENT_91.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_DNA_REPAIR_43.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_EPITHELIAL_MESENCHYMAL_TRANSITION_67.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_EARLY_58.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_ESTROGEN_RESPONSE_LATE_70.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_FATTY_ACID_METABOLISM_16.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_GLYCOLYSIS_97.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEDGEHOG_SIGNALING_61.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HEME_METABOLISM_28.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_HYPOXIA_103.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL2_STAT5_SIGNALING_106.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_IL6_JAK_STAT3_SIGNALING_46.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_INTERFERON_ALPHA_RESPONSE_52.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_DN_109.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_KRAS_SIGNALING_UP_85.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_MYOGENESIS_64.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_NOTCH_SIGNALING_73.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_OXIDATIVE_PHOSPHORYLATION_4.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_P53_PATHWAY_22.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PANCREAS_BETA_CELLS_37.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PEROXISOME_7.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PI3K_AKT_MTOR_SIGNALING_49.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_PROTEIN_SECRETION_10.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_REACTIVE_OXIGEN_SPECIES_PATHWAY_25.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_TGF_BETA_SIGNALING_79.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_DN_76.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_UV_RESPONSE_UP_88.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_WNT_BETA_CATENIN_SIGNALING_112.png", + "gene_sets_Condition_genotype_WT_KOHALLMARK_XENOBIOTIC_METABOLISM_19.png" + ], + [ + "Condition_genotype_WT_KOneg_snapshot.html", + "Condition_genotype_WT_KOpos_snapshot.html" + ], + [ + "Condition_genotype_WT_KOenplot_HALLMARK_ADIPOGENESIS_12.png", + "Condition_genotype_WT_KOenplot_HALLMARK_ANDROGEN_RESPONSE_99.png", + "Condition_genotype_WT_KOenplot_HALLMARK_ANGIOGENESIS_93.png", + "Condition_genotype_WT_KOenplot_HALLMARK_APICAL_JUNCTION_54.png", + "Condition_genotype_WT_KOenplot_HALLMARK_APICAL_SURFACE_81.png", + "Condition_genotype_WT_KOenplot_HALLMARK_APOPTOSIS_39.png", + "Condition_genotype_WT_KOenplot_HALLMARK_BILE_ACID_METABOLISM_30.png", + "Condition_genotype_WT_KOenplot_HALLMARK_COAGULATION_33.png", + "Condition_genotype_WT_KOenplot_HALLMARK_COMPLEMENT_90.png", + "Condition_genotype_WT_KOenplot_HALLMARK_DNA_REPAIR_42.png", + "Condition_genotype_WT_KOenplot_HALLMARK_EPITHELIAL_MESENCHYMAL_TRANSITION_66.png", + "Condition_genotype_WT_KOenplot_HALLMARK_ESTROGEN_RESPONSE_EARLY_57.png", + "Condition_genotype_WT_KOenplot_HALLMARK_ESTROGEN_RESPONSE_LATE_69.png", + "Condition_genotype_WT_KOenplot_HALLMARK_FATTY_ACID_METABOLISM_15.png", + "Condition_genotype_WT_KOenplot_HALLMARK_GLYCOLYSIS_96.png", + "Condition_genotype_WT_KOenplot_HALLMARK_HEDGEHOG_SIGNALING_60.png", + "Condition_genotype_WT_KOenplot_HALLMARK_HEME_METABOLISM_27.png", + "Condition_genotype_WT_KOenplot_HALLMARK_HYPOXIA_102.png", + "Condition_genotype_WT_KOenplot_HALLMARK_IL2_STAT5_SIGNALING_105.png", + "Condition_genotype_WT_KOenplot_HALLMARK_IL6_JAK_STAT3_SIGNALING_45.png", + "Condition_genotype_WT_KOenplot_HALLMARK_INTERFERON_ALPHA_RESPONSE_51.png", + "Condition_genotype_WT_KOenplot_HALLMARK_KRAS_SIGNALING_DN_108.png", + "Condition_genotype_WT_KOenplot_HALLMARK_KRAS_SIGNALING_UP_84.png", + "Condition_genotype_WT_KOenplot_HALLMARK_MYOGENESIS_63.png", + "Condition_genotype_WT_KOenplot_HALLMARK_NOTCH_SIGNALING_72.png", + "Condition_genotype_WT_KOenplot_HALLMARK_OXIDATIVE_PHOSPHORYLATION_3.png", + "Condition_genotype_WT_KOenplot_HALLMARK_P53_PATHWAY_21.png", + "Condition_genotype_WT_KOenplot_HALLMARK_PANCREAS_BETA_CELLS_36.png", + "Condition_genotype_WT_KOenplot_HALLMARK_PEROXISOME_6.png", + "Condition_genotype_WT_KOenplot_HALLMARK_PI3K_AKT_MTOR_SIGNALING_48.png", + "Condition_genotype_WT_KOenplot_HALLMARK_PROTEIN_SECRETION_9.png", + "Condition_genotype_WT_KOenplot_HALLMARK_REACTIVE_OXIGEN_SPECIES_PATHWAY_24.png", + "Condition_genotype_WT_KOenplot_HALLMARK_TGF_BETA_SIGNALING_78.png", + "Condition_genotype_WT_KOenplot_HALLMARK_UV_RESPONSE_DN_75.png", + "Condition_genotype_WT_KOenplot_HALLMARK_UV_RESPONSE_UP_87.png", + "Condition_genotype_WT_KOenplot_HALLMARK_WNT_BETA_CATENIN_SIGNALING_111.png", + "Condition_genotype_WT_KOenplot_HALLMARK_XENOBIOTIC_METABOLISM_18.png" + ], + [ + "Condition_genotype_WT_KOgset_rnd_es_dist_101.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_104.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_107.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_11.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_110.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_113.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_14.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_17.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_20.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_23.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_26.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_29.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_32.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_35.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_38.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_41.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_44.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_47.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_5.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_50.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_53.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_56.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_59.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_62.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_65.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_68.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_71.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_74.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_77.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_8.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_80.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_83.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_86.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_89.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_92.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_95.png", + "Condition_genotype_WT_KOgset_rnd_es_dist_98.png" + ], + [ + + ], + [ + "versions.yml:md5,957596d9ab6aad1125546a4279696a38" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-09T12:59:01.403655519" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.rpt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.index.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.heat_map_1.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "11": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.pvalues_vs_nes_plot.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ranked_list_corr_2.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + + ], + "14": [ + + ], + "15": [ + + ], + "16": [ + + ], + "17": [ + + ], + "18": [ + + ], + "19": [ + + ], + "2": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.heat_map_corr_plot.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "20": [ + + ], + "21": [ + "versions.yml:md5,957596d9ab6aad1125546a4279696a38" + ], + "3": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_WT.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_WT.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_KO.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_KO.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ranked_gene_list*.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gene_set_sizes.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.global_es_histogram.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "archive": [ + + ], + "butterfly_plot": [ + + ], + "gene_set_dist": [ + + ], + "gene_set_enplot": [ + + ], + "gene_set_heatmap": [ + + ], + "gene_set_html": [ + + ], + "gene_set_sizes": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gene_set_sizes.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gene_set_tsv": [ + + ], + "heat_map_corr_plot": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.heat_map_corr_plot.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "heatmap": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.heat_map_1.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "histogram": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.global_es_histogram.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "index_html": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.index.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pvalues_vs_nes_plot": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.pvalues_vs_nes_plot.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "ranked_gene_list": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ranked_gene_list*.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "ranked_list_corr": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ranked_list_corr_2.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_htmls_ref": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_WT.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_htmls_target": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_KO.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_tsvs_ref": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_WT.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_tsvs_target": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gsea_report_for_KO.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "rpt": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.rpt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "snapshot": [ + + ], + "versions": [ + "versions.yml:md5,957596d9ab6aad1125546a4279696a38" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-08T17:41:24.591802253" + } +} \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 1dfa854152f..1dfd96fce1e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -206,9 +206,6 @@ grids/gridsssomaticfilter: gridss/gridssgenerateponbedpe: - modules/nf-core/gridss/gridssgenerateponbedpe/** - tests/modules/nf-core/gridss/gridssgenerateponbedpe/** -gsea/gsea: - - modules/nf-core/gsea/gsea/** - - tests/modules/nf-core/gsea/gsea/** hlala/preparegraph: - modules/nf-core/hlala/preparegraph/** - tests/modules/nf-core/hlala/preparegraph/** diff --git a/tests/modules/nf-core/gsea/gsea/main.nf b/tests/modules/nf-core/gsea/gsea/main.nf deleted file mode 100644 index 8eedfe6f6dc..00000000000 --- a/tests/modules/nf-core/gsea/gsea/main.nf +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { GSEA_GSEA } from '../../../../../modules/nf-core/gsea/gsea/main.nf' - -workflow test_gsea_gsea { - - gct_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gct'], checkIfExists: true) - cls_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['cls'], checkIfExists: true) - gmx_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gmx'], checkIfExists: true) - - input = [ ['id': 'study' ], gct_file, cls_file, gmx_file ] - contrast = [ 'WT', 'MUT' ] - - GSEA_GSEA ( - input, - contrast, - [] - ) -} - -workflow test_gsea_gsea_nosets { - - gct_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gct'], checkIfExists: true) - cls_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['cls'], checkIfExists: true) - gmx_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gmx'], checkIfExists: true) - - input = [ ['id': 'study' ], gct_file, cls_file, gmx_file ] - contrast = [ 'WT', 'MUT' ] - - GSEA_GSEA ( - input, - contrast, - [] - ) -} - -workflow test_gsea_gsea_zip { - - gct_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gct'], checkIfExists: true) - cls_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['cls'], checkIfExists: true) - gmx_file = file(params.test_data['homo_sapiens']['gene_set_analysis']['gmx'], checkIfExists: true) - - input = [ ['id': 'study' ], gct_file, cls_file, gmx_file ] - contrast = [ 'WT', 'MUT' ] - - GSEA_GSEA ( - input, - contrast, - [] - ) -} diff --git a/tests/modules/nf-core/gsea/gsea/nextflow.config b/tests/modules/nf-core/gsea/gsea/nextflow.config deleted file mode 100644 index 73d35251bd5..00000000000 --- a/tests/modules/nf-core/gsea/gsea/nextflow.config +++ /dev/null @@ -1,18 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: 'test_gsea_gsea:GSEA_GSEA' { - ext.prefix = { "${meta.id}." } - ext.args = { "-rnd_seed 1234" } - } - withName: 'test_gsea_gsea_nosets:GSEA_GSEA' { - ext.prefix = { "${meta.id}." } - ext.args = { "-rnd_seed 1234 -make_sets false" } - } - - withName: 'test_gsea_gsea_zip:GSEA_GSEA' { - ext.prefix = { "${meta.id}." } - ext.args = { "-rnd_seed 1234 -zip_report true" } - } -} diff --git a/tests/modules/nf-core/gsea/gsea/test.yml b/tests/modules/nf-core/gsea/gsea/test.yml deleted file mode 100644 index cb00f218e2c..00000000000 --- a/tests/modules/nf-core/gsea/gsea/test.yml +++ /dev/null @@ -1,653 +0,0 @@ -- name: gsea gsea test_gsea_gsea - command: nextflow run ./tests/modules/nf-core/gsea/gsea -entry test_gsea_gsea -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/gsea/gsea/nextflow.config - tags: - - gsea - - gsea/gsea - files: - - path: output/gsea/study.Gsea.rpt - - path: output/gsea/study.CHR10.html - md5sum: 22919353bea41f7d714d8226482da1e4 - - path: output/gsea/study.CHR10.tsv - md5sum: 73a9336964c5bc78a85f4565a0deb936 - - path: output/gsea/study.CHR10Q21.html - md5sum: 785bf0d2fc2a4cb02f09b840faad92cc - - path: output/gsea/study.CHR10Q21.tsv - md5sum: 7026b101ef8904656c694f6d84d6dce1 - - path: output/gsea/study.CHR10Q21_40.png - - path: output/gsea/study.CHR10Q22.html - md5sum: 026645b0de3a33f0dce387be02d0c674 - - path: output/gsea/study.CHR10Q22.tsv - md5sum: 117663090e727b6b9b5b2f0fc18efaf7 - - path: output/gsea/study.CHR10Q22_19.png - - path: output/gsea/study.CHR10Q23.html - md5sum: 648b1a145ee38a8ad738677246ad4239 - - path: output/gsea/study.CHR10Q23.tsv - md5sum: 3bbd95fda5becfedb275bed0252497b3 - - path: output/gsea/study.CHR10Q23_10.png - - path: output/gsea/study.CHR10Q24.html - md5sum: ee20a6beacfd1f9313f522ce3cd22029 - - path: output/gsea/study.CHR10Q24.tsv - md5sum: 30f70efdd016b85dddfe8f2ac82c8818 - - path: output/gsea/study.CHR10Q24_52.png - - path: output/gsea/study.CHR10_28.png - - path: output/gsea/study.CHR11Q23.html - md5sum: 9a2e7f1a6787cc68e9e0a342431b7614 - - path: output/gsea/study.CHR11Q23.tsv - md5sum: 3d434bb07f5bfe75485313ce691d3b6f - - path: output/gsea/study.CHR11Q23_97.png - - path: output/gsea/study.CHR12.html - md5sum: 156331b5bee99f3855d644c57598c704 - - path: output/gsea/study.CHR12.tsv - md5sum: c59642e40feaebe8740dbedc963395d3 - - path: output/gsea/study.CHR12Q13.html - md5sum: 1e769f3364cffbf86b3845f376b2971f - - path: output/gsea/study.CHR12Q13.tsv - md5sum: 738af83f3d0a0d5ce3487abf2dbea9ca - - path: output/gsea/study.CHR12Q13_64.png - - path: output/gsea/study.CHR12_73.png - - path: output/gsea/study.CHR14.html - md5sum: 164768ee86f5546a3700d72e275644a8 - - path: output/gsea/study.CHR14.tsv - md5sum: 2b91e27831b2650fa84aebcd39c95910 - - path: output/gsea/study.CHR14Q32.html - md5sum: ec08060c3f8409ff277bf4a3c0da9cd1 - - path: output/gsea/study.CHR14Q32.tsv - md5sum: a59ffab651e71d6c6c21eb090452002f - - path: output/gsea/study.CHR14Q32_34.png - - path: output/gsea/study.CHR14_55.png - - path: output/gsea/study.CHR15Q24.html - md5sum: 2c937be23905f4abbdd89a9221b87ed9 - - path: output/gsea/study.CHR15Q24.tsv - md5sum: c3df349a38d4e13f21daee85c49cd727 - - path: output/gsea/study.CHR15Q24_115.png - - path: output/gsea/study.CHR16P12.html - md5sum: 2b473e0db606b01d678058fdb344734c - - path: output/gsea/study.CHR16P12.tsv - md5sum: 2d4b96f20c566208fc129ecb5ddc7def - - path: output/gsea/study.CHR16P12_112.png - - path: output/gsea/study.CHR16Q24.html - md5sum: 6ed25f51b439a18c6ef687b5ad4d747f - - path: output/gsea/study.CHR16Q24.tsv - md5sum: 8068bae266be3f040d55830f3d814623 - - path: output/gsea/study.CHR16Q24_82.png - - path: output/gsea/study.CHR17Q21.html - md5sum: e3b0cf7fac28a00739ca7c00d6e8bd47 - - path: output/gsea/study.CHR17Q21.tsv - md5sum: c1fe27de29f21e3585633579067f633e - - path: output/gsea/study.CHR17Q21_91.png - - path: output/gsea/study.CHR18.html - md5sum: dbab621e91e1f8182b2be5f01439d57c - - path: output/gsea/study.CHR18.tsv - md5sum: aa04a24e5de913dc3879d79b489ab156 - - path: output/gsea/study.CHR18P11.html - md5sum: 2547bf6806442d7800e1cf75272f7cea - - path: output/gsea/study.CHR18P11.tsv - md5sum: a878a99c5a0614e51f048c51a8c8844c - - path: output/gsea/study.CHR18P11_37.png - - path: output/gsea/study.CHR18_61.png - - path: output/gsea/study.CHR1P22.html - md5sum: 0a8ab68e52d6604934b11f45cbc4a9d9 - - path: output/gsea/study.CHR1P22.tsv - md5sum: 630d24e29c17c977637545d55557df5a - - path: output/gsea/study.CHR1P22_25.png - - path: output/gsea/study.CHR1Q21.html - md5sum: 8ae41e08e44cfad7adcd46faf0eed4a0 - - path: output/gsea/study.CHR1Q21.tsv - md5sum: 05a625ffbadcfcb46e2ce7aaaba69f55 - - path: output/gsea/study.CHR1Q21_67.png - - path: output/gsea/study.CHR20.html - md5sum: 7ab53b0e86e6d9e77c63c1a2d2039175 - - path: output/gsea/study.CHR20.tsv - md5sum: ddc1bf49facaf8d2ad83753586e5f38a - - path: output/gsea/study.CHR20_121.png - - path: output/gsea/study.CHR21.html - md5sum: a62c8f2fb79497267638e36a395a1a10 - - path: output/gsea/study.CHR21.tsv - md5sum: 3b513bbfa4e990678bdd6a47003f3941 - - path: output/gsea/study.CHR21_16.png - - path: output/gsea/study.CHR22.html - md5sum: 7dc0cc399d036632c1c72767497cc41b - - path: output/gsea/study.CHR22.tsv - md5sum: 31ef37c7f3610ad803286331f690cbe4 - - path: output/gsea/study.CHR22Q12.html - md5sum: 4dacaae6030467e4eb83c7026b30624c - - path: output/gsea/study.CHR22Q12.tsv - md5sum: cf438ec5cd399de1c6b7ff65deae4307 - - path: output/gsea/study.CHR22Q12_94.png - - path: output/gsea/study.CHR22_118.png - - path: output/gsea/study.CHR2P13.html - md5sum: 3deb087e62e43043e345f30f17474abc - - path: output/gsea/study.CHR2P13.tsv - md5sum: 30064c1421b921c2d69f3451143d45ea - - path: output/gsea/study.CHR2P13_88.png - - path: output/gsea/study.CHR2P23.html - md5sum: 00bc73a37818fc5b6d05122c0c773b81 - - path: output/gsea/study.CHR2P23.tsv - md5sum: de3a0040f744308804e0f57a29129794 - - path: output/gsea/study.CHR2P23_70.png - - path: output/gsea/study.CHR2Q35.html - md5sum: 13f50b1d01ad8d3f669250e3c25c618c - - path: output/gsea/study.CHR2Q35.tsv - md5sum: aad72e817f5373cd12ea11b1acc4577d - - path: output/gsea/study.CHR2Q35_109.png - - path: output/gsea/study.CHR3P14.html - md5sum: 23fcd9ca3527d01c00cb29b2b5f1e3f1 - - path: output/gsea/study.CHR3P14.tsv - md5sum: 9376e3a9b3043d0725780f69a17dd468 - - path: output/gsea/study.CHR3P14_103.png - - path: output/gsea/study.CHR3P24.html - md5sum: 04ac2985e35c3d6db3133b6da097559d - - path: output/gsea/study.CHR3P24.tsv - md5sum: e326b4c1221b19b1ab17feede9e637c6 - - path: output/gsea/study.CHR3P24_100.png - - path: output/gsea/study.CHR3Q13.html - md5sum: d464dce4ebe5b695604ad15d56731a1e - - path: output/gsea/study.CHR3Q13.tsv - md5sum: 8bf0fb21b6ef7e9c67a83dabb8f91fe8 - - path: output/gsea/study.CHR3Q13_76.png - - path: output/gsea/study.CHR3Q27.html - md5sum: 0bf3f1bde949cded670357dda848bacf - - path: output/gsea/study.CHR3Q27.tsv - md5sum: 5d0eb188521981403c0a225e14f25cbe - - path: output/gsea/study.CHR3Q27_85.png - - path: output/gsea/study.CHR5.html - md5sum: a14172ec4cce737c20294222d518bb1a - - path: output/gsea/study.CHR5.tsv - md5sum: 78a09348dada4ded4e2c921bad2ba17c - - path: output/gsea/study.CHR5Q23.html - md5sum: 2a9f47155465c1486795d7513a895e6e - - path: output/gsea/study.CHR5Q23.tsv - md5sum: cf359fb8a320710d2294754abe5dd61b - - path: output/gsea/study.CHR5Q23_43.png - - path: output/gsea/study.CHR5Q31.html - md5sum: d5d3d54cf4c9a76e125ca552f6d7a2e6 - - path: output/gsea/study.CHR5Q31.tsv - md5sum: 144563bca2cdebb9b8cd7e677f41d936 - - path: output/gsea/study.CHR5Q31_7.png - - path: output/gsea/study.CHR5Q32.html - md5sum: 446fae10b9187163f2936715d1d7b2cf - - path: output/gsea/study.CHR5Q32.tsv - md5sum: 212ed9ad35446bc75d56251c23051be5 - - path: output/gsea/study.CHR5Q32_106.png - - path: output/gsea/study.CHR5_31.png - - path: output/gsea/study.CHR6.html - md5sum: b187b1fe265811e702710f4d240c0c42 - - path: output/gsea/study.CHR6.tsv - md5sum: ad9701adf3e508cbeed5b2f6e5534d0c - - path: output/gsea/study.CHR6Q14.html - md5sum: 3315f95af4f834c73e2ee099b7615fc4 - - path: output/gsea/study.CHR6Q14.tsv - md5sum: 468463d60a086cbc7e88d08ede904685 - - path: output/gsea/study.CHR6Q14_22.png - - path: output/gsea/study.CHR6_58.png - - path: output/gsea/study.CHR7P14.html - md5sum: 177d25c4b8615dff187df2ae4a4bd9eb - - path: output/gsea/study.CHR7P14.tsv - md5sum: db965bfea6402110577c9d4fc3dc91e4 - - path: output/gsea/study.CHR7P14_79.png - - path: output/gsea/study.CHR8Q21.html - md5sum: fd6cd66e5c3e128f0ff56da063ad4244 - - path: output/gsea/study.CHR8Q21.tsv - md5sum: 0291f59a2ecb181bbd356fab4d594207 - - path: output/gsea/study.CHR8Q21_4.png - - path: output/gsea/study.CHR9.html - md5sum: b338456b097db4a7cf7fe2eeb29b0052 - - path: output/gsea/study.CHR9.tsv - md5sum: 4e3dad7570a62a11af1d9fbb7481c69a - - path: output/gsea/study.CHR9Q34.html - md5sum: 75ba9004056409c549cb87e9fd8bbdcd - - path: output/gsea/study.CHR9Q34.tsv - md5sum: 1f6e7e63127d79bafe049426c8c1e329 - - path: output/gsea/study.CHR9Q34_46.png - - path: output/gsea/study.CHR9_49.png - - path: output/gsea/study.CHRXQ26.html - md5sum: 78636c92206c543c28f3f41512afb75f - - path: output/gsea/study.CHRXQ26.tsv - md5sum: 5ea132360f57ab160d0f0b5fcc71e52e - - path: output/gsea/study.CHRXQ26_13.png - - path: output/gsea/study.butterfly_plot.png - - path: output/gsea/study.enplot_CHR10Q21_39.png - - path: output/gsea/study.enplot_CHR10Q22_18.png - - path: output/gsea/study.enplot_CHR10Q23_9.png - - path: output/gsea/study.enplot_CHR10Q24_51.png - - path: output/gsea/study.enplot_CHR10_27.png - - path: output/gsea/study.enplot_CHR11Q23_96.png - - path: output/gsea/study.enplot_CHR12Q13_63.png - - path: output/gsea/study.enplot_CHR12_72.png - - path: output/gsea/study.enplot_CHR14Q32_33.png - - path: output/gsea/study.enplot_CHR14_54.png - - path: output/gsea/study.enplot_CHR15Q24_114.png - - path: output/gsea/study.enplot_CHR16P12_111.png - - path: output/gsea/study.enplot_CHR16Q24_81.png - - path: output/gsea/study.enplot_CHR17Q21_90.png - - path: output/gsea/study.enplot_CHR18P11_36.png - - path: output/gsea/study.enplot_CHR18_60.png - - path: output/gsea/study.enplot_CHR1P22_24.png - - path: output/gsea/study.enplot_CHR1Q21_66.png - - path: output/gsea/study.enplot_CHR20_120.png - - path: output/gsea/study.enplot_CHR21_15.png - - path: output/gsea/study.enplot_CHR22Q12_93.png - - path: output/gsea/study.enplot_CHR22_117.png - - path: output/gsea/study.enplot_CHR2P13_87.png - - path: output/gsea/study.enplot_CHR2P23_69.png - - path: output/gsea/study.enplot_CHR2Q35_108.png - - path: output/gsea/study.enplot_CHR3P14_102.png - - path: output/gsea/study.enplot_CHR3P24_99.png - - path: output/gsea/study.enplot_CHR3Q13_75.png - - path: output/gsea/study.enplot_CHR3Q27_84.png - - path: output/gsea/study.enplot_CHR5Q23_42.png - - path: output/gsea/study.enplot_CHR5Q31_6.png - - path: output/gsea/study.enplot_CHR5Q32_105.png - - path: output/gsea/study.enplot_CHR5_30.png - - path: output/gsea/study.enplot_CHR6Q14_21.png - - path: output/gsea/study.enplot_CHR6_57.png - - path: output/gsea/study.enplot_CHR7P14_78.png - - path: output/gsea/study.enplot_CHR8Q21_3.png - - path: output/gsea/study.enplot_CHR9Q34_45.png - - path: output/gsea/study.enplot_CHR9_48.png - - path: output/gsea/study.enplot_CHRXQ26_12.png - - path: output/gsea/study.gene_set_sizes.tsv - md5sum: 325ff7e37712fc5b6d0a68e55cd545bd - - path: output/gsea/study.global_es_histogram.png - - path: output/gsea/study.gsea_report_for_MUT.html - - path: output/gsea/study.gsea_report_for_MUT.tsv - md5sum: aad1246761d062aa0aeeffb38ec5ff93 - - path: output/gsea/study.gsea_report_for_WT.html - - path: output/gsea/study.gsea_report_for_WT.tsv - md5sum: 7e4f9f158ac88fc9574a8e718cfc1cdc - - path: output/gsea/study.gset_rnd_es_dist_101.png - - path: output/gsea/study.gset_rnd_es_dist_104.png - - path: output/gsea/study.gset_rnd_es_dist_107.png - - path: output/gsea/study.gset_rnd_es_dist_11.png - - path: output/gsea/study.gset_rnd_es_dist_110.png - - path: output/gsea/study.gset_rnd_es_dist_113.png - - path: output/gsea/study.gset_rnd_es_dist_116.png - - path: output/gsea/study.gset_rnd_es_dist_119.png - - path: output/gsea/study.gset_rnd_es_dist_122.png - - path: output/gsea/study.gset_rnd_es_dist_14.png - - path: output/gsea/study.gset_rnd_es_dist_17.png - - path: output/gsea/study.gset_rnd_es_dist_20.png - - path: output/gsea/study.gset_rnd_es_dist_23.png - - path: output/gsea/study.gset_rnd_es_dist_26.png - - path: output/gsea/study.gset_rnd_es_dist_29.png - - path: output/gsea/study.gset_rnd_es_dist_32.png - - path: output/gsea/study.gset_rnd_es_dist_35.png - - path: output/gsea/study.gset_rnd_es_dist_38.png - - path: output/gsea/study.gset_rnd_es_dist_41.png - - path: output/gsea/study.gset_rnd_es_dist_44.png - - path: output/gsea/study.gset_rnd_es_dist_47.png - - path: output/gsea/study.gset_rnd_es_dist_5.png - - path: output/gsea/study.gset_rnd_es_dist_50.png - - path: output/gsea/study.gset_rnd_es_dist_53.png - - path: output/gsea/study.gset_rnd_es_dist_56.png - - path: output/gsea/study.gset_rnd_es_dist_59.png - - path: output/gsea/study.gset_rnd_es_dist_62.png - - path: output/gsea/study.gset_rnd_es_dist_65.png - - path: output/gsea/study.gset_rnd_es_dist_68.png - - path: output/gsea/study.gset_rnd_es_dist_71.png - - path: output/gsea/study.gset_rnd_es_dist_74.png - - path: output/gsea/study.gset_rnd_es_dist_77.png - - path: output/gsea/study.gset_rnd_es_dist_8.png - - path: output/gsea/study.gset_rnd_es_dist_80.png - - path: output/gsea/study.gset_rnd_es_dist_83.png - - path: output/gsea/study.gset_rnd_es_dist_86.png - - path: output/gsea/study.gset_rnd_es_dist_89.png - - path: output/gsea/study.gset_rnd_es_dist_92.png - - path: output/gsea/study.gset_rnd_es_dist_95.png - - path: output/gsea/study.gset_rnd_es_dist_98.png - - path: output/gsea/study.heat_map_1.png - - path: output/gsea/study.heat_map_corr_plot.html - md5sum: 38989738cfe08051a1778208b851f6e9 - - path: output/gsea/study.index.html - - path: output/gsea/study.neg_snapshot.html - md5sum: e6fec17e5497856cf7b48d0d0dde3e3d - - path: output/gsea/study.pos_snapshot.html - md5sum: 4a4961df5c418e8763976f6b62faa805 - - path: output/gsea/study.pvalues_vs_nes_plot.png - - path: output/gsea/study.ranked_gene_list_MUT_versus_WT.tsv - md5sum: 92c560d6d4c562481ef4d2dccafac842 - - path: output/gsea/study.ranked_list_corr_2.png - - path: output/gsea/versions.yml - -- name: gsea gsea test_gsea_gsea_nosets - command: nextflow run ./tests/modules/nf-core/gsea/gsea -entry test_gsea_gsea_nosets -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/gsea/gsea/nextflow.config - tags: - - gsea - - gsea/gsea - files: - - path: output/gsea/study.Gsea.rpt - - path: output/gsea/study.butterfly_plot.png - - path: output/gsea/study.gene_set_sizes.tsv - md5sum: 325ff7e37712fc5b6d0a68e55cd545bd - - path: output/gsea/study.global_es_histogram.png - - path: output/gsea/study.gsea_report_for_MUT.html - - path: output/gsea/study.gsea_report_for_MUT.tsv - md5sum: 6e1302d534d278217dec2ad55854f20b - - path: output/gsea/study.gsea_report_for_WT.html - - path: output/gsea/study.gsea_report_for_WT.tsv - md5sum: bf5c56fb5ed060c31a167bda3e7354f3 - - path: output/gsea/study.heat_map_1.png - - path: output/gsea/study.heat_map_corr_plot.html - md5sum: 38989738cfe08051a1778208b851f6e9 - - path: output/gsea/study.index.html - - path: output/gsea/study.neg_snapshot.html - md5sum: ebc73ba6ff13a08e326e2b2aae07096a - - path: output/gsea/study.pos_snapshot.html - md5sum: ebc73ba6ff13a08e326e2b2aae07096a - - path: output/gsea/study.pvalues_vs_nes_plot.png - - path: output/gsea/study.ranked_gene_list_MUT_versus_WT.tsv - md5sum: 92c560d6d4c562481ef4d2dccafac842 - - path: output/gsea/study.ranked_list_corr_2.png - - path: output/gsea/versions.yml - -- name: gsea gsea test_gsea_gsea_zip - command: nextflow run ./tests/modules/nf-core/gsea/gsea -entry test_gsea_gsea_zip -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/gsea/gsea/nextflow.config - tags: - - gsea - - gsea/gsea - files: - - path: output/gsea/study.Gsea.rpt - - path: output/gsea/study.Gsea.rpt.zip - - path: output/gsea/study.CHR10.html - md5sum: 22919353bea41f7d714d8226482da1e4 - - path: output/gsea/study.CHR10.tsv - md5sum: 73a9336964c5bc78a85f4565a0deb936 - - path: output/gsea/study.CHR10Q21.html - md5sum: 785bf0d2fc2a4cb02f09b840faad92cc - - path: output/gsea/study.CHR10Q21.tsv - md5sum: 7026b101ef8904656c694f6d84d6dce1 - - path: output/gsea/study.CHR10Q21_40.png - - path: output/gsea/study.CHR10Q22.html - md5sum: 026645b0de3a33f0dce387be02d0c674 - - path: output/gsea/study.CHR10Q22.tsv - md5sum: 117663090e727b6b9b5b2f0fc18efaf7 - - path: output/gsea/study.CHR10Q22_19.png - - path: output/gsea/study.CHR10Q23.html - md5sum: 648b1a145ee38a8ad738677246ad4239 - - path: output/gsea/study.CHR10Q23.tsv - md5sum: 3bbd95fda5becfedb275bed0252497b3 - - path: output/gsea/study.CHR10Q23_10.png - - path: output/gsea/study.CHR10Q24.html - md5sum: ee20a6beacfd1f9313f522ce3cd22029 - - path: output/gsea/study.CHR10Q24.tsv - md5sum: 30f70efdd016b85dddfe8f2ac82c8818 - - path: output/gsea/study.CHR10Q24_52.png - - path: output/gsea/study.CHR10_28.png - - path: output/gsea/study.CHR11Q23.html - md5sum: 9a2e7f1a6787cc68e9e0a342431b7614 - - path: output/gsea/study.CHR11Q23.tsv - md5sum: 3d434bb07f5bfe75485313ce691d3b6f - - path: output/gsea/study.CHR11Q23_97.png - - path: output/gsea/study.CHR12.html - md5sum: 156331b5bee99f3855d644c57598c704 - - path: output/gsea/study.CHR12.tsv - md5sum: c59642e40feaebe8740dbedc963395d3 - - path: output/gsea/study.CHR12Q13.html - md5sum: 1e769f3364cffbf86b3845f376b2971f - - path: output/gsea/study.CHR12Q13.tsv - md5sum: 738af83f3d0a0d5ce3487abf2dbea9ca - - path: output/gsea/study.CHR12Q13_64.png - - path: output/gsea/study.CHR12_73.png - - path: output/gsea/study.CHR14.html - md5sum: 164768ee86f5546a3700d72e275644a8 - - path: output/gsea/study.CHR14.tsv - md5sum: 2b91e27831b2650fa84aebcd39c95910 - - path: output/gsea/study.CHR14Q32.html - md5sum: ec08060c3f8409ff277bf4a3c0da9cd1 - - path: output/gsea/study.CHR14Q32.tsv - md5sum: a59ffab651e71d6c6c21eb090452002f - - path: output/gsea/study.CHR14Q32_34.png - - path: output/gsea/study.CHR14_55.png - - path: output/gsea/study.CHR15Q24.html - md5sum: 2c937be23905f4abbdd89a9221b87ed9 - - path: output/gsea/study.CHR15Q24.tsv - md5sum: c3df349a38d4e13f21daee85c49cd727 - - path: output/gsea/study.CHR15Q24_115.png - - path: output/gsea/study.CHR16P12.html - md5sum: 2b473e0db606b01d678058fdb344734c - - path: output/gsea/study.CHR16P12.tsv - md5sum: 2d4b96f20c566208fc129ecb5ddc7def - - path: output/gsea/study.CHR16P12_112.png - - path: output/gsea/study.CHR16Q24.html - md5sum: 6ed25f51b439a18c6ef687b5ad4d747f - - path: output/gsea/study.CHR16Q24.tsv - md5sum: 8068bae266be3f040d55830f3d814623 - - path: output/gsea/study.CHR16Q24_82.png - - path: output/gsea/study.CHR17Q21.html - md5sum: e3b0cf7fac28a00739ca7c00d6e8bd47 - - path: output/gsea/study.CHR17Q21.tsv - md5sum: c1fe27de29f21e3585633579067f633e - - path: output/gsea/study.CHR17Q21_91.png - - path: output/gsea/study.CHR18.html - md5sum: dbab621e91e1f8182b2be5f01439d57c - - path: output/gsea/study.CHR18.tsv - md5sum: aa04a24e5de913dc3879d79b489ab156 - - path: output/gsea/study.CHR18P11.html - md5sum: 2547bf6806442d7800e1cf75272f7cea - - path: output/gsea/study.CHR18P11.tsv - md5sum: a878a99c5a0614e51f048c51a8c8844c - - path: output/gsea/study.CHR18P11_37.png - - path: output/gsea/study.CHR18_61.png - - path: output/gsea/study.CHR1P22.html - md5sum: 0a8ab68e52d6604934b11f45cbc4a9d9 - - path: output/gsea/study.CHR1P22.tsv - md5sum: 630d24e29c17c977637545d55557df5a - - path: output/gsea/study.CHR1P22_25.png - - path: output/gsea/study.CHR1Q21.html - md5sum: 8ae41e08e44cfad7adcd46faf0eed4a0 - - path: output/gsea/study.CHR1Q21.tsv - md5sum: 05a625ffbadcfcb46e2ce7aaaba69f55 - - path: output/gsea/study.CHR1Q21_67.png - - path: output/gsea/study.CHR20.html - md5sum: 7ab53b0e86e6d9e77c63c1a2d2039175 - - path: output/gsea/study.CHR20.tsv - md5sum: ddc1bf49facaf8d2ad83753586e5f38a - - path: output/gsea/study.CHR20_121.png - - path: output/gsea/study.CHR21.html - md5sum: a62c8f2fb79497267638e36a395a1a10 - - path: output/gsea/study.CHR21.tsv - md5sum: 3b513bbfa4e990678bdd6a47003f3941 - - path: output/gsea/study.CHR21_16.png - - path: output/gsea/study.CHR22.html - md5sum: 7dc0cc399d036632c1c72767497cc41b - - path: output/gsea/study.CHR22.tsv - md5sum: 31ef37c7f3610ad803286331f690cbe4 - - path: output/gsea/study.CHR22Q12.html - md5sum: 4dacaae6030467e4eb83c7026b30624c - - path: output/gsea/study.CHR22Q12.tsv - md5sum: cf438ec5cd399de1c6b7ff65deae4307 - - path: output/gsea/study.CHR22Q12_94.png - - path: output/gsea/study.CHR22_118.png - - path: output/gsea/study.CHR2P13.html - md5sum: 3deb087e62e43043e345f30f17474abc - - path: output/gsea/study.CHR2P13.tsv - md5sum: 30064c1421b921c2d69f3451143d45ea - - path: output/gsea/study.CHR2P13_88.png - - path: output/gsea/study.CHR2P23.html - md5sum: 00bc73a37818fc5b6d05122c0c773b81 - - path: output/gsea/study.CHR2P23.tsv - md5sum: de3a0040f744308804e0f57a29129794 - - path: output/gsea/study.CHR2P23_70.png - - path: output/gsea/study.CHR2Q35.html - md5sum: 13f50b1d01ad8d3f669250e3c25c618c - - path: output/gsea/study.CHR2Q35.tsv - md5sum: aad72e817f5373cd12ea11b1acc4577d - - path: output/gsea/study.CHR2Q35_109.png - - path: output/gsea/study.CHR3P14.html - md5sum: 23fcd9ca3527d01c00cb29b2b5f1e3f1 - - path: output/gsea/study.CHR3P14.tsv - md5sum: 9376e3a9b3043d0725780f69a17dd468 - - path: output/gsea/study.CHR3P14_103.png - - path: output/gsea/study.CHR3P24.html - md5sum: 04ac2985e35c3d6db3133b6da097559d - - path: output/gsea/study.CHR3P24.tsv - md5sum: e326b4c1221b19b1ab17feede9e637c6 - - path: output/gsea/study.CHR3P24_100.png - - path: output/gsea/study.CHR3Q13.html - md5sum: d464dce4ebe5b695604ad15d56731a1e - - path: output/gsea/study.CHR3Q13.tsv - md5sum: 8bf0fb21b6ef7e9c67a83dabb8f91fe8 - - path: output/gsea/study.CHR3Q13_76.png - - path: output/gsea/study.CHR3Q27.html - md5sum: 0bf3f1bde949cded670357dda848bacf - - path: output/gsea/study.CHR3Q27.tsv - md5sum: 5d0eb188521981403c0a225e14f25cbe - - path: output/gsea/study.CHR3Q27_85.png - - path: output/gsea/study.CHR5.html - md5sum: a14172ec4cce737c20294222d518bb1a - - path: output/gsea/study.CHR5.tsv - md5sum: 78a09348dada4ded4e2c921bad2ba17c - - path: output/gsea/study.CHR5Q23.html - md5sum: 2a9f47155465c1486795d7513a895e6e - - path: output/gsea/study.CHR5Q23.tsv - md5sum: cf359fb8a320710d2294754abe5dd61b - - path: output/gsea/study.CHR5Q23_43.png - - path: output/gsea/study.CHR5Q31.html - md5sum: d5d3d54cf4c9a76e125ca552f6d7a2e6 - - path: output/gsea/study.CHR5Q31.tsv - md5sum: 144563bca2cdebb9b8cd7e677f41d936 - - path: output/gsea/study.CHR5Q31_7.png - - path: output/gsea/study.CHR5Q32.html - md5sum: 446fae10b9187163f2936715d1d7b2cf - - path: output/gsea/study.CHR5Q32.tsv - md5sum: 212ed9ad35446bc75d56251c23051be5 - - path: output/gsea/study.CHR5Q32_106.png - - path: output/gsea/study.CHR5_31.png - - path: output/gsea/study.CHR6.html - md5sum: b187b1fe265811e702710f4d240c0c42 - - path: output/gsea/study.CHR6.tsv - md5sum: ad9701adf3e508cbeed5b2f6e5534d0c - - path: output/gsea/study.CHR6Q14.html - md5sum: 3315f95af4f834c73e2ee099b7615fc4 - - path: output/gsea/study.CHR6Q14.tsv - md5sum: 468463d60a086cbc7e88d08ede904685 - - path: output/gsea/study.CHR6Q14_22.png - - path: output/gsea/study.CHR6_58.png - - path: output/gsea/study.CHR7P14.html - md5sum: 177d25c4b8615dff187df2ae4a4bd9eb - - path: output/gsea/study.CHR7P14.tsv - md5sum: db965bfea6402110577c9d4fc3dc91e4 - - path: output/gsea/study.CHR7P14_79.png - - path: output/gsea/study.CHR8Q21.html - md5sum: fd6cd66e5c3e128f0ff56da063ad4244 - - path: output/gsea/study.CHR8Q21.tsv - md5sum: 0291f59a2ecb181bbd356fab4d594207 - - path: output/gsea/study.CHR8Q21_4.png - - path: output/gsea/study.CHR9.html - md5sum: b338456b097db4a7cf7fe2eeb29b0052 - - path: output/gsea/study.CHR9.tsv - md5sum: 4e3dad7570a62a11af1d9fbb7481c69a - - path: output/gsea/study.CHR9Q34.html - md5sum: 75ba9004056409c549cb87e9fd8bbdcd - - path: output/gsea/study.CHR9Q34.tsv - md5sum: 1f6e7e63127d79bafe049426c8c1e329 - - path: output/gsea/study.CHR9Q34_46.png - - path: output/gsea/study.CHR9_49.png - - path: output/gsea/study.CHRXQ26.html - md5sum: 78636c92206c543c28f3f41512afb75f - - path: output/gsea/study.CHRXQ26.tsv - md5sum: 5ea132360f57ab160d0f0b5fcc71e52e - - path: output/gsea/study.CHRXQ26_13.png - - path: output/gsea/study.butterfly_plot.png - - path: output/gsea/study.enplot_CHR10Q21_39.png - - path: output/gsea/study.enplot_CHR10Q22_18.png - - path: output/gsea/study.enplot_CHR10Q23_9.png - - path: output/gsea/study.enplot_CHR10Q24_51.png - - path: output/gsea/study.enplot_CHR10_27.png - - path: output/gsea/study.enplot_CHR11Q23_96.png - - path: output/gsea/study.enplot_CHR12Q13_63.png - - path: output/gsea/study.enplot_CHR12_72.png - - path: output/gsea/study.enplot_CHR14Q32_33.png - - path: output/gsea/study.enplot_CHR14_54.png - - path: output/gsea/study.enplot_CHR15Q24_114.png - - path: output/gsea/study.enplot_CHR16P12_111.png - - path: output/gsea/study.enplot_CHR16Q24_81.png - - path: output/gsea/study.enplot_CHR17Q21_90.png - - path: output/gsea/study.enplot_CHR18P11_36.png - - path: output/gsea/study.enplot_CHR18_60.png - - path: output/gsea/study.enplot_CHR1P22_24.png - - path: output/gsea/study.enplot_CHR1Q21_66.png - - path: output/gsea/study.enplot_CHR20_120.png - - path: output/gsea/study.enplot_CHR21_15.png - - path: output/gsea/study.enplot_CHR22Q12_93.png - - path: output/gsea/study.enplot_CHR22_117.png - - path: output/gsea/study.enplot_CHR2P13_87.png - - path: output/gsea/study.enplot_CHR2P23_69.png - - path: output/gsea/study.enplot_CHR2Q35_108.png - - path: output/gsea/study.enplot_CHR3P14_102.png - - path: output/gsea/study.enplot_CHR3P24_99.png - - path: output/gsea/study.enplot_CHR3Q13_75.png - - path: output/gsea/study.enplot_CHR3Q27_84.png - - path: output/gsea/study.enplot_CHR5Q23_42.png - - path: output/gsea/study.enplot_CHR5Q31_6.png - - path: output/gsea/study.enplot_CHR5Q32_105.png - - path: output/gsea/study.enplot_CHR5_30.png - - path: output/gsea/study.enplot_CHR6Q14_21.png - - path: output/gsea/study.enplot_CHR6_57.png - - path: output/gsea/study.enplot_CHR7P14_78.png - - path: output/gsea/study.enplot_CHR8Q21_3.png - - path: output/gsea/study.enplot_CHR9Q34_45.png - - path: output/gsea/study.enplot_CHR9_48.png - - path: output/gsea/study.enplot_CHRXQ26_12.png - - path: output/gsea/study.gene_set_sizes.tsv - md5sum: 325ff7e37712fc5b6d0a68e55cd545bd - - path: output/gsea/study.global_es_histogram.png - - path: output/gsea/study.gsea_report_for_MUT.html - - path: output/gsea/study.gsea_report_for_MUT.tsv - md5sum: aad1246761d062aa0aeeffb38ec5ff93 - - path: output/gsea/study.gsea_report_for_WT.html - - path: output/gsea/study.gsea_report_for_WT.tsv - md5sum: 7e4f9f158ac88fc9574a8e718cfc1cdc - - path: output/gsea/study.gset_rnd_es_dist_101.png - - path: output/gsea/study.gset_rnd_es_dist_104.png - - path: output/gsea/study.gset_rnd_es_dist_107.png - - path: output/gsea/study.gset_rnd_es_dist_11.png - - path: output/gsea/study.gset_rnd_es_dist_110.png - - path: output/gsea/study.gset_rnd_es_dist_113.png - - path: output/gsea/study.gset_rnd_es_dist_116.png - - path: output/gsea/study.gset_rnd_es_dist_119.png - - path: output/gsea/study.gset_rnd_es_dist_122.png - - path: output/gsea/study.gset_rnd_es_dist_14.png - - path: output/gsea/study.gset_rnd_es_dist_17.png - - path: output/gsea/study.gset_rnd_es_dist_20.png - - path: output/gsea/study.gset_rnd_es_dist_23.png - - path: output/gsea/study.gset_rnd_es_dist_26.png - - path: output/gsea/study.gset_rnd_es_dist_29.png - - path: output/gsea/study.gset_rnd_es_dist_32.png - - path: output/gsea/study.gset_rnd_es_dist_35.png - - path: output/gsea/study.gset_rnd_es_dist_38.png - - path: output/gsea/study.gset_rnd_es_dist_41.png - - path: output/gsea/study.gset_rnd_es_dist_44.png - - path: output/gsea/study.gset_rnd_es_dist_47.png - - path: output/gsea/study.gset_rnd_es_dist_5.png - - path: output/gsea/study.gset_rnd_es_dist_50.png - - path: output/gsea/study.gset_rnd_es_dist_53.png - - path: output/gsea/study.gset_rnd_es_dist_56.png - - path: output/gsea/study.gset_rnd_es_dist_59.png - - path: output/gsea/study.gset_rnd_es_dist_62.png - - path: output/gsea/study.gset_rnd_es_dist_65.png - - path: output/gsea/study.gset_rnd_es_dist_68.png - - path: output/gsea/study.gset_rnd_es_dist_71.png - - path: output/gsea/study.gset_rnd_es_dist_74.png - - path: output/gsea/study.gset_rnd_es_dist_77.png - - path: output/gsea/study.gset_rnd_es_dist_8.png - - path: output/gsea/study.gset_rnd_es_dist_80.png - - path: output/gsea/study.gset_rnd_es_dist_83.png - - path: output/gsea/study.gset_rnd_es_dist_86.png - - path: output/gsea/study.gset_rnd_es_dist_89.png - - path: output/gsea/study.gset_rnd_es_dist_92.png - - path: output/gsea/study.gset_rnd_es_dist_95.png - - path: output/gsea/study.gset_rnd_es_dist_98.png - - path: output/gsea/study.heat_map_1.png - - path: output/gsea/study.heat_map_corr_plot.html - md5sum: 38989738cfe08051a1778208b851f6e9 - - path: output/gsea/study.index.html - - path: output/gsea/study.neg_snapshot.html - md5sum: e6fec17e5497856cf7b48d0d0dde3e3d - - path: output/gsea/study.pos_snapshot.html - md5sum: 4a4961df5c418e8763976f6b62faa805 - - path: output/gsea/study.pvalues_vs_nes_plot.png - - path: output/gsea/study.ranked_gene_list_MUT_versus_WT.tsv - md5sum: 92c560d6d4c562481ef4d2dccafac842 - - path: output/gsea/study.ranked_list_corr_2.png - - path: output/gsea/versions.yml From 1c4249137bdcd4392317e34123c00b5049c58d45 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 14 Jan 2025 09:25:20 +1300 Subject: [PATCH 03/19] Bumped lima to 2.12.0 (#7294) --- modules/nf-core/lima/environment.yml | 3 +- modules/nf-core/lima/main.nf | 6 +- modules/nf-core/lima/tests/main.nf.test | 4 +- modules/nf-core/lima/tests/main.nf.test.snap | 194 +++++++++---------- 4 files changed, 103 insertions(+), 104 deletions(-) diff --git a/modules/nf-core/lima/environment.yml b/modules/nf-core/lima/environment.yml index 16a072aebb9..7c13724537a 100644 --- a/modules/nf-core/lima/environment.yml +++ b/modules/nf-core/lima/environment.yml @@ -1,5 +1,6 @@ channels: - conda-forge - bioconda + dependencies: - - bioconda::lima=2.9.0 + - bioconda::lima=2.12.0 diff --git a/modules/nf-core/lima/main.nf b/modules/nf-core/lima/main.nf index e44fdda5c3c..e5b334b1d51 100644 --- a/modules/nf-core/lima/main.nf +++ b/modules/nf-core/lima/main.nf @@ -4,8 +4,8 @@ process LIMA { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/lima:2.9.0--h9ee0642_1' : - 'biocontainers/lima:2.9.0--h9ee0642_1' }" + 'https://depot.galaxyproject.org/singularity/lima:2.12.0--h9ee0642_1' : + 'biocontainers/lima:2.12.0--h9ee0642_1' }" input: tuple val(meta), path(ccs) @@ -69,8 +69,6 @@ process LIMA { """ stub: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" """ touch dummy.counts touch dummy.report diff --git a/modules/nf-core/lima/tests/main.nf.test b/modules/nf-core/lima/tests/main.nf.test index bf7d22c2098..f5cb6b86f7e 100644 --- a/modules/nf-core/lima/tests/main.nf.test +++ b/modules/nf-core/lima/tests/main.nf.test @@ -66,7 +66,7 @@ nextflow_process { } - test("LIMA - Primer Removal - Input => fa.gz") { + test("LIMA - Primer Removal - Input => fa.gz") { when { process { @@ -260,4 +260,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/nf-core/lima/tests/main.nf.test.snap b/modules/nf-core/lima/tests/main.nf.test.snap index f64e3dc6521..334b693693b 100644 --- a/modules/nf-core/lima/tests/main.nf.test.snap +++ b/modules/nf-core/lima/tests/main.nf.test.snap @@ -1,4 +1,21 @@ { + "summary": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.fl.lima.summary:md5,bcbcaaaca418bdeb91141c81715ca420" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-17T11:35:00.704932" + }, "fastqgz": { "content": [ [ @@ -85,7 +102,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ @@ -157,7 +174,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -165,10 +182,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:43.376049" + "timestamp": "2025-01-13T13:17:04.481318" }, "LIMA - Primer Removal - Input => fq.gz": { "content": [ @@ -220,7 +237,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ [ @@ -332,7 +349,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -340,10 +357,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:13.306885" + "timestamp": "2025-01-13T13:16:41.110353" }, "LIMA - Primer Removal - Input => fq": { "content": [ @@ -395,7 +412,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ [ @@ -507,7 +524,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -515,10 +532,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:07.559264" + "timestamp": "2025-01-13T13:16:31.41132" }, "LIMA - Primer Removal - Input => fa.gz - stub": { "content": [ @@ -560,7 +577,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ @@ -632,7 +649,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -640,10 +657,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:30.69067" + "timestamp": "2025-01-13T13:16:55.396572" }, "fasta": { "content": [ @@ -657,52 +674,6 @@ }, "timestamp": "2024-01-17T11:35:01.262691" }, - "bam": { - "content": [ - [ - [ - { - "id": "test" - }, - "test.fl.NEB_5p--NEB_Clontech_3p.bam:md5,d3de1934aa8fb39e961345916b3ae57b" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-01-17T11:35:00.822221" - }, - "fastq": { - "content": [ - [ - - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-01-17T11:35:01.752773" - }, - "summary": { - "content": [ - [ - [ - { - "id": "test" - }, - "test.fl.lima.summary:md5,bcbcaaaca418bdeb91141c81715ca420" - ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-01-17T11:35:00.704932" - }, "LIMA - Primer Removal - Input => fq - stub": { "content": [ { @@ -743,7 +714,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ @@ -815,7 +786,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -823,10 +794,27 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-13T13:16:59.983156" + }, + "bam": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.fl.NEB_5p--NEB_Clontech_3p.bam:md5,59b04f200c309b0a60a3f182d22f6910" + ] + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:37.019064" + "timestamp": "2025-01-13T13:16:01.243385" }, "LIMA - Primer Removal - Input => bam - stub": { "content": [ @@ -868,7 +856,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ @@ -940,7 +928,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -948,10 +936,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:18.958286" + "timestamp": "2025-01-13T13:16:46.316856" }, "LIMA - Primer Removal - Input => fa - stub": { "content": [ @@ -993,7 +981,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ @@ -1065,7 +1053,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -1073,10 +1061,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:25.020259" + "timestamp": "2025-01-13T13:16:50.996309" }, "fastagz": { "content": [ @@ -1093,14 +1081,14 @@ "versions": { "content": [ [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-01-17T11:35:00.76398" + "timestamp": "2025-01-13T13:16:01.136138" }, "guess": { "content": [ @@ -1126,15 +1114,15 @@ { "id": "test" }, - "test.fl.NEB_5p--NEB_Clontech_3p.bam.pbi:md5,b531dcf8afc5f6c1caf40c7affb6a90c" + "test.fl.NEB_5p--NEB_Clontech_3p.bam.pbi:md5,851cf26eb54e4399cba5241db969dc0c" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-01-17T11:35:01.042955" + "timestamp": "2025-01-13T13:16:01.343034" }, "report": { "content": [ @@ -1203,7 +1191,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ [ @@ -1305,18 +1293,30 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ ] } ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-13T13:16:11.510737" + }, + "fastq": { + "content": [ + [ + + ] + ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-05-13T08:46:54.854736" + "timestamp": "2024-01-17T11:35:01.752773" }, "LIMA - Primer Removal - Input => fa.gz": { "content": [ @@ -1368,7 +1368,7 @@ ] ], "3": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "4": [ [ @@ -1470,7 +1470,7 @@ ] ], "versions": [ - "versions.yml:md5,1a47b30bece32a2fcd9a70f9356dc30d" + "versions.yml:md5,3253df3f697bdcd8cceee60e0b4ebdaf" ], "xml": [ @@ -1478,9 +1478,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-13T08:47:01.506833" + "timestamp": "2025-01-13T13:16:21.321812" } } \ No newline at end of file From fb1f03c70d38471d9382587695e40b53e30920b5 Mon Sep 17 00:00:00 2001 From: Sebastien Vigneau Date: Tue, 14 Jan 2025 11:54:25 -0500 Subject: [PATCH 04/19] Fix cellranger multi handling of crispr data (#7175) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix cellranger multi handling of crispr data * update cellranger/multi tests for gex+crispr data * update cellranger/multi test snapshots --------- Co-authored-by: Famke Bäuerle <45968370+famosab@users.noreply.github.com> Co-authored-by: Felipe Marques de Almeida --- modules/nf-core/cellranger/multi/main.nf | 2 +- .../multi/templates/cellranger_multi.py | 2 +- .../cellranger/multi/tests/main.nf.test | 146 ++++++++++++++++++ .../cellranger/multi/tests/main.nf.test.snap | 60 +++++-- tests/config/test_data.config | 12 +- 5 files changed, 207 insertions(+), 15 deletions(-) diff --git a/modules/nf-core/cellranger/multi/main.nf b/modules/nf-core/cellranger/multi/main.nf index 326962bb197..f3bde88a3f2 100644 --- a/modules/nf-core/cellranger/multi/main.nf +++ b/modules/nf-core/cellranger/multi/main.nf @@ -59,7 +59,7 @@ process CELLRANGER_MULTI { include_vdj = vdj_fastqs.first().getName() != 'fastqs' && vdj_reference ? '[vdj]' : '' include_beam = beam_fastqs.first().getName() != 'fastqs' && beam_control_panel ? '[antigen-specificity]' : '' include_cmo = cmo_fastqs.first().getName() != 'fastqs' && cmo_barcodes ? '[samples]' : '' - include_fb = ab_fastqs.first().getName() != 'fastqs' && fb_reference ? '[feature]' : '' + include_fb = (ab_fastqs.first().getName() != 'fastqs' || crispr_fastqs.first().getName() != 'fastqs') && fb_reference ? '[feature]' : '' include_frna = gex_frna_probeset_name && frna_sampleinfo ? '[samples]' : '' gex_reference_path = include_gex ? "reference,./${gex_reference_name}" : '' diff --git a/modules/nf-core/cellranger/multi/templates/cellranger_multi.py b/modules/nf-core/cellranger/multi/templates/cellranger_multi.py index 6f1bf85d6a4..9f00ec86a86 100644 --- a/modules/nf-core/cellranger/multi/templates/cellranger_multi.py +++ b/modules/nf-core/cellranger/multi/templates/cellranger_multi.py @@ -29,7 +29,7 @@ def chunk_iter(seq, size): # do not match "SRR12345", "file_INFIXR12", etc filename_pattern = r"([^a-zA-Z0-9])R1([^a-zA-Z0-9])" -for modality in ["gex", "vdj", "ab", "beam", "cmo", "cirspr"]: +for modality in ["gex", "vdj", "ab", "beam", "cmo", "crispr"]: # get fastqs, ordered by path. Files are staged into # - "fastq_001/{original_name.fastq.gz}" # - "fastq_002/{original_name.fastq.gz}" diff --git a/modules/nf-core/cellranger/multi/tests/main.nf.test b/modules/nf-core/cellranger/multi/tests/main.nf.test index 0259e1b3548..c5e762453e5 100644 --- a/modules/nf-core/cellranger/multi/tests/main.nf.test +++ b/modules/nf-core/cellranger/multi/tests/main.nf.test @@ -724,4 +724,150 @@ nextflow_process { } + test("cellranger - multi - 5k - a549 - sc3 v3 - gex + crispr") { + + setup { + + run("CELLRANGER_MKGTF", alias: "CELLRANGER_MKGTF_CRISPR") { + script "modules/nf-core/cellranger/mkgtf/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/reference/genes_chr1_32292083_32686211.gtf', checkIfExists: true) + """ + } + } + + run("CELLRANGER_MKREF", alias: "CELLRANGER_MKREF_CRISPR") { + script "modules/nf-core/cellranger/mkref/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/reference/genome_chr1_32292083_32686211.fa', checkIfExists: true) + input[1] = CELLRANGER_MKGTF_CRISPR.out.gtf + input[2] = 'homo_sapiens_chr1_32292083_32686211_reference' + """ + } + } + + } + + when { + process { + """ + // + // preparation + // + + /***************************/ + /*** stage 5k A549 data ***/ + /***************************/ + + // stage A549 cell FASTQ test data + + // stage gene expression FASTQ test data + test_10x_sc3_v3_5k_a549_gex = [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L001_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L001_R2_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L002_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L002_R2_001.fastq.gz', checkIfExists: true) + ] + def test_10x_sc3_v3_5k_a549_gex_samplename = "subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K" + + // stage CRISPR FASTQ test data + test_10x_sc3_v3_5k_a549_crispr = [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L001_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L001_R2_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L002_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L002_R2_001.fastq.gz', checkIfExists: true) + ] + def test_10x_sc3_v3_5k_a549_crispr_samplename = "subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K" + + // stage feature barcode reference for antibody capture + test_10x_sc3_v3_5k_a549_crispr_fb_reference = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/SC3_v3_NextGem_DI_CRISPR_A549_5K_Multiplex_count_feature_reference_chr1_32292083_32686211.csv', checkIfExists: true) + + /*******************************/ + /*** end stage 5k A549 data ***/ + /*******************************/ + + // make an empty dummy file, for FASTQs + empty_file = file("$workDir/EMPTY") + empty_file.append("") + + // create empty channels to fill unused cellranger multi arguments + // fastqs need a [ meta, ref ] structure + // references just need a path + ch_gex_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_vdj_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_ab_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_beam_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_cmo_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_crispr_fastqs = Channel.value( [ [ id:"EMPTY", options:[] ], empty_file ] ) + ch_gex_frna_probeset = [] + ch_gex_targetpanel = [] + ch_vdj_reference = [] + ch_vdj_primer_index = [] + ch_fb_reference = [] + ch_beam_antigen_panel = [] + ch_beam_control_panel = [] + ch_cmo_reference = [] + ch_cmo_barcodes = [] + ch_cmo_sample_assignment = [] + ch_frna_sampleinfo = [] + + // collect references and fastq files for staging + + ch_gex_fastqs_sc3_v3_5k_a549 = Channel.of( test_10x_sc3_v3_5k_a549_gex ) + .collect() + .map { reads -> [ [ id:test_10x_sc3_v3_5k_a549_gex_samplename , options:[ "expect-cells":"5000", chemistry:"SC3Pv3", "create-bam":false, "no-secondary":true ] ], reads ] } + + ch_crispr_fastqs_sc3_v3_5k_a549 = Channel.of( test_10x_sc3_v3_5k_a549_crispr ) + .collect() + .map { reads -> [ [ id:test_10x_sc3_v3_5k_a549_crispr_samplename , options:[ "expect-cells":"5000" ] ], reads ] } + + ch_crispr_reference_sc3_v3_5k_a549 = Channel.of( test_10x_sc3_v3_5k_a549_crispr_fb_reference ) + + // + // execution + // + input[0] = [ id:'subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K', single_end:false ] + input[1] = ch_gex_fastqs_sc3_v3_5k_a549 + input[2] = ch_vdj_fastqs + input[3] = ch_ab_fastqs + input[4] = ch_beam_fastqs + input[5] = ch_cmo_fastqs + input[6] = ch_crispr_fastqs_sc3_v3_5k_a549 + input[7] = CELLRANGER_MKREF_CRISPR.out.reference + input[8] = ch_gex_frna_probeset + input[9] = ch_gex_targetpanel + input[10] = ch_vdj_reference + input[11] = ch_vdj_primer_index + input[12] = ch_crispr_reference_sc3_v3_5k_a549 + input[13] = ch_beam_antigen_panel + input[14] = ch_beam_control_panel + input[15] = ch_cmo_reference + input[16] = ch_cmo_barcodes + input[17] = ch_cmo_sample_assignment + input[18] = ch_frna_sampleinfo + input[19] = false // default to false to guarantee renaming during test + """ + } + } + + then { + + assertAll( + { assert process.success }, + { assert snapshot( + process.out.outs[0][1].findAll { file(it).name == 'metrics_summary.csv' }, + process.out.outs[0][1].findAll { file(it).name == 'raw_feature_bc_matrix.h5' }, + process.out.outs[0][1].findAll { file(it).name == 'sample_filtered_feature_bc_matrix.h5' }, + process.out.outs[0][1].findAll { file(it).name == 'protospacer_calls_per_cell.csv' }, + process.out.outs[0][1].findAll { file(it).name == 'perturbation_efficiencies_by_feature.csv' } + ).match() }, + { assert snapshot(process.out.versions).match("versions-a549-crispr") } + ) + + } + + } + } diff --git a/modules/nf-core/cellranger/multi/tests/main.nf.test.snap b/modules/nf-core/cellranger/multi/tests/main.nf.test.snap index dc80d7948a0..31f83c72450 100644 --- a/modules/nf-core/cellranger/multi/tests/main.nf.test.snap +++ b/modules/nf-core/cellranger/multi/tests/main.nf.test.snap @@ -35,10 +35,10 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-04-18T08:17:44.767319153" + "timestamp": "2025-01-13T20:43:16.019719647" }, "cellranger - multi - 10k - PBMC - with cmo": { "content": [ @@ -76,10 +76,46 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-04-18T08:19:37.509459561" + "timestamp": "2025-01-13T20:45:08.327456478" + }, + "cellranger - multi - 5k - a549 - sc3 v3 - gex + crispr": { + "content": [ + [ + "metrics_summary.csv:md5,f11710688fdbe545aa111bb500ba1506" + ], + [ + "raw_feature_bc_matrix.h5:md5,d8f1e75c5ead2f501faf14a961a326ca" + ], + [ + "sample_filtered_feature_bc_matrix.h5:md5,c2e1958714cd710409f0627a96c7bd31" + ], + [ + "protospacer_calls_per_cell.csv:md5,a94184bddcd8107421f62986b9e0984a" + ], + [ + "perturbation_efficiencies_by_feature.csv:md5,bdf16f59c33b5f061e87b4f3ed74e809" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-19T00:53:44.55033207" + }, + "versions-a549-crispr": { + "content": [ + [ + "versions.yml:md5,c5714f73535a8ed4fad19e1198b6425a" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2025-01-13T20:49:31.807285657" }, "versions-with-vdj": { "content": [ @@ -88,10 +124,10 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-04-18T08:21:38.624731758" + "timestamp": "2025-01-13T20:46:58.001307633" }, "cellranger - multi - 10k - PBMC - with vdj": { "content": [ @@ -117,9 +153,9 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-04-18T08:21:38.551047173" + "timestamp": "2024-12-18T23:48:45.579759284" } } \ No newline at end of file diff --git a/tests/config/test_data.config b/tests/config/test_data.config index a03e334e56e..2ffaa77c9f4 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -230,6 +230,16 @@ params { test_10x_matrix_rna_raw_h5 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/hashing_demultiplexing/438-21-raw_feature_bc_matrix.h5" test_10x_matrix_hto_csv = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/hashing_demultiplexing/438_21_raw_HTO.csv" + + test_10x_sc3_v3_5k_a549_gex_l1_fastq1 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L001_R1_001.fastq.gz" + test_10x_sc3_v3_5k_a549_gex_l1_fastq2 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L001_R2_001.fastq.gz" + test_10x_sc3_v3_5k_a549_gex_l2_fastq1 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L002_R1_001.fastq.gz" + test_10x_sc3_v3_5k_a549_gex_l2_fastq2 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/gex/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_gex_S5_L002_R2_001.fastq.gz" + test_10x_sc3_v3_5k_a549_crispr_l1_fastq1 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L001_R1_001.fastq.gz" + test_10x_sc3_v3_5k_a549_crispr_l1_fastq2 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L001_R2_001.fastq.gz" + test_10x_sc3_v3_5k_a549_crispr_l2_fastq1 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L002_R1_001.fastq.gz" + test_10x_sc3_v3_5k_a549_crispr_l2_fastq2 = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/sc3_v3_5k_a549_gex_crispr/fastqs/crispr/subsampled_SC3_v3_NextGem_DI_CRISPR_A549_5K_crispr_S4_L002_R2_001.fastq.gz" + } spaceranger { test_10x_ffpe_cytassist_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_2_S1_L001_R1_001.fastq.gz" @@ -697,7 +707,7 @@ params { sources_taxid_csv = "${params.test_data_base}/data/genomics/prokaryotes/metagenome/taxonomy/misc/sources_labels.csv" sources_labels_csv = "${params.test_data_base}/data/genomics/prokaryotes/metagenome/taxonomy/misc/sources_taxid.csv" taxa_sqlite = "${params.test_data_base}/data/genomics/prokaryotes/metagenome/taxonomy/misc/taxa_sqlite.xz" - taxa_sqlite_traverse_pkl = "${params.test_data_base}/data/genomics/prokaryotes/metagenome/taxonomy/misc/taxa_sqlite_traverse.pkl" + taxa_sqlite_traverse_pkl = "${params.test_data_base}/data/genomics/prokaryotes/metagenome/taxonomy/misc/taxa_sqlite_traverse.pkl" } } 'saccharomyces_cerevisiae' { From c9e9241cf86666d6d5f30dab8ccb1bfeff5573df Mon Sep 17 00:00:00 2001 From: MazzaLab Date: Tue, 14 Jan 2025 19:42:54 +0100 Subject: [PATCH 05/19] Update WIPERTOOLS (#7300) * Refactor fastq and report variable names for consistency across wipertools modules * Refactor variable names for consistency in fastq and report processing modules * Update test assertions to reflect changes in output variable names in fastqwiper module * Update test assertions to match changes in report output structure in fastqwiper tests --- .../nf-core/wipertools/fastqgather/main.nf | 14 +++--- .../nf-core/wipertools/fastqgather/meta.yml | 7 ++- .../wipertools/fastqgather/tests/main.nf.test | 4 +- .../fastqgather/tests/main.nf.test.snap | 8 ++-- .../nf-core/wipertools/fastqscatter/main.nf | 8 +++- .../nf-core/wipertools/fastqscatter/meta.yml | 2 +- .../fastqscatter/tests/main.nf.test.snap | 8 ++-- modules/nf-core/wipertools/fastqwiper/main.nf | 12 ++--- .../nf-core/wipertools/fastqwiper/meta.yml | 9 +++- .../wipertools/fastqwiper/tests/main.nf.test | 10 ++-- .../fastqwiper/tests/main.nf.test.snap | 48 +++++++++++++------ .../nf-core/wipertools/reportgather/main.nf | 10 ++-- .../nf-core/wipertools/reportgather/meta.yml | 4 +- .../reportgather/tests/main.nf.test | 16 +++---- .../reportgather/tests/main.nf.test.snap | 40 +++++++++++++--- 15 files changed, 129 insertions(+), 71 deletions(-) diff --git a/modules/nf-core/wipertools/fastqgather/main.nf b/modules/nf-core/wipertools/fastqgather/main.nf index 965d004df83..c39730e4f9f 100644 --- a/modules/nf-core/wipertools/fastqgather/main.nf +++ b/modules/nf-core/wipertools/fastqgather/main.nf @@ -8,28 +8,28 @@ process WIPERTOOLS_FASTQGATHER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(fastq_in) + tuple val(meta), path(fastq) output: - tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out + tuple val(meta), path("${prefix}.fastq.gz"), emit: gathered_fastq 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}_gather" + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + if (fastq.any { it.name == "${prefix}.fastq.gz" }) { error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ wipertools \\ fastqgather \\ - -i $fastq_in \\ + -i $fastq \\ -o ${prefix}.fastq.gz \\ ${args} @@ -43,7 +43,7 @@ process WIPERTOOLS_FASTQGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (fastq_in.any { it.name == "${prefix}.fastq.gz" }) { + if (fastq.any { it.name == "${prefix}.fastq.gz" }) { error 'Output file name "${prefix}.fastq.gz}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ diff --git a/modules/nf-core/wipertools/fastqgather/meta.yml b/modules/nf-core/wipertools/fastqgather/meta.yml index 183109a04e5..a3ce38c8f24 100644 --- a/modules/nf-core/wipertools/fastqgather/meta.yml +++ b/modules/nf-core/wipertools/fastqgather/meta.yml @@ -7,8 +7,7 @@ keywords: - union tools: - "fastqgather": - description: - "A tool of the wipertools suite that merges FASTQ chunks produced\ + description: "A tool of the wipertools suite that merges FASTQ chunks produced\ \ by wipertools_fastqscatter." homepage: "https://github.com/mazzalab/fastqwiper" documentation: "https://github.com/mazzalab/fastqwiper" @@ -24,7 +23,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - fastq_in: + - fastq: type: file description: List of FASTQ chunk files to be merged pattern: "*.{fastq,fastq.gz}" @@ -32,7 +31,7 @@ input: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" output: - - fastq_out: + - gathered_fastq: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test index 193720c02c1..69288f02124 100644 --- a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test @@ -33,7 +33,7 @@ nextflow_process { } process { """ - input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + input[0] = WIPERTOOLS_FASTQSCATTER.out.fastq_chunks """ } } @@ -56,7 +56,7 @@ nextflow_process { } process { """ - input[0] = WIPERTOOLS_FASTQSCATTER.out.chunks + input[0] = WIPERTOOLS_FASTQSCATTER.out.fastq_chunks """ } } diff --git a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap index 497cd2e9ab1..3319aac0447 100644 --- a/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqgather/tests/main.nf.test.snap @@ -13,7 +13,7 @@ "1": [ "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" ], - "fastq_out": [ + "gathered_fastq": [ [ { "id": "fastq_chunks" @@ -30,7 +30,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:22.882325" + "timestamp": "2025-01-13T18:49:15.441781" }, "merge two gzipped fastq - fastq.gz": { "content": [ @@ -46,7 +46,7 @@ "1": [ "versions.yml:md5,291a2e6d58146bfcf57b4d9ef850cbd9" ], - "fastq_out": [ + "gathered_fastq": [ [ { "id": "fastq_chunks" @@ -63,6 +63,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:12.396668" + "timestamp": "2025-01-13T18:49:02.891972" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqscatter/main.nf b/modules/nf-core/wipertools/fastqscatter/main.nf index e32383fdc82..968bb6e756a 100644 --- a/modules/nf-core/wipertools/fastqscatter/main.nf +++ b/modules/nf-core/wipertools/fastqscatter/main.nf @@ -12,7 +12,7 @@ process WIPERTOOLS_FASTQSCATTER { val(num_splits) output: - tuple val(meta), path("${out_folder}/*") , emit: chunks + tuple val(meta), path("${out_folder}/*") , emit: fastq_chunks path "versions.yml" , emit: versions when: @@ -24,6 +24,9 @@ process WIPERTOOLS_FASTQSCATTER { def args_list = args.tokenize() out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + if(!args.contains('-o') && !args.contains('--out_folder')) { + args += " -o ${out_folder}" + } """ wipertools \\ fastqscatter \\ @@ -44,6 +47,9 @@ process WIPERTOOLS_FASTQSCATTER { def args_list = args.tokenize() out_folder = (args_list.contains('--out_folder') ? args_list[args_list.indexOf('--out_folder')+1] : (args_list.contains('-o') ? args_list[args_list.indexOf('-o')+1] : 'chunks')) + if(!args.contains('-o') && !args.contains('--out_folder')) { + args += " -o ${out_folder}" + } """ mkdir ${out_folder} for i in {1..${num_splits}} diff --git a/modules/nf-core/wipertools/fastqscatter/meta.yml b/modules/nf-core/wipertools/fastqscatter/meta.yml index 445323317e5..b2508f87409 100644 --- a/modules/nf-core/wipertools/fastqscatter/meta.yml +++ b/modules/nf-core/wipertools/fastqscatter/meta.yml @@ -34,7 +34,7 @@ input: pattern: "[1-9][0-9]*" output: - - chunks: + - fastq_chunks: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap index e293ce0f332..2145181050a 100644 --- a/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqscatter/tests/main.nf.test.snap @@ -16,7 +16,7 @@ "1": [ "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" ], - "chunks": [ + "fastq_chunks": [ [ { "id": "test" @@ -36,7 +36,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:32.330894" + "timestamp": "2025-01-13T18:41:58.317846" }, "3 reads, one truncated - fastq - stub": { "content": [ @@ -55,7 +55,7 @@ "1": [ "versions.yml:md5,c8e701c1048cc9ab79752d1bf631ad4b" ], - "chunks": [ + "fastq_chunks": [ [ { "id": "test" @@ -75,6 +75,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:41.304878" + "timestamp": "2025-01-13T18:42:09.268891" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/fastqwiper/main.nf b/modules/nf-core/wipertools/fastqwiper/main.nf index ccf3a070cc9..4b8dea60393 100644 --- a/modules/nf-core/wipertools/fastqwiper/main.nf +++ b/modules/nf-core/wipertools/fastqwiper/main.nf @@ -8,11 +8,11 @@ process WIPERTOOLS_FASTQWIPER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(fastq_in) + tuple val(meta), path(fastq) output: - tuple val(meta), path("${prefix}.fastq.gz"), emit: fastq_out - path("*.report") , emit: report + tuple val(meta), path("${prefix}.fastq.gz"), emit: wiped_fastq + tuple val(meta), path("*.report") , emit: report path "versions.yml" , emit: versions when: @@ -21,11 +21,11 @@ process WIPERTOOLS_FASTQWIPER { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}_wiped" - if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + if ("${fastq}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." """ wipertools \\ fastqwiper \\ - -i ${fastq_in} \\ + -i ${fastq} \\ -o ${prefix}.fastq.gz \\ -r ${prefix}.report \\ ${args} @@ -38,7 +38,7 @@ process WIPERTOOLS_FASTQWIPER { stub: prefix = task.ext.prefix ?: "${meta.id}_wiped" - if ("${fastq_in}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." + if ("${fastq}" == "${prefix}.fastq.gz") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!." """ echo "" | gzip > ${prefix}.fastq.gz touch ${prefix}.report diff --git a/modules/nf-core/wipertools/fastqwiper/meta.yml b/modules/nf-core/wipertools/fastqwiper/meta.yml index 3980f46167d..8c35c1b031a 100644 --- a/modules/nf-core/wipertools/fastqwiper/meta.yml +++ b/modules/nf-core/wipertools/fastqwiper/meta.yml @@ -23,7 +23,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - fastq_in: + - fastq: type: file description: FASTQ file to be cleaned pattern: "*.{fastq,fastq.gz}" @@ -31,7 +31,7 @@ input: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" output: - - fastq_out: + - wiped_fastq: - meta: type: map description: | @@ -45,6 +45,11 @@ output: - edam: "http://edamontology.org/format_1930" - edam: "http://edamontology.org/format_3989" - report: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - "*.report": type: file description: Summary of the cleaning task diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test index 8c8a2ab091f..d21224ad8fc 100644 --- a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test @@ -28,18 +28,18 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.fastq_out.get(0).get(1)).linesGzip.size() == 8}, + { assert path(process.out.wiped_fastq.get(0).get(1)).linesGzip.size() == 8}, { - def read_final_qual = path(process.out.fastq_out.get(0).get(1)).linesGzip[7] + def read_final_qual = path(process.out.wiped_fastq.get(0).get(1)).linesGzip[7] assert read_final_qual.equals('CCCCCGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG') }, - { assert path(process.out.report.get(0)).readLines().size() == 11}, + { assert path(process.out.report.get(0).get(1)).readLines().size() == 11}, { - def report_header = path(process.out.report.get(0)).readLines()[0] + def report_header = path(process.out.report.get(0).get(1)).readLines()[0] assert report_header.equals('FASTQWIPER REPORT:') }, { - def qual_check = path(process.out.report.get(0)).readLines()[9] + def qual_check = path(process.out.report.get(0).get(1)).readLines()[9] assert qual_check.equals('Reads discarded because len(SEQ) neq len(QUAL): 1') }, { assert snapshot(process.out).match() } diff --git a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap index 8c6b7a08e82..6dac8240986 100644 --- a/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/fastqwiper/tests/main.nf.test.snap @@ -11,24 +11,34 @@ ] ], "1": [ - "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + { + "id": "test" + }, + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "2": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" ], - "fastq_out": [ + "report": [ [ { "id": "test" }, - "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "report": [ - "test_wiped.report:md5,d41d8cd98f00b204e9800998ecf8427e" - ], "versions": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "wiped_fastq": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] ] } ], @@ -36,7 +46,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:03.969824" + "timestamp": "2025-01-13T18:52:39.908974" }, "Quality mismatch - fastq": { "content": [ @@ -50,24 +60,34 @@ ] ], "1": [ - "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + [ + { + "id": "test" + }, + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" + ] ], "2": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" ], - "fastq_out": [ + "report": [ [ { "id": "test" }, - "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], - "report": [ - "test_wiped.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" - ], "versions": [ "versions.yml:md5,0a814cc53368590314bd01d1b433b6fd" + ], + "wiped_fastq": [ + [ + { + "id": "test" + }, + "test_wiped.fastq.gz:md5,81b1d99cf5c1615123a8c31760858a10" + ] ] } ], @@ -75,6 +95,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:28:53.747935" + "timestamp": "2025-01-13T18:52:27.962146" } } \ No newline at end of file diff --git a/modules/nf-core/wipertools/reportgather/main.nf b/modules/nf-core/wipertools/reportgather/main.nf index e56e3d2f580..0bdefcfb38e 100644 --- a/modules/nf-core/wipertools/reportgather/main.nf +++ b/modules/nf-core/wipertools/reportgather/main.nf @@ -8,10 +8,10 @@ process WIPERTOOLS_REPORTGATHER { 'biocontainers/wipertools:1.1.3--pyhdfd78af_0' }" input: - tuple val(meta), path(reports) + tuple val(meta), path(report) output: - tuple val(meta), path("${prefix}.report"), emit: report_out + tuple val(meta), path("${prefix}.report"), emit: gathered_report path "versions.yml" , emit: versions when: @@ -22,14 +22,14 @@ process WIPERTOOLS_REPORTGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (reports.any { it.name == "${prefix}.report" }) { + if (report.any { it.name == "${prefix}.report" }) { error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } """ wipertools \\ reportgather \\ - -r $reports \\ + -r $report \\ -f ${prefix}.report \\ ${args} @@ -43,7 +43,7 @@ process WIPERTOOLS_REPORTGATHER { prefix = task.ext.prefix ?: "${meta.id}_gather" // Check if the output file name is in the list of input files - if (reports.any { it.name == "${prefix}.report" }) { + if (report.any { it.name == "${prefix}.report" }) { error 'Output file name "${prefix}.report}" matches one of the input files. Use \"task.ext.prefix\" to disambiguate!.' } diff --git a/modules/nf-core/wipertools/reportgather/meta.yml b/modules/nf-core/wipertools/reportgather/meta.yml index 03eaaec9ad7..eee8c890226 100644 --- a/modules/nf-core/wipertools/reportgather/meta.yml +++ b/modules/nf-core/wipertools/reportgather/meta.yml @@ -22,14 +22,14 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - reports: + - report: type: file description: List of wiping reports to be merged pattern: "*.report" ontologies: - edam: "http://edamontology.org/format_2330" output: - - report_out: + - gathered_report: - meta: type: map description: | diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test b/modules/nf-core/wipertools/reportgather/tests/main.nf.test index e5e0f3d8138..732e7898841 100644 --- a/modules/nf-core/wipertools/reportgather/tests/main.nf.test +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test @@ -43,8 +43,8 @@ nextflow_process { } process { """ - merged_reports = FQW1.out.report.merge(FQW2.out.report) - input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + merged_reports = FQW1.out.report.mix(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it[1]) ) """ } } @@ -52,14 +52,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report_out.get(0).get(1)).readLines().size() == 11}, + { assert path(process.out.gathered_report.get(0).get(1)).readLines().size() == 11}, { - def report_header = path(process.out.report_out.get(0).get(1)).readLines()[0] + def report_header = path(process.out.gathered_report.get(0).get(1)).readLines()[0] assert report_header.equals('FASTQWIPER REPORT:') }, { - def well_formed_lines = path(process.out.report_out.get(0).get(1)).readLines()[3] - assert well_formed_lines.equals('Well-formed lines: 16 (72.73%)') + def well_formed_lines = path(process.out.gathered_report.get(0).get(1)).readLines()[3] + assert well_formed_lines.equals('Well-formed lines: 8 (80.0%)') }, { assert snapshot(process.out).match() } ) @@ -72,8 +72,8 @@ nextflow_process { when { process { """ - merged_reports = FQW1.out.report.merge(FQW2.out.report) - input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it) ) + merged_reports = FQW1.out.report.mix(FQW2.out.report) + input[0] = merged_reports.map(it -> tuple ([id: 'reports'], it[1]) ) """ } } diff --git a/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap index 3fa9ca583d2..0965d5d44f5 100644 --- a/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap +++ b/modules/nf-core/wipertools/reportgather/tests/main.nf.test.snap @@ -3,6 +3,12 @@ "content": [ { "0": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], [ { "id": "reports" @@ -11,9 +17,16 @@ ] ], "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ], - "report_out": [ + "gathered_report": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d41d8cd98f00b204e9800998ecf8427e" + ], [ { "id": "reports" @@ -22,6 +35,7 @@ ] ], "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ] } @@ -30,7 +44,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:25.550092" + "timestamp": "2025-01-13T19:37:46.90862" }, "merge two reports - .report": { "content": [ @@ -40,21 +54,35 @@ { "id": "reports" }, - "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + "reports_gather.report:md5,3d2cfb8d7b72afe9b88663cf9dbf8129" + ], + [ + { + "id": "reports" + }, + "reports_gather.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], "1": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ], - "report_out": [ + "gathered_report": [ + [ + { + "id": "reports" + }, + "reports_gather.report:md5,3d2cfb8d7b72afe9b88663cf9dbf8129" + ], [ { "id": "reports" }, - "reports_gather.report:md5,cec18092c5b270372a3487d94c7b57bf" + "reports_gather.report:md5,d6fe1f0066f538993bb8f6b90150c8d5" ] ], "versions": [ + "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df", "versions.yml:md5,8f315851a1d3b7a1bb186ab41e7675df" ] } @@ -63,6 +91,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.3" }, - "timestamp": "2024-12-17T20:29:15.048128" + "timestamp": "2025-01-13T19:37:34.849059" } } \ No newline at end of file From 47dec44eef5955f7f4b212dafb1a2188632a8687 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 15 Jan 2025 19:36:30 +1300 Subject: [PATCH 06/19] Bumped agat modules (#7305) * Bumped agat modules * Fixed an issue in agat/spmergeannotations --- .../agat/convertspgff2gtf/environment.yml | 2 +- modules/nf-core/agat/convertspgff2gtf/main.nf | 5 ++- .../convertspgff2gtf/tests/main.nf.test.snap | 16 ++++----- .../agat/convertspgff2tsv/environment.yml | 2 +- modules/nf-core/agat/convertspgff2tsv/main.nf | 5 ++- .../convertspgff2tsv/tests/main.nf.test.snap | 18 +++++----- .../agat/convertspgxf2gxf/environment.yml | 2 +- modules/nf-core/agat/convertspgxf2gxf/main.nf | 5 ++- .../convertspgxf2gxf/tests/main.nf.test.snap | 18 +++++----- .../nf-core/agat/spaddintrons/environment.yml | 2 +- modules/nf-core/agat/spaddintrons/main.nf | 5 ++- .../agat/spaddintrons/tests/main.nf.test.snap | 22 ++++++------ .../environment.yml | 2 +- .../agat/spfilterfeaturefromkilllist/main.nf | 5 ++- .../tests/main.nf.test | 2 +- .../tests/main.nf.test.snap | 30 ++++++++-------- .../agat/spmergeannotations/environment.yml | 2 +- .../nf-core/agat/spmergeannotations/main.nf | 4 +-- .../spmergeannotations/tests/main.nf.test | 4 +-- .../tests/main.nf.test.snap | 36 +++++++++---------- .../nf-core/agat/spstatistics/environment.yml | 2 +- modules/nf-core/agat/spstatistics/main.nf | 5 ++- .../agat/spstatistics/tests/main.nf.test.snap | 22 ++++++------ .../nf-core/agat/sqstatbasic/environment.yml | 2 +- modules/nf-core/agat/sqstatbasic/main.nf | 5 ++- .../agat/sqstatbasic/tests/main.nf.test.snap | 18 +++++----- 26 files changed, 117 insertions(+), 124 deletions(-) diff --git a/modules/nf-core/agat/convertspgff2gtf/environment.yml b/modules/nf-core/agat/convertspgff2gtf/environment.yml index 0410ee765ea..d9cd916872b 100644 --- a/modules/nf-core/agat/convertspgff2gtf/environment.yml +++ b/modules/nf-core/agat/convertspgff2gtf/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::agat=1.4.0 + - bioconda::agat=1.4.2 diff --git a/modules/nf-core/agat/convertspgff2gtf/main.nf b/modules/nf-core/agat/convertspgff2gtf/main.nf index 38af025ea16..95824ea2a53 100644 --- a/modules/nf-core/agat/convertspgff2gtf/main.nf +++ b/modules/nf-core/agat/convertspgff2gtf/main.nf @@ -4,8 +4,8 @@ process AGAT_CONVERTSPGFF2GTF { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0' : - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -34,7 +34,6 @@ process AGAT_CONVERTSPGFF2GTF { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.agat.gtf diff --git a/modules/nf-core/agat/convertspgff2gtf/tests/main.nf.test.snap b/modules/nf-core/agat/convertspgff2gtf/tests/main.nf.test.snap index 4088c71d73f..3ca3fa4439a 100644 --- a/modules/nf-core/agat/convertspgff2gtf/tests/main.nf.test.snap +++ b/modules/nf-core/agat/convertspgff2gtf/tests/main.nf.test.snap @@ -4,14 +4,14 @@ [ "test.agat.gtf", "genome.gff3.agat.log", - "versions.yml:md5,dcc621fac77aa683287f6a0d61e10395" + "versions.yml:md5,8a5591085d36637f9378c24a7607d623" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:05:11.177573" + "timestamp": "2025-01-15T13:13:37.584076" }, "sarscov2 - genome [gff3]": { "content": [ @@ -24,13 +24,13 @@ ] ], [ - "versions.yml:md5,dcc621fac77aa683287f6a0d61e10395" + "versions.yml:md5,8a5591085d36637f9378c24a7607d623" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:05:06.695419" + "timestamp": "2025-01-15T13:13:31.491648" } } \ No newline at end of file diff --git a/modules/nf-core/agat/convertspgff2tsv/environment.yml b/modules/nf-core/agat/convertspgff2tsv/environment.yml index 0410ee765ea..d9cd916872b 100644 --- a/modules/nf-core/agat/convertspgff2tsv/environment.yml +++ b/modules/nf-core/agat/convertspgff2tsv/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::agat=1.4.0 + - bioconda::agat=1.4.2 diff --git a/modules/nf-core/agat/convertspgff2tsv/main.nf b/modules/nf-core/agat/convertspgff2tsv/main.nf index a6f73b6c1e7..772c7bd0b8e 100644 --- a/modules/nf-core/agat/convertspgff2tsv/main.nf +++ b/modules/nf-core/agat/convertspgff2tsv/main.nf @@ -4,8 +4,8 @@ process AGAT_CONVERTSPGFF2TSV { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0' : - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -33,7 +33,6 @@ process AGAT_CONVERTSPGFF2TSV { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.tsv diff --git a/modules/nf-core/agat/convertspgff2tsv/tests/main.nf.test.snap b/modules/nf-core/agat/convertspgff2tsv/tests/main.nf.test.snap index 71ed6205cb1..50a428d6214 100644 --- a/modules/nf-core/agat/convertspgff2tsv/tests/main.nf.test.snap +++ b/modules/nf-core/agat/convertspgff2tsv/tests/main.nf.test.snap @@ -3,14 +3,14 @@ "content": [ [ "test.tsv", - "versions.yml:md5,b81565a6ff8911848806128b3bec8508" + "versions.yml:md5,1866660991c9d87acc28236b9d026438" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:06:55.853319" + "timestamp": "2025-01-15T13:13:51.099041" }, "sarscov2 - genome [gff3]": { "content": [ @@ -24,7 +24,7 @@ ] ], "1": [ - "versions.yml:md5,b81565a6ff8911848806128b3bec8508" + "versions.yml:md5,1866660991c9d87acc28236b9d026438" ], "tsv": [ [ @@ -35,14 +35,14 @@ ] ], "versions": [ - "versions.yml:md5,b81565a6ff8911848806128b3bec8508" + "versions.yml:md5,1866660991c9d87acc28236b9d026438" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:06:51.415395" + "timestamp": "2025-01-15T13:13:44.904263" } } \ No newline at end of file diff --git a/modules/nf-core/agat/convertspgxf2gxf/environment.yml b/modules/nf-core/agat/convertspgxf2gxf/environment.yml index 0410ee765ea..d9cd916872b 100644 --- a/modules/nf-core/agat/convertspgxf2gxf/environment.yml +++ b/modules/nf-core/agat/convertspgxf2gxf/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::agat=1.4.0 + - bioconda::agat=1.4.2 diff --git a/modules/nf-core/agat/convertspgxf2gxf/main.nf b/modules/nf-core/agat/convertspgxf2gxf/main.nf index b9a766830f7..6f1037a4e16 100644 --- a/modules/nf-core/agat/convertspgxf2gxf/main.nf +++ b/modules/nf-core/agat/convertspgxf2gxf/main.nf @@ -4,8 +4,8 @@ process AGAT_CONVERTSPGXF2GXF { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0' : - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gxf) @@ -34,7 +34,6 @@ process AGAT_CONVERTSPGXF2GXF { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.agat.gff diff --git a/modules/nf-core/agat/convertspgxf2gxf/tests/main.nf.test.snap b/modules/nf-core/agat/convertspgxf2gxf/tests/main.nf.test.snap index e89073f811a..334d4e7e29f 100644 --- a/modules/nf-core/agat/convertspgxf2gxf/tests/main.nf.test.snap +++ b/modules/nf-core/agat/convertspgxf2gxf/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,5ec6166c5c080ec4bc08a8fe55ada486" + "versions.yml:md5,f4b53c6032beda5caba586595bf2d411" ], "log": [ [ @@ -38,15 +38,15 @@ ] ], "versions": [ - "versions.yml:md5,5ec6166c5c080ec4bc08a8fe55ada486" + "versions.yml:md5,f4b53c6032beda5caba586595bf2d411" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-04-12T12:25:34.583294" + "timestamp": "2025-01-15T13:14:06.098295" }, "sarscov2 genome [gtf]": { "content": [ @@ -59,13 +59,13 @@ ] ], [ - "versions.yml:md5,5ec6166c5c080ec4bc08a8fe55ada486" + "versions.yml:md5,f4b53c6032beda5caba586595bf2d411" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-04-12T12:21:21.310464" + "timestamp": "2025-01-15T13:13:59.530345" } } \ No newline at end of file diff --git a/modules/nf-core/agat/spaddintrons/environment.yml b/modules/nf-core/agat/spaddintrons/environment.yml index dabc642a1b4..9c14047a91d 100644 --- a/modules/nf-core/agat/spaddintrons/environment.yml +++ b/modules/nf-core/agat/spaddintrons/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::agat=1.4.0" + - "bioconda::agat=1.4.2" diff --git a/modules/nf-core/agat/spaddintrons/main.nf b/modules/nf-core/agat/spaddintrons/main.nf index 3db8a4391c9..eaa194e0c28 100644 --- a/modules/nf-core/agat/spaddintrons/main.nf +++ b/modules/nf-core/agat/spaddintrons/main.nf @@ -4,8 +4,8 @@ process AGAT_SPADDINTRONS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0': - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0': + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -37,7 +37,6 @@ process AGAT_SPADDINTRONS { """ stub: - def args = task.ext.args ?: '' def prefix = meta.id ?: gff.getBaseName() output = "${prefix}.intron.gff" """ diff --git a/modules/nf-core/agat/spaddintrons/tests/main.nf.test.snap b/modules/nf-core/agat/spaddintrons/tests/main.nf.test.snap index 6420079dc0f..5e1e9b63ee9 100644 --- a/modules/nf-core/agat/spaddintrons/tests/main.nf.test.snap +++ b/modules/nf-core/agat/spaddintrons/tests/main.nf.test.snap @@ -7,42 +7,42 @@ { "id": "test" }, - "test.intron.gff:md5,d615a6dc3f54170198d585aea70f1834" + "test.intron.gff:md5,ce2e3c8d3e26d4676eb3474868134546" ] ], "1": [ - "versions.yml:md5,480dfe983a8b4469c1dff8b7a08d855d" + "versions.yml:md5,b2765a6bc10652f833965c022b025370" ], "gff": [ [ { "id": "test" }, - "test.intron.gff:md5,d615a6dc3f54170198d585aea70f1834" + "test.intron.gff:md5,ce2e3c8d3e26d4676eb3474868134546" ] ], "versions": [ - "versions.yml:md5,480dfe983a8b4469c1dff8b7a08d855d" + "versions.yml:md5,b2765a6bc10652f833965c022b025370" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:12:48.106654" + "timestamp": "2025-01-15T13:14:14.622685" }, "homo_sapiens - gtf - stub": { "content": [ [ "test.intron.gff", - "versions.yml:md5,480dfe983a8b4469c1dff8b7a08d855d" + "versions.yml:md5,b2765a6bc10652f833965c022b025370" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:12:52.535167" + "timestamp": "2025-01-15T13:14:21.098429" } } \ No newline at end of file diff --git a/modules/nf-core/agat/spfilterfeaturefromkilllist/environment.yml b/modules/nf-core/agat/spfilterfeaturefromkilllist/environment.yml index a6b5f2b9aa1..2c3daab3437 100644 --- a/modules/nf-core/agat/spfilterfeaturefromkilllist/environment.yml +++ b/modules/nf-core/agat/spfilterfeaturefromkilllist/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::agat=1.4.0" + - "bioconda::agat=1.4.2" diff --git a/modules/nf-core/agat/spfilterfeaturefromkilllist/main.nf b/modules/nf-core/agat/spfilterfeaturefromkilllist/main.nf index 4918ed7f340..3d2d59edb79 100644 --- a/modules/nf-core/agat/spfilterfeaturefromkilllist/main.nf +++ b/modules/nf-core/agat/spfilterfeaturefromkilllist/main.nf @@ -4,8 +4,8 @@ process AGAT_SPFILTERFEATUREFROMKILLLIST { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0': - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0': + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -39,7 +39,6 @@ process AGAT_SPFILTERFEATUREFROMKILLLIST { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" if( "$gff" == "${prefix}.gff" ) error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" """ diff --git a/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test b/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test index 82a3c307413..508c7c69f3c 100644 --- a/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test +++ b/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test @@ -55,7 +55,7 @@ nextflow_process { input[1] = kill_list_file.toPath() - input[2] = file(params.modules_testdata_base_path + 'generic/config/agat_config.yaml', checkIfExists: true) + input[2] = file('https://raw.githubusercontent.com/NBISweden/AGAT/refs/tags/v1.4.2/share/agat_config.yaml', checkIfExists: true) """ } } diff --git a/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test.snap b/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test.snap index 8322d0fd864..9d75f252ac4 100644 --- a/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test.snap +++ b/modules/nf-core/agat/spfilterfeaturefromkilllist/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ], "gff": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-03T15:32:54.707393" + "timestamp": "2025-01-15T13:19:40.478556" }, "sarscov2 - gff3 - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ], "gff": [ [ @@ -55,15 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-03T15:32:59.888053" + "timestamp": "2025-01-15T13:14:42.081828" }, "sarscov2 - gff3": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ], "gff": [ [ @@ -88,14 +88,14 @@ ] ], "versions": [ - "versions.yml:md5,e2962240799182aee69421c746be183a" + "versions.yml:md5,e71e26bc3059f3ebd8e3d49369c47f80" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-03T15:32:47.772624" + "timestamp": "2025-01-15T13:14:28.632249" } } \ No newline at end of file diff --git a/modules/nf-core/agat/spmergeannotations/environment.yml b/modules/nf-core/agat/spmergeannotations/environment.yml index a6b5f2b9aa1..2c3daab3437 100644 --- a/modules/nf-core/agat/spmergeannotations/environment.yml +++ b/modules/nf-core/agat/spmergeannotations/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::agat=1.4.0" + - "bioconda::agat=1.4.2" diff --git a/modules/nf-core/agat/spmergeannotations/main.nf b/modules/nf-core/agat/spmergeannotations/main.nf index e0861c08095..658b7a64ec7 100644 --- a/modules/nf-core/agat/spmergeannotations/main.nf +++ b/modules/nf-core/agat/spmergeannotations/main.nf @@ -4,8 +4,8 @@ process AGAT_SPMERGEANNOTATIONS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0': - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0': + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gffs) diff --git a/modules/nf-core/agat/spmergeannotations/tests/main.nf.test b/modules/nf-core/agat/spmergeannotations/tests/main.nf.test index 3f500fa875f..7e9c311de87 100644 --- a/modules/nf-core/agat/spmergeannotations/tests/main.nf.test +++ b/modules/nf-core/agat/spmergeannotations/tests/main.nf.test @@ -82,7 +82,7 @@ nextflow_process { ] ] - input[1] = file(params.modules_testdata_base_path + 'generic/config/agat_config.yaml', checkIfExists: true) + input[1] = file('https://raw.githubusercontent.com/NBISweden/AGAT/refs/tags/v1.4.2/share/agat_config.yaml', checkIfExists: true) """ } } @@ -113,7 +113,7 @@ nextflow_process { ] ] - input[1] = file(params.modules_testdata_base_path + 'generic/config/agat_config.yaml', checkIfExists: true) + input[1] = file('https://raw.githubusercontent.com/NBISweden/AGAT/refs/tags/v1.4.2/share/agat_config.yaml', checkIfExists: true) """ } } diff --git a/modules/nf-core/agat/spmergeannotations/tests/main.nf.test.snap b/modules/nf-core/agat/spmergeannotations/tests/main.nf.test.snap index 5b56cd9ae42..1a98aee6b65 100644 --- a/modules/nf-core/agat/spmergeannotations/tests/main.nf.test.snap +++ b/modules/nf-core/agat/spmergeannotations/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ], "gff": [ [ @@ -22,39 +22,39 @@ ] ], "versions": [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-15T13:23:28.495387" + "timestamp": "2025-01-15T13:15:02.335761" }, "versions": { "content": [ [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-15T13:23:23.220341" + "timestamp": "2025-01-15T13:14:54.668519" }, "versions_config": { "content": [ [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-15T13:25:34.519378" + "timestamp": "2025-01-15T13:40:57.359656" }, "candidatus_portiera_aleyrodidarum - multi_gffs - stub - config": { "content": [ @@ -68,7 +68,7 @@ ] ], "1": [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ], "gff": [ [ @@ -79,14 +79,14 @@ ] ], "versions": [ - "versions.yml:md5,bb159018d6a64ae51339f7c886ad28d7" + "versions.yml:md5,41c8654a8b48f0ce58a056ad3333ffeb" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-07-15T13:23:43.811463" + "timestamp": "2025-01-15T13:15:18.81972" } } \ No newline at end of file diff --git a/modules/nf-core/agat/spstatistics/environment.yml b/modules/nf-core/agat/spstatistics/environment.yml index 0410ee765ea..d9cd916872b 100644 --- a/modules/nf-core/agat/spstatistics/environment.yml +++ b/modules/nf-core/agat/spstatistics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::agat=1.4.0 + - bioconda::agat=1.4.2 diff --git a/modules/nf-core/agat/spstatistics/main.nf b/modules/nf-core/agat/spstatistics/main.nf index fd69d9c50ba..e09d80c7bda 100644 --- a/modules/nf-core/agat/spstatistics/main.nf +++ b/modules/nf-core/agat/spstatistics/main.nf @@ -4,8 +4,8 @@ process AGAT_SPSTATISTICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0' : - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -33,7 +33,6 @@ process AGAT_SPSTATISTICS { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.stats.txt diff --git a/modules/nf-core/agat/spstatistics/tests/main.nf.test.snap b/modules/nf-core/agat/spstatistics/tests/main.nf.test.snap index 41f917406ad..94d2974bd8c 100644 --- a/modules/nf-core/agat/spstatistics/tests/main.nf.test.snap +++ b/modules/nf-core/agat/spstatistics/tests/main.nf.test.snap @@ -3,14 +3,14 @@ "content": [ [ "test.stats.txt", - "versions.yml:md5,33c0e3094afa9dabe8f773db494bceb9" + "versions.yml:md5,abfe6cf2fa946d8a58f103ab37f05ac3" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:14:09.802927" + "timestamp": "2025-01-15T13:15:32.560646" }, "sarscov2 genome [gff]": { "content": [ @@ -20,29 +20,29 @@ { "id": "test" }, - "test.stats.txt:md5,0a27bb5a911615023decd8223ba67812" + "test.stats.txt:md5,49b9c37029287f60be88a209abd2f58d" ] ], "1": [ - "versions.yml:md5,33c0e3094afa9dabe8f773db494bceb9" + "versions.yml:md5,abfe6cf2fa946d8a58f103ab37f05ac3" ], "stats_txt": [ [ { "id": "test" }, - "test.stats.txt:md5,0a27bb5a911615023decd8223ba67812" + "test.stats.txt:md5,49b9c37029287f60be88a209abd2f58d" ] ], "versions": [ - "versions.yml:md5,33c0e3094afa9dabe8f773db494bceb9" + "versions.yml:md5,abfe6cf2fa946d8a58f103ab37f05ac3" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:14:05.328436" + "timestamp": "2025-01-15T13:15:26.444277" } } \ No newline at end of file diff --git a/modules/nf-core/agat/sqstatbasic/environment.yml b/modules/nf-core/agat/sqstatbasic/environment.yml index 0410ee765ea..d9cd916872b 100644 --- a/modules/nf-core/agat/sqstatbasic/environment.yml +++ b/modules/nf-core/agat/sqstatbasic/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::agat=1.4.0 + - bioconda::agat=1.4.2 diff --git a/modules/nf-core/agat/sqstatbasic/main.nf b/modules/nf-core/agat/sqstatbasic/main.nf index d9b98c6b54a..493dd18e3f9 100644 --- a/modules/nf-core/agat/sqstatbasic/main.nf +++ b/modules/nf-core/agat/sqstatbasic/main.nf @@ -4,8 +4,8 @@ process AGAT_SQSTATBASIC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/agat:1.4.0--pl5321hdfd78af_0' : - 'biocontainers/agat:1.4.0--pl5321hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" input: tuple val(meta), path(gff) @@ -33,7 +33,6 @@ process AGAT_SQSTATBASIC { """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.stats.txt diff --git a/modules/nf-core/agat/sqstatbasic/tests/main.nf.test.snap b/modules/nf-core/agat/sqstatbasic/tests/main.nf.test.snap index 10b75f48232..d8e08d3f093 100644 --- a/modules/nf-core/agat/sqstatbasic/tests/main.nf.test.snap +++ b/modules/nf-core/agat/sqstatbasic/tests/main.nf.test.snap @@ -3,14 +3,14 @@ "content": [ [ "test.stats.txt", - "versions.yml:md5,b5447c68fa61b8a04fdd7a95c4489775" + "versions.yml:md5,ef7436db11b81e3ed17e0bc7f6c0f621" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:16:10.187496" + "timestamp": "2025-01-15T13:15:44.883507" }, "sarscov2 - genome [gff3]": { "content": [ @@ -24,7 +24,7 @@ ] ], "1": [ - "versions.yml:md5,b5447c68fa61b8a04fdd7a95c4489775" + "versions.yml:md5,ef7436db11b81e3ed17e0bc7f6c0f621" ], "stats_txt": [ [ @@ -35,14 +35,14 @@ ] ], "versions": [ - "versions.yml:md5,b5447c68fa61b8a04fdd7a95c4489775" + "versions.yml:md5,ef7436db11b81e3ed17e0bc7f6c0f621" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T10:16:05.681598" + "timestamp": "2025-01-15T13:15:38.939816" } } \ No newline at end of file From 3e19c2116c92f21f983fa86e01d01c558473bacb Mon Sep 17 00:00:00 2001 From: Daniel Lundin Date: Wed, 15 Jan 2025 09:43:13 +0100 Subject: [PATCH 07/19] New module: taxonkit/lineage (#7303) --- .../nf-core/taxonkit/lineage/environment.yml | 7 ++ modules/nf-core/taxonkit/lineage/main.nf | 51 +++++++++ modules/nf-core/taxonkit/lineage/meta.yml | 54 +++++++++ .../taxonkit/lineage/tests/main.nf.test | 101 +++++++++++++++++ .../taxonkit/lineage/tests/main.nf.test.snap | 107 ++++++++++++++++++ 5 files changed, 320 insertions(+) create mode 100644 modules/nf-core/taxonkit/lineage/environment.yml create mode 100644 modules/nf-core/taxonkit/lineage/main.nf create mode 100644 modules/nf-core/taxonkit/lineage/meta.yml create mode 100644 modules/nf-core/taxonkit/lineage/tests/main.nf.test create mode 100644 modules/nf-core/taxonkit/lineage/tests/main.nf.test.snap diff --git a/modules/nf-core/taxonkit/lineage/environment.yml b/modules/nf-core/taxonkit/lineage/environment.yml new file mode 100644 index 00000000000..e68c6d6e46d --- /dev/null +++ b/modules/nf-core/taxonkit/lineage/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::taxonkit=0.18.0" diff --git a/modules/nf-core/taxonkit/lineage/main.nf b/modules/nf-core/taxonkit/lineage/main.nf new file mode 100644 index 00000000000..986a30523fd --- /dev/null +++ b/modules/nf-core/taxonkit/lineage/main.nf @@ -0,0 +1,51 @@ +process TAXONKIT_LINEAGE { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/taxonkit:0.18.0--h9ee0642_0': + 'biocontainers/taxonkit:0.18.0--h9ee0642_0' }" + + input: + tuple val(meta), val(taxid), path(taxidfile) + path taxdb + + output: + tuple val(meta), path("*.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}" + assert (!taxid && taxidfile) || (taxid && !taxidfile) + """ + taxonkit \\ + lineage \\ + $args \\ + --data-dir $taxdb \\ + --threads $task.cpus \\ + --out-file ${prefix}.tsv \\ + ${taxid? "<<< '$taxid'": taxidfile} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + taxonkit: \$( taxonkit version | sed 's/.* v//' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + taxonkit: \$( taxonkit version | sed 's/.* v//' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/taxonkit/lineage/meta.yml b/modules/nf-core/taxonkit/lineage/meta.yml new file mode 100644 index 00000000000..e8f049899cf --- /dev/null +++ b/modules/nf-core/taxonkit/lineage/meta.yml @@ -0,0 +1,54 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "taxonkit_lineage" +description: Convert taxonids to taxon lineages +keywords: + - taxonomy + - taxids + - taxon name + - conversion +tools: + - "taxonkit": + description: "A Cross-platform and Efficient NCBI Taxonomy Toolkit" + homepage: "https://bioinf.shenwei.me/taxonkit/" + documentation: "https://bioinf.shenwei.me/taxonkit/usage/#name2taxid" + tool_dev_url: "https://github.com/shenwei356/taxonkit" + doi: "10.1016/j.jgg.2021.03.006" + licence: ["MIT"] + identifier: biotools:taxonkit + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - taxid: + type: string + description: Taxon id to look up (provide either this or taxidfile, not both) + - taxidfile: + type: file + description: File with taxon ids to look up, each on their own line (provide + either this or name, not both; the file can contain other information, see the tool's docs) + - - taxdb: + type: file + description: Taxonomy database unpacked from ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz +output: + - tsv: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.tsv": + type: file + description: TSV file with added taxon lineages + pattern: "*.tsv" + - versions: + - "versions.yml": + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@erikrikarddaniel" +maintainers: + - "@erikrikarddaniel" diff --git a/modules/nf-core/taxonkit/lineage/tests/main.nf.test b/modules/nf-core/taxonkit/lineage/tests/main.nf.test new file mode 100644 index 00000000000..7f24746eaf2 --- /dev/null +++ b/modules/nf-core/taxonkit/lineage/tests/main.nf.test @@ -0,0 +1,101 @@ +nextflow_process { + + name "Test Process TAXONKIT_LINEAGE" + script "../main.nf" + process "TAXONKIT_LINEAGE" + + tag "modules" + tag "modules_nfcore" + tag "untar" + tag "taxonkit" + tag "taxonkit/lineage" + + setup { + run("UNTAR"){ + script "modules/nf-core/untar/main.nf" + process { + """ + input[0] = [ + [ id:'test' ], + file("ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz", checkIfExists: true) + ] + """ + } + } + } + + test("sarscov2 - taxonid") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + "2697049", + [] + ] + input[1] = UNTAR.out.untar.map{ it[1] } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - taxid list") { + + when { + process { + """ + input[0] = Channel.of( [ + [ id:'test', single_end:false ], // meta map + '' + ] ).combine( Channel.of("2697049").collectFile( name:'taxids.txt', newLine: true ) ) + input[1] = UNTAR.out.untar.map{ it[1] } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - taxid - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + "2697049", + [] + ] + input[1] = UNTAR.out.untar.map{ it[1] } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + +} diff --git a/modules/nf-core/taxonkit/lineage/tests/main.nf.test.snap b/modules/nf-core/taxonkit/lineage/tests/main.nf.test.snap new file mode 100644 index 00000000000..4cea6a4acfd --- /dev/null +++ b/modules/nf-core/taxonkit/lineage/tests/main.nf.test.snap @@ -0,0 +1,107 @@ +{ + "sarscov2 - taxid list": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,e77031f8b6f6865d9fa9525c55b7b4be" + ] + ], + "1": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,e77031f8b6f6865d9fa9525c55b7b4be" + ] + ], + "versions": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-14T15:44:11.506619" + }, + "sarscov2 - taxid - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-14T15:44:41.061875" + }, + "sarscov2 - taxonid": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,e77031f8b6f6865d9fa9525c55b7b4be" + ] + ], + "1": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,e77031f8b6f6865d9fa9525c55b7b4be" + ] + ], + "versions": [ + "versions.yml:md5,48f687591d0255bd02b4607e375a09f6" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-14T15:43:31.166225" + } +} \ No newline at end of file From 135782adb38530bd563e598f1a40287a3907658b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Wed, 15 Jan 2025 06:46:40 -0300 Subject: [PATCH 08/19] Added nf-tests to gprofile2/gost (#7265) * Added nf-tests to gprofile2/gost * Addressed PR comments * Removed gprofiler gost from pytest_modules.yml * Update datasets paths * Update base path of datasets * Format test input --------- Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- modules/nf-core/gprofiler2/gost/main.nf | 24 +- .../gost/templates/gprofiler2_gost.R | 2 +- .../gprofiler2/gost/tests/main.nf.test | 110 +++++++ .../gprofiler2/gost/tests/main.nf.test.snap | 303 ++++++++++++++++++ .../gprofiler2/gost/tests/nextflow.config | 3 + tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/gprofiler2/gost/main.nf | 34 -- .../nf-core/gprofiler2/gost/nextflow.config | 13 - .../modules/nf-core/gprofiler2/gost/test.yml | 47 --- 9 files changed, 439 insertions(+), 100 deletions(-) create mode 100644 modules/nf-core/gprofiler2/gost/tests/main.nf.test create mode 100644 modules/nf-core/gprofiler2/gost/tests/main.nf.test.snap create mode 100644 modules/nf-core/gprofiler2/gost/tests/nextflow.config delete mode 100644 tests/modules/nf-core/gprofiler2/gost/main.nf delete mode 100644 tests/modules/nf-core/gprofiler2/gost/nextflow.config delete mode 100644 tests/modules/nf-core/gprofiler2/gost/test.yml diff --git a/modules/nf-core/gprofiler2/gost/main.nf b/modules/nf-core/gprofiler2/gost/main.nf index acb18b938ac..8428f514b74 100644 --- a/modules/nf-core/gprofiler2/gost/main.nf +++ b/modules/nf-core/gprofiler2/gost/main.nf @@ -4,8 +4,8 @@ process GPROFILER2_GOST { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-3712554873398d849d0d11b22440f41febbc4ede:aa19bb8afc0ec6456a4f3cd650f7577c3bbdd4f3-0': - 'biocontainers/mulled-v2-3712554873398d849d0d11b22440f41febbc4ede:aa19bb8afc0ec6456a4f3cd650f7577c3bbdd4f3-0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e4/e4b0e10a72db4ad519c128c4e3cef6e10bc1a83440af31f105ab389a5532589a/data': + 'community.wave.seqera.io/library/r-ggplot2_r-gprofiler2:fab855ea9f680400' }" input: tuple val(meta), path(de_file) @@ -28,4 +28,24 @@ process GPROFILER2_GOST { script: template 'gprofiler2_gost.R' + + stub: + def prefix = task.ext.prefix ?: meta.id + """ + touch ${prefix}.gprofiler2.all_enriched_pathways.tsv + touch ${prefix}.gprofiler2.gost_results.rds + touch ${prefix}.gprofiler2.gostplot.png + touch ${prefix}.gprofiler2.gostplot.html + touch ${prefix}.gprofiler2.*.sub_enriched_pathways.tsv + touch ${prefix}.gprofiler2.*.sub_enriched_pathways.png + touch ${prefix}.ENSG_filtered.gmt + touch ${prefix}.R_sessionInfo.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-base: \$(echo \$(R --version 2>&1) | sed 's/^.*R version //; s/ .*\$//') + r-ggplot2: \$(Rscript -e "library(ggplot2); cat(as.character(packageVersion('ggplot2')))") + r-gprofiler2: \$(Rscript -e "library(gprofiler2); cat(as.character(packageVersion('gprofiler2')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/gprofiler2/gost/templates/gprofiler2_gost.R b/modules/nf-core/gprofiler2/gost/templates/gprofiler2_gost.R index 1de2a754094..0e2c0f1e621 100644 --- a/modules/nf-core/gprofiler2/gost/templates/gprofiler2_gost.R +++ b/modules/nf-core/gprofiler2/gost/templates/gprofiler2_gost.R @@ -449,7 +449,7 @@ gprofiler2.version <- as.character(packageVersion('gprofiler2')) ggplot2.version <- as.character(packageVersion('ggplot2')) writeLines( c( - '"\${task.process}":', + '"$task.process":', paste(' r-base:', r.version), paste(' r-ggplot2:', ggplot2.version), paste(' r-gprofiler2:', gprofiler2.version) diff --git a/modules/nf-core/gprofiler2/gost/tests/main.nf.test b/modules/nf-core/gprofiler2/gost/tests/main.nf.test new file mode 100644 index 00000000000..28e9e751395 --- /dev/null +++ b/modules/nf-core/gprofiler2/gost/tests/main.nf.test @@ -0,0 +1,110 @@ +nextflow_process { + + name "Test Process GPROFILER2_GOST" + script "../main.nf" + process "GPROFILER2_GOST" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "gprofiler" + tag "gprofiler_gost" + tag "gost" + tag "gprofiler2/gost" + tag "gprofiler2" + + test("test") { + + when { + params{ + gprofiler2_significant = true + gprofiler2_measure_underrepresentation = false + gprofiler2_correction_method = "gSCS" + gprofiler2_evcodes = false + gprofiler2_max_qval = 0.05 + gprofiler2_domain_scope = "annotated" + gprofiler2_min_diff = 1 + report_round_digits = 4 + gprofiler2_palette_name = "Blues" + differential_feature_id_column = "gene_id" + gprofiler2_token = null + gprofiler2_organism = "mmusculus" + gprofiler2_background_column = null + gprofiler2_sources = null + + module_args = [ + "--significant \"${params.gprofiler2_significant}\"", + "--measure_underrepresentation \"${params.gprofiler2_measure_underrepresentation}\"", + "--correction_method \"${params.gprofiler2_correction_method}\"", + "--evcodes \"${params.gprofiler2_evcodes}\"", + "--pval_threshold \"${params.gprofiler2_max_qval}\"", + "--domain_scope ${params.gprofiler2_domain_scope}", + "--min_diff \"${params.gprofiler2_min_diff}\"", + "--round_digits ${params.report_round_digits}", + "--palette_name \"${params.gprofiler2_palette_name}\"", + ((params.differential_feature_id_column == null) ? '' : "--de_id_column \"${params.differential_feature_id_column}\""), + ((params.gprofiler2_token == null) ? '' : "--token \"${params.gprofiler2_token}\""), + ((params.gprofiler2_organism == null) ? '' : "--organism \"${params.gprofiler2_organism}\""), + ((params.gprofiler2_background_column == null) ? '' : "--background_column \"${params.gprofiler2_background_column}\""), + ((params.gprofiler2_sources == null) ? '' : "--sources \"${params.gprofiler2_sources}\"") + ].join(' ').trim() + } + process { + """ + input[0] = [ + ['id':'Condition_genotype_WT_KO', 'variable':'Condition genotype', 'reference':'WT', 'target':'KO', 'blocking':'batch'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Condition_genotype_WT_KO.deseq2.results_filtered.tsv", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/mus_musculus/gene_set_analysis/mh.all.v2022.1.Mm.symbols.gmt", checkIfExists: true) + input[2] = file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/study.filtered.tsv", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.all_enrich, + process.out.plot_png, + process.out.sub_enrich, + process.out.sub_plot, + process.out.filtered_gmt, + process.out.session_info.collect{ meta,session_info -> file(session_info).name }, //assert unstable file + process.out.versions, + process.out.plot_html.collect{ meta,html -> file(html).name }, //assert unstable file + process.out.rds.collect{ meta,rds -> file(rds).name } //assert unstable file + ).match() + } + ) + } + } + + test("stub") { + + options "-stub" + + when { + params{ + module_args = null + } + process { + """ + input[0] = [ + ['id':'Condition_genotype_WT_KO', 'variable':'Condition genotype', 'reference':'WT', 'target':'KO', 'blocking':'batch'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Condition_genotype_WT_KO.deseq2.results_filtered.tsv", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/mus_musculus/gene_set_analysis/mh.all.v2022.1.Mm.symbols.gmt", checkIfExists: true) + input[2] = file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/study.filtered.tsv", checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/gprofiler2/gost/tests/main.nf.test.snap b/modules/nf-core/gprofiler2/gost/tests/main.nf.test.snap new file mode 100644 index 00000000000..0a052d5cca3 --- /dev/null +++ b/modules/nf-core/gprofiler2/gost/tests/main.nf.test.snap @@ -0,0 +1,303 @@ +{ + "test": { + "content": [ + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.all_enriched_pathways.tsv:md5,1134a02ca061c463bcbff277eefbfb19" + ] + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gostplot.png:md5,4b83d1bcf7dc9dbf6cef3d545e440c5b" + ] + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + [ + "Condition_genotype_WT_KO.gprofiler2.GO:BP.sub_enriched_pathways.tsv:md5,d527b94cdb160070bcaa0bfb0cecf914", + "Condition_genotype_WT_KO.gprofiler2.GO:CC.sub_enriched_pathways.tsv:md5,ef418c3f06d50446317928e37ec8ddfb", + "Condition_genotype_WT_KO.gprofiler2.GO:MF.sub_enriched_pathways.tsv:md5,e460d4917feb0b64d334a528f59e0731", + "Condition_genotype_WT_KO.gprofiler2.HP.sub_enriched_pathways.tsv:md5,865d8f092503552831c51d775a98c6eb", + "Condition_genotype_WT_KO.gprofiler2.KEGG.sub_enriched_pathways.tsv:md5,413724002abe683f376ea914d4f21ade", + "Condition_genotype_WT_KO.gprofiler2.MIRNA.sub_enriched_pathways.tsv:md5,fce81051d7af955ddb2925ba2da9ff57", + "Condition_genotype_WT_KO.gprofiler2.REAC.sub_enriched_pathways.tsv:md5,e89e1876698ea644671a0720c85f4dbb", + "Condition_genotype_WT_KO.gprofiler2.TF.sub_enriched_pathways.tsv:md5,e272217ec7fcf01ea463ab8bcc8335cf", + "Condition_genotype_WT_KO.gprofiler2.WP.sub_enriched_pathways.tsv:md5,fdd1efa836d85bb127e933e925290cba" + ] + ] + ], + [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + [ + "Condition_genotype_WT_KO.gprofiler2.GO:BP.sub_enriched_pathways.png:md5,d89498267e985adf0ad1266e2deb9f48", + "Condition_genotype_WT_KO.gprofiler2.GO:CC.sub_enriched_pathways.png:md5,e04cdd51b200671613254d021d3af242", + "Condition_genotype_WT_KO.gprofiler2.GO:MF.sub_enriched_pathways.png:md5,33ea0652d78111978677acde0fe7f807", + "Condition_genotype_WT_KO.gprofiler2.HP.sub_enriched_pathways.png:md5,6c040ac4baba73ae5637b00650e6aea1", + "Condition_genotype_WT_KO.gprofiler2.KEGG.sub_enriched_pathways.png:md5,fbd232c4eeced95ceda60b43a02dbe1f", + "Condition_genotype_WT_KO.gprofiler2.MIRNA.sub_enriched_pathways.png:md5,956880d3bf4852a06b0ffaaaba565732", + "Condition_genotype_WT_KO.gprofiler2.REAC.sub_enriched_pathways.png:md5,0e8f9217d275668986771dc7fede3170", + "Condition_genotype_WT_KO.gprofiler2.TF.sub_enriched_pathways.png:md5,0697164bc87e95e6508db966df94e01e", + "Condition_genotype_WT_KO.gprofiler2.WP.sub_enriched_pathways.png:md5,09976762c7541ff9e5009e8763986845" + ] + ] + ], + [ + + ], + [ + "R_sessionInfo.log" + ], + [ + "versions.yml:md5,7ff4ab78463faf97bba7e698ed9a9069" + ], + [ + "Condition_genotype_WT_KO.gprofiler2.gostplot.html" + ], + [ + "Condition_genotype_WT_KO.gprofiler2.gost_results.rds" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-09T13:43:18.555455129" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gost_results.rds:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gostplot.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gostplot.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.*.sub_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.*.sub_enriched_pathways.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ENSG_filtered.gmt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + "versions.yml:md5,7ff4ab78463faf97bba7e698ed9a9069" + ], + "all_enrich": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.all_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "filtered_gmt": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.ENSG_filtered.gmt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "plot_html": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gostplot.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "plot_png": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gostplot.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "rds": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.gost_results.rds:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "session_info": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.R_sessionInfo.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sub_enrich": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.*.sub_enriched_pathways.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sub_plot": [ + [ + { + "id": "Condition_genotype_WT_KO", + "variable": "Condition genotype", + "reference": "WT", + "target": "KO", + "blocking": "batch" + }, + "Condition_genotype_WT_KO.gprofiler2.*.sub_enriched_pathways.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,7ff4ab78463faf97bba7e698ed9a9069" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-09T13:43:36.462475057" + } +} \ No newline at end of file diff --git a/modules/nf-core/gprofiler2/gost/tests/nextflow.config b/modules/nf-core/gprofiler2/gost/tests/nextflow.config new file mode 100644 index 00000000000..1a77344d7ff --- /dev/null +++ b/modules/nf-core/gprofiler2/gost/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = params.module_args +} \ No newline at end of file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 1dfd96fce1e..38525e7577f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -191,9 +191,6 @@ gfastats: gget/gget: - modules/nf-core/gget/gget/** - tests/modules/nf-core/gget/gget/** -gprofiler2/gost: - - modules/nf-core/gprofiler2/gost/** - - tests/modules/nf-core/gprofiler2/gost/** graphmap2/align: - modules/nf-core/graphmap2/align/** - tests/modules/nf-core/graphmap2/align/** diff --git a/tests/modules/nf-core/gprofiler2/gost/main.nf b/tests/modules/nf-core/gprofiler2/gost/main.nf deleted file mode 100644 index d99cba085d3..00000000000 --- a/tests/modules/nf-core/gprofiler2/gost/main.nf +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { GPROFILER2_GOST } from '../../../../../modules/nf-core/gprofiler2/gost/main.nf' - -workflow test_gprofiler2_gost { - contrasts = [ [ id:'test', reference:'r', target:'t' ], 'test', 'r', 't' ] - input = [ - [ id:'test_r_t', reference:'r', target:'t' ], // meta map - file(params.test_data['mus_musculus']['genome']['deseq_results'], checkIfExists: true) - ] - - GPROFILER2_GOST ( - input, - [], - [] - ) -} - -workflow test_gprofiler2_gost_backgroundmatrix { - contrasts = [ [ id:'test', reference:'r', target:'t' ], 'test', 'r', 't' ] - input = [ - [ id:'test_r_t', reference:'r', target:'t' ], // meta map - file(params.test_data['mus_musculus']['genome']['deseq_results'], checkIfExists: true) - ] - ch_background = Channel.from(file(params.test_data['mus_musculus']['genome']['rnaseq_matrix'], checkIfExists: true)) - - GPROFILER2_GOST ( - input, - [], - ch_background - ) -} diff --git a/tests/modules/nf-core/gprofiler2/gost/nextflow.config b/tests/modules/nf-core/gprofiler2/gost/nextflow.config deleted file mode 100644 index 1ace5afdd2f..00000000000 --- a/tests/modules/nf-core/gprofiler2/gost/nextflow.config +++ /dev/null @@ -1,13 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: 'test_gprofiler2_gost:GPROFILER2_GOST' { - ext.args = { "--organism mmusculus --sources \"CORUM,REAC\" --palette_name Greens" } - } - - withName: 'test_gprofiler2_gost_backgroundmatrix:GPROFILER2_GOST' { - ext.args = { "--organism mmusculus --sources \"KEGG\" --significant false --background_column gene_id" } - } - -} \ No newline at end of file diff --git a/tests/modules/nf-core/gprofiler2/gost/test.yml b/tests/modules/nf-core/gprofiler2/gost/test.yml deleted file mode 100644 index ee223a2103b..00000000000 --- a/tests/modules/nf-core/gprofiler2/gost/test.yml +++ /dev/null @@ -1,47 +0,0 @@ -- name: gprofiler2 gost test_gprofiler2_gost - command: nextflow run ./tests/modules/nf-core/gprofiler2/gost -entry test_gprofiler2_gost -c ./tests/config/nextflow.config - tags: - - gprofiler2 - - gprofiler2/gost - files: - - path: output/gprofiler2/R_sessionInfo.log - contains: ["ggplot2_3.4.3", "gprofiler2_0.2.2"] - - path: output/gprofiler2/test_r_t.gprofiler2.CORUM.sub_enriched_pathways.png - - path: output/gprofiler2/test_r_t.gprofiler2.CORUM.sub_enriched_pathways.tsv - md5sum: b0619e5e1424ac18f6cb52dac87248aa - - path: output/gprofiler2/test_r_t.gprofiler2.REAC.sub_enriched_pathways.png - - path: output/gprofiler2/test_r_t.gprofiler2.REAC.sub_enriched_pathways.tsv - md5sum: 0e4f2887e74e00fe8d0ad93771342f4b - - path: output/gprofiler2/test_r_t.gprofiler2.all_enriched_pathways.tsv - md5sum: bbfa48be9e30e9898ecf63709bb99331 - - path: output/gprofiler2/test_r_t.gprofiler2.gostplot.html - contains: - [ - "Neurotransmitter receptors and postsynaptic signal transmission", - "The phototransduction cascade", - "Muscle contraction", - ] - - path: output/gprofiler2/test_r_t.gprofiler2.gostplot.png - - path: output/gprofiler2/gprofiler_full_mmusculus.CORUM_REAC.ENSG_filtered.gmt - md5sum: 455f9b94af175e78cc551cf7f79c3203 - - path: output/gprofiler2/test_r_t.gprofiler2.gost_results.rds - - path: output/gprofiler2/versions.yml - -- name: gprofiler2 gost test_gprofiler2_gost_backgroundmatrix - command: nextflow run ./tests/modules/nf-core/gprofiler2/gost -entry test_gprofiler2_gost_backgroundmatrix -c ./tests/config/nextflow.config - tags: - - gprofiler2 - - gprofiler2/gost - files: - - path: output/gprofiler2/R_sessionInfo.log - contains: ["ggplot2_3.4.3", "gprofiler2_0.2.2"] - - path: output/gprofiler2/test_r_t.gprofiler2.KEGG.sub_enriched_pathways.png - - path: output/gprofiler2/test_r_t.gprofiler2.KEGG.sub_enriched_pathways.tsv - md5sum: fa7c0457da981ca00b209fadafe419bd - - path: output/gprofiler2/test_r_t.gprofiler2.all_enriched_pathways.tsv - md5sum: fd611ba563ed8ec2c27dbf8d99b869dd - - path: output/gprofiler2/test_r_t.gprofiler2.gostplot.html # This plot is empty, will not add contains - - path: output/gprofiler2/test_r_t.gprofiler2.gostplot.png - - path: output/gprofiler2/gprofiler_full_mmusculus.KEGG.ENSG_filtered.gmt - - path: output/gprofiler2/test_r_t.gprofiler2.gost_results.rds - - path: output/gprofiler2/versions.yml From 09639b0d93b1cbf38f09f381d8476573c84d1ce8 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 15 Jan 2025 12:13:40 +0100 Subject: [PATCH 09/19] ADD CATPACK_DOWNLOAD (#7253) * Add CAT_pack download * Fixl inting * Fix parameter * Fix linting * Fixing linting and address comments from @jasmezz * Update modules/nf-core/catpack/download/main.nf Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> * Update correct edam ontology * Fix meta.yaml --------- Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Co-authored-by: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com> --- .../nf-core/catpack/download/environment.yml | 7 +++ modules/nf-core/catpack/download/main.nf | 47 +++++++++++++++++ modules/nf-core/catpack/download/meta.yml | 51 +++++++++++++++++++ .../catpack/download/tests/main.nf.test | 37 ++++++++++++++ .../catpack/download/tests/main.nf.test.snap | 41 +++++++++++++++ modules/nf-core/coptr/estimate/meta.yml | 4 +- 6 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 modules/nf-core/catpack/download/environment.yml create mode 100644 modules/nf-core/catpack/download/main.nf create mode 100644 modules/nf-core/catpack/download/meta.yml create mode 100644 modules/nf-core/catpack/download/tests/main.nf.test create mode 100644 modules/nf-core/catpack/download/tests/main.nf.test.snap diff --git a/modules/nf-core/catpack/download/environment.yml b/modules/nf-core/catpack/download/environment.yml new file mode 100644 index 00000000000..20d286ab5b7 --- /dev/null +++ b/modules/nf-core/catpack/download/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::cat=6.0.1" diff --git a/modules/nf-core/catpack/download/main.nf b/modules/nf-core/catpack/download/main.nf new file mode 100644 index 00000000000..89bb97dee38 --- /dev/null +++ b/modules/nf-core/catpack/download/main.nf @@ -0,0 +1,47 @@ +process CATPACK_DOWNLOAD { + tag "${meta.id}" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/cat:6.0.1--hdfd78af_0' + : 'biocontainers/cat:6.0.1--hdfd78af_0'}" + + input: + tuple val(meta), val(db) + + output: + tuple val(meta), path("${prefix}/"), emit: rawdb + 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}" + """ + CAT_pack \\ + download \\ + ${args} \\ + --db ${db} + -o ${prefix}/ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + catpack: \$(CAT_pack --version | sed 's/CAT_pack pack v//g;s/ .*//g') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir ${prefix}/ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + catpack: \$(CAT_pack --version | sed 's/CAT_pack pack v//g;s/ .*//g') + END_VERSIONS + """ +} diff --git a/modules/nf-core/catpack/download/meta.yml b/modules/nf-core/catpack/download/meta.yml new file mode 100644 index 00000000000..302461f6b70 --- /dev/null +++ b/modules/nf-core/catpack/download/meta.yml @@ -0,0 +1,51 @@ +--- +name: "catpack_download" +description: Downloads the required files for either Nr or GTDB for building into a CAT database +keywords: + - taxonomic classification + - classification + - database + - download +tools: + - "catpack": + description: "CAT/BAT: tool for taxonomic classification of contigs and metagenome-assembled genomes (MAGs)" + homepage: "https://github.com/MGXlab/CAT_pack" + documentation: "https://github.com/MGXlab/CAT_pack" + tool_dev_url: "https://github.com/MGXlab/CAT_pack" + doi: "10.1186/s13059-019-1817-x" + licence: ["MIT"] + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - db: + type: string + description: Which database to download + pattern: "nr|gtdb" + +output: + - rawdb: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "${prefix}/": + type: directory + description: Directory containing all the required NCBI Nr or GTDB database files required for building into a CAT database + pattern: "${db}/" + ontologies: + - edam: "http://edamontology.org/data_1049" + - versions: + - "versions.yml": + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@jfy133" +maintainers: + - "@jfy133" diff --git a/modules/nf-core/catpack/download/tests/main.nf.test b/modules/nf-core/catpack/download/tests/main.nf.test new file mode 100644 index 00000000000..cc9aae700bf --- /dev/null +++ b/modules/nf-core/catpack/download/tests/main.nf.test @@ -0,0 +1,37 @@ +nextflow_process { + + name "Test Process CATPACK_DOWNLOAD" + script "../main.nf" + process "CATPACK_DOWNLOAD" + + tag "modules" + tag "modules_nfcore" + tag "catpack" + tag "catpack/download" + + // Only stub because module downloads extremely large + test("nr - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'nr', single_end:false ], // meta map + 'nr', + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/catpack/download/tests/main.nf.test.snap b/modules/nf-core/catpack/download/tests/main.nf.test.snap new file mode 100644 index 00000000000..aa21368768b --- /dev/null +++ b/modules/nf-core/catpack/download/tests/main.nf.test.snap @@ -0,0 +1,41 @@ +{ + "nr - stub": { + "content": [ + { + "0": [ + [ + { + "id": "nr", + "single_end": false + }, + [ + + ] + ] + ], + "1": [ + "versions.yml:md5,e1493fe75b3b8cc2bc0cbd1d5ddfad44" + ], + "rawdb": [ + [ + { + "id": "nr", + "single_end": false + }, + [ + + ] + ] + ], + "versions": [ + "versions.yml:md5,e1493fe75b3b8cc2bc0cbd1d5ddfad44" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-19T16:19:22.533589236" + } +} \ No newline at end of file diff --git a/modules/nf-core/coptr/estimate/meta.yml b/modules/nf-core/coptr/estimate/meta.yml index 2afb599563a..531f95d4817 100644 --- a/modules/nf-core/coptr/estimate/meta.yml +++ b/modules/nf-core/coptr/estimate/meta.yml @@ -28,7 +28,7 @@ input: description: Python pickle file containing coverage maps pattern: "*.pkl" ontologies: - - edam: "http://edamontology.org/format_4002" + - edam: "http://edamontology.org/format_4002" output: - ptr: @@ -42,7 +42,7 @@ output: description: CSV table with rows as reference genomes, columns samples and entries as log2 PTR pattern: "*.csv" ontologies: - - edam: "http://edamontology.org/format_3752" + - edam: "http://edamontology.org/format_3752" - versions: - "versions.yml": From 89a5ca7c9c8a5ed66029ca1e9a1222690b0be7e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:44:27 -0300 Subject: [PATCH 10/19] Add nftests to validatefomcomponents and staticdifferential (#7264) * Add nftests to validatefomcomponents and staticdifferential * Remove tags.yml * Added missing tool to environment.yml * Remove pytests * Update datasets paths * Update base path * Adjust indentation of test components --------- Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- .../staticdifferential/environment.yml | 1 + .../shinyngs/staticdifferential/main.nf | 18 +- .../staticdifferential/tests/main.nf.test | 122 +++++++++++++ .../tests/main.nf.test.snap | 114 ++++++++++++ .../staticdifferential/tests/nextflow.config | 3 + .../validatefomcomponents/environment.yml | 1 + .../shinyngs/validatefomcomponents/main.nf | 20 ++- .../validatefomcomponents/tests/main.nf.test | 80 +++++++++ .../tests/main.nf.test.snap | 164 ++++++++++++++++++ .../tests/nextflow.config | 3 + tests/config/pytest_modules.yml | 6 - .../shinyngs/staticdifferential/main.nf | 37 ---- .../staticdifferential/nextflow.config | 13 -- .../shinyngs/staticdifferential/test.yml | 18 -- .../shinyngs/validatefomcomponents/main.nf | 32 ---- .../validatefomcomponents/nextflow.config | 5 - .../shinyngs/validatefomcomponents/test.yml | 27 --- 17 files changed, 522 insertions(+), 142 deletions(-) create mode 100644 modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test create mode 100644 modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test.snap create mode 100644 modules/nf-core/shinyngs/staticdifferential/tests/nextflow.config create mode 100644 modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test create mode 100644 modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test.snap create mode 100644 modules/nf-core/shinyngs/validatefomcomponents/tests/nextflow.config delete mode 100644 tests/modules/nf-core/shinyngs/staticdifferential/main.nf delete mode 100644 tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config delete mode 100644 tests/modules/nf-core/shinyngs/staticdifferential/test.yml delete mode 100644 tests/modules/nf-core/shinyngs/validatefomcomponents/main.nf delete mode 100644 tests/modules/nf-core/shinyngs/validatefomcomponents/nextflow.config delete mode 100644 tests/modules/nf-core/shinyngs/validatefomcomponents/test.yml diff --git a/modules/nf-core/shinyngs/staticdifferential/environment.yml b/modules/nf-core/shinyngs/staticdifferential/environment.yml index 89b523b2df8..1c8b55326a4 100644 --- a/modules/nf-core/shinyngs/staticdifferential/environment.yml +++ b/modules/nf-core/shinyngs/staticdifferential/environment.yml @@ -3,3 +3,4 @@ channels: - bioconda dependencies: - bioconda::r-shinyngs=2.0.0 + - conda-forge::r-base=4.3.3 diff --git a/modules/nf-core/shinyngs/staticdifferential/main.nf b/modules/nf-core/shinyngs/staticdifferential/main.nf index 40582d66536..ea33769e540 100644 --- a/modules/nf-core/shinyngs/staticdifferential/main.nf +++ b/modules/nf-core/shinyngs/staticdifferential/main.nf @@ -4,8 +4,8 @@ process SHINYNGS_STATICDIFFERENTIAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/r-shinyngs:2.0.0--r43hdfd78af_0' : - 'biocontainers/r-shinyngs:2.0.0--r43hdfd78af_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/2b/2b43cb5832431a3d581f3abdca0f5d45fa814b8a4b2c4e49f12296d2e07629fd/data' : + 'community.wave.seqera.io/library/r-shinyngs:2.0.0--feeacac14bcf4bb0' }" input: tuple val(meta), path(differential_result) // Differential info: contrast and differential stats @@ -37,4 +37,18 @@ process SHINYNGS_STATICDIFFERENTIAL { r-shinyngs: \$(Rscript -e "library(shinyngs); cat(as.character(packageVersion('shinyngs')))") END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: meta.id + """ + mkdir -p $prefix/png && mkdir $prefix/html + touch $prefix/png/volcano.png + touch $prefix/html/volcano.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-base: \$(echo \$(R --version 2>&1) | sed 's/^.*R version //; s/ .*\$//') + r-shinyngs: \$(Rscript -e "library(shinyngs); cat(as.character(packageVersion('shinyngs')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test b/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test new file mode 100644 index 00000000000..e92aea84d57 --- /dev/null +++ b/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test @@ -0,0 +1,122 @@ +nextflow_process { + + name "Test Process SHINYNGS_STATICDIFFERENTIAL" + script "../main.nf" + process "SHINYNGS_STATICDIFFERENTIAL" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "shinyngs" + tag "shinyngs/staticdifferential" + + test("test") { + + when { + params{ + features_id_col = "gene_id" + reference = "mCherry" + target = "hND6" + differential_fc_column = "log2FoldChange" + differential_qval_column = "padj" + differential_feature_id_column = "gene_id" + differential_min_fold_change = 2.0 + differential_max_qval = 0.05 + differential_foldchanges_logged = true + differential_palette_name = "Set1" + module_args = [ + "--feature_id_col \"${params.features_id_col}\"", + "--reference_level \"${params.reference}\"", + "--treatment_level \"${params.target}\"", + "--fold_change_col \"${params.differential_fc_column}\"", + "--p_value_column \"${params.differential_qval_column}\"", + "--diff_feature_id_col \"${params.differential_feature_id_column}\"", + "--fold_change_threshold \"${params.differential_min_fold_change}\"", + "--p_value_threshold \"${params.differential_max_qval}\"", + "--unlog_foldchanges \"${params.differential_foldchanges_logged}\"", + "--palette_name \"${params.differential_palette_name}\"" + ].join(' ').trim() + } + process { + """ + input[0] = [ + ['id':'treatment_mCherry_hND6_', 'variable':'treatment', 'reference':'mCherry', 'target':'hND6', 'blocking':''], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/treatment_mCherry_hND6_.deseq2.results.tsv", checkIfExists:true) + ] + input[1] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.sample_metadata.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Mus_musculus.anno.tsv", checkIfExists:true), + [ + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/all.normalised_counts.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/all.vst.tsv", checkIfExists:true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("stub") { + + options "-stub" + + when { + params{ + features_id_col = "gene_id" + reference = "mCherry" + target = "hND6" + differential_fc_column = "log2FoldChange" + differential_qval_column = "padj" + differential_feature_id_column = "gene_id" + differential_min_fold_change = 2.0 + differential_max_qval = 0.05 + differential_foldchanges_logged = true + differential_palette_name = "Set1" + module_args = [ + "--feature_id_col \"${params.features_id_col}\"", + "--reference_level \"${params.reference}\"", + "--treatment_level \"${params.target}\"", + "--fold_change_col \"${params.differential_fc_column}\"", + "--p_value_column \"${params.differential_qval_column}\"", + "--diff_feature_id_col \"${params.differential_feature_id_column}\"", + "--fold_change_threshold \"${params.differential_min_fold_change}\"", + "--p_value_threshold \"${params.differential_max_qval}\"", + "--unlog_foldchanges \"${params.differential_foldchanges_logged}\"", + "--palette_name \"${params.differential_palette_name}\"" + ].join(' ').trim() + } + process { + """ + input[0] = [ + ['id':'treatment_mCherry_hND6_', 'variable':'treatment', 'reference':'mCherry', 'target':'hND6', 'blocking':''], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/treatment_mCherry_hND6_.deseq2.results.tsv", checkIfExists:true) + ] + input[1] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.sample_metadata.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Mus_musculus.anno.tsv", checkIfExists:true), + [ + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/all.normalised_counts.tsv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/all.vst.tsv", checkIfExists:true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test.snap b/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test.snap new file mode 100644 index 00000000000..a5b59e754f2 --- /dev/null +++ b/modules/nf-core/shinyngs/staticdifferential/tests/main.nf.test.snap @@ -0,0 +1,114 @@ +{ + "test": { + "content": [ + { + "0": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.png:md5,32d82a790e028f9476972a7f38190430" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,907105596993b0b0eda8989fba5a3a29" + ], + "versions": [ + "versions.yml:md5,907105596993b0b0eda8989fba5a3a29" + ], + "volcanos_html": [ + + ], + "volcanos_png": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.png:md5,32d82a790e028f9476972a7f38190430" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-26T16:03:53.372133087" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,907105596993b0b0eda8989fba5a3a29" + ], + "versions": [ + "versions.yml:md5,907105596993b0b0eda8989fba5a3a29" + ], + "volcanos_html": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "volcanos_png": [ + [ + { + "id": "treatment_mCherry_hND6_", + "variable": "treatment", + "reference": "mCherry", + "target": "hND6", + "blocking": "" + }, + "volcano.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-26T16:04:08.867324031" + } +} \ No newline at end of file diff --git a/modules/nf-core/shinyngs/staticdifferential/tests/nextflow.config b/modules/nf-core/shinyngs/staticdifferential/tests/nextflow.config new file mode 100644 index 00000000000..ad3d36ef5c9 --- /dev/null +++ b/modules/nf-core/shinyngs/staticdifferential/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = params.module_args +} diff --git a/modules/nf-core/shinyngs/validatefomcomponents/environment.yml b/modules/nf-core/shinyngs/validatefomcomponents/environment.yml index 89b523b2df8..1c8b55326a4 100644 --- a/modules/nf-core/shinyngs/validatefomcomponents/environment.yml +++ b/modules/nf-core/shinyngs/validatefomcomponents/environment.yml @@ -3,3 +3,4 @@ channels: - bioconda dependencies: - bioconda::r-shinyngs=2.0.0 + - conda-forge::r-base=4.3.3 diff --git a/modules/nf-core/shinyngs/validatefomcomponents/main.nf b/modules/nf-core/shinyngs/validatefomcomponents/main.nf index bedab3e66b1..32bfb274331 100644 --- a/modules/nf-core/shinyngs/validatefomcomponents/main.nf +++ b/modules/nf-core/shinyngs/validatefomcomponents/main.nf @@ -4,8 +4,8 @@ process SHINYNGS_VALIDATEFOMCOMPONENTS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/r-shinyngs:2.0.0--r43hdfd78af_0' : - 'biocontainers/r-shinyngs:2.0.0--r43hdfd78af_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/2b/2b43cb5832431a3d581f3abdca0f5d45fa814b8a4b2c4e49f12296d2e07629fd/data' : + 'community.wave.seqera.io/library/r-shinyngs:2.0.0--feeacac14bcf4bb0' }" input: tuple val(meta), path(sample), path(assay_files) @@ -44,4 +44,20 @@ process SHINYNGS_VALIDATEFOMCOMPONENTS { r-shinyngs: \$(Rscript -e "library(shinyngs); cat(as.character(packageVersion('shinyngs')))") END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: meta.id + """ + mkdir $prefix + touch $prefix/${prefix}.sample_metadata.tsv + touch $prefix/${prefix}.feature_metadata.tsv + touch $prefix/${prefix}.assay.tsv + touch $prefix/${prefix}.contrasts_file.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-base: \$(echo \$(R --version 2>&1) | sed 's/^.*R version //; s/ .*\$//') + r-shinyngs: \$(Rscript -e "library(shinyngs); cat(as.character(packageVersion('shinyngs')))") + END_VERSIONS + """ } diff --git a/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test b/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test new file mode 100644 index 00000000000..2c7ebb8af15 --- /dev/null +++ b/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test @@ -0,0 +1,80 @@ +nextflow_process { + + name "Test Process SHINYNGS_VALIDATEFOMCOMPONENTS" + script "../main.nf" + process "SHINYNGS_VALIDATEFOMCOMPONENTS" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "shinyngs" + tag "shinyngs/validatefomcomponents" + + test("test") { + + when { + params{ + observations_id_col = "sample" + features_id_col = "gene_id" + + module_args = "--sample_id_col '${params.observations_id_col}' --feature_id_col '${params.features_id_col}'" + } + process { + """ + input[0] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.csv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv", checkIfExists:true) + ] + input[1] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Mus_musculus.anno.tsv", checkIfExists:true) + ] + input[2] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.contrasts.csv", checkIfExists:true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("stub") { + + options "-stub" + + when { + params{ + observations_id_col = "sample" + features_id_col = "gene_id" + + module_args = "--sample_id_col '${params.observations_id_col}' --feature_id_col '${params.features_id_col}'" + } + process { + """ + input[0] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.csv", checkIfExists:true), + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv", checkIfExists:true) + ] + input[1] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/Mus_musculus.anno.tsv", checkIfExists:true) + ] + input[2] = [['id':'SRP254919'], + file(params.modules_testdata_base_path + "genomics/mus_musculus/rnaseq_expression/SRP254919.contrasts.csv", checkIfExists:true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test.snap b/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test.snap new file mode 100644 index 00000000000..7b005d0043a --- /dev/null +++ b/modules/nf-core/shinyngs/validatefomcomponents/tests/main.nf.test.snap @@ -0,0 +1,164 @@ +{ + "test": { + "content": [ + { + "0": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.samplesheet.sample_metadata.tsv:md5,7c5233cf34fd8eaf7071f21f6fcac7d8" + ] + ], + "1": [ + [ + { + "id": "SRP254919" + }, + "Mus_musculus.anno.feature_metadata.tsv:md5,1b6a2af23f009f4669401678fe0947bb" + ] + ], + "2": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv:md5,0c2224f6c33af1fe93c3b1382b3e05ce" + ] + ], + "3": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.contrasts.contrasts_file.tsv:md5,e0980240404f48216aedb63b5094029f" + ] + ], + "4": [ + "versions.yml:md5,93d5c94e00214eeba1e2c4b0ef52b1ad" + ], + "assays": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv:md5,0c2224f6c33af1fe93c3b1382b3e05ce" + ] + ], + "contrasts": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.contrasts.contrasts_file.tsv:md5,e0980240404f48216aedb63b5094029f" + ] + ], + "feature_meta": [ + [ + { + "id": "SRP254919" + }, + "Mus_musculus.anno.feature_metadata.tsv:md5,1b6a2af23f009f4669401678fe0947bb" + ] + ], + "sample_meta": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.samplesheet.sample_metadata.tsv:md5,7c5233cf34fd8eaf7071f21f6fcac7d8" + ] + ], + "versions": [ + "versions.yml:md5,93d5c94e00214eeba1e2c4b0ef52b1ad" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-26T17:27:38.287530077" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.sample_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.feature_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.assay.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.contrasts_file.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,93d5c94e00214eeba1e2c4b0ef52b1ad" + ], + "assays": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.assay.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "contrasts": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.contrasts_file.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "feature_meta": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.feature_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sample_meta": [ + [ + { + "id": "SRP254919" + }, + "SRP254919.sample_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,93d5c94e00214eeba1e2c4b0ef52b1ad" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-26T17:27:54.985123298" + } +} \ No newline at end of file diff --git a/modules/nf-core/shinyngs/validatefomcomponents/tests/nextflow.config b/modules/nf-core/shinyngs/validatefomcomponents/tests/nextflow.config new file mode 100644 index 00000000000..ad3d36ef5c9 --- /dev/null +++ b/modules/nf-core/shinyngs/validatefomcomponents/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = params.module_args +} diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 38525e7577f..68fdc8ce90e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -456,12 +456,6 @@ sgdemux: shigeifinder: - modules/nf-core/shigeifinder/** - tests/modules/nf-core/shigeifinder/** -shinyngs/staticdifferential: - - modules/nf-core/shinyngs/staticdifferential/** - - tests/modules/nf-core/shinyngs/staticdifferential/** -shinyngs/validatefomcomponents: - - modules/nf-core/shinyngs/validatefomcomponents/** - - tests/modules/nf-core/shinyngs/validatefomcomponents/** snapaligner/align: - modules/nf-core/snapaligner/align/** - tests/modules/nf-core/snapaligner/align/** diff --git a/tests/modules/nf-core/shinyngs/staticdifferential/main.nf b/tests/modules/nf-core/shinyngs/staticdifferential/main.nf deleted file mode 100644 index 93a9a5a1ef1..00000000000 --- a/tests/modules/nf-core/shinyngs/staticdifferential/main.nf +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SHINYNGS_STATICDIFFERENTIAL } from '../../../../../modules/nf-core/shinyngs/staticdifferential/main.nf' - -workflow test_shinyngs_staticdifferential { - - expression_sample_sheet = file(params.test_data['mus_musculus']['genome']['rnaseq_samplesheet'], checkIfExists: true) - expression_feature_meta = file(params.test_data['mus_musculus']['genome']['rnaseq_genemeta'], checkIfExists: true) - expression_matrix_file = file(params.test_data['mus_musculus']['genome']['rnaseq_matrix'], checkIfExists: true) - expression_differential = file(params.test_data['mus_musculus']['genome']['deseq_results'], checkIfExists: true) - - ch_differential = [ [ "id":"hND6_vs_mCherry", "reference":"mCherry", "target":"hND6" ], expression_differential ] - ch_feature_obs_matrix = [ [ "id":"SRP254919" ], expression_sample_sheet, expression_feature_meta, expression_matrix_file ] - - SHINYNGS_STATICDIFFERENTIAL ( - ch_differential, - ch_feature_obs_matrix - ) -} - -workflow test_shinyngs_staticdifferential_html { - - expression_sample_sheet = file(params.test_data['mus_musculus']['genome']['rnaseq_samplesheet'], checkIfExists: true) - expression_feature_meta = file(params.test_data['mus_musculus']['genome']['rnaseq_genemeta'], checkIfExists: true) - expression_matrix_file = file(params.test_data['mus_musculus']['genome']['rnaseq_matrix'], checkIfExists: true) - expression_differential = file(params.test_data['mus_musculus']['genome']['deseq_results'], checkIfExists: true) - - ch_differential = [ [ "id":"hND6_vs_mCherry", "reference":"mCherry", "target":"hND6" ], expression_differential ] - ch_feature_obs_matrix = [ [ "id":"SRP254919" ], expression_sample_sheet, expression_feature_meta, expression_matrix_file ] - - SHINYNGS_STATICDIFFERENTIAL ( - ch_differential, - ch_feature_obs_matrix - ) -} diff --git a/tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config b/tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config deleted file mode 100644 index 76af9440350..00000000000 --- a/tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config +++ /dev/null @@ -1,13 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: 'test_shinyngs_staticdifferential:SHINYNGS_STATICDIFFERENTIAL' { - ext.prefix = { "${meta.id}_test" } - ext.args = { "--reference_level $meta.reference --treatment_level $meta.target" } - } - withName: 'test_shinyngs_staticdifferential_html:SHINYNGS_STATICDIFFERENTIAL' { - ext.prefix = { "${meta.id}_test" } - ext.args = { "--reference_level $meta.reference --treatment_level $meta.target --write_html" } - } -} diff --git a/tests/modules/nf-core/shinyngs/staticdifferential/test.yml b/tests/modules/nf-core/shinyngs/staticdifferential/test.yml deleted file mode 100644 index 2ba4e9a3534..00000000000 --- a/tests/modules/nf-core/shinyngs/staticdifferential/test.yml +++ /dev/null @@ -1,18 +0,0 @@ -- name: shinyngs staticdifferential test_shinyngs_staticdifferential - command: nextflow run ./tests/modules/nf-core/shinyngs/staticdifferential -entry test_shinyngs_staticdifferential -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config - tags: - - shinyngs/staticdifferential - - shinyngs - files: - - path: output/shinyngs/hND6_vs_mCherry_test/png/volcano.png - -- name: shinyngs staticdifferential test_shinyngs_staticdifferential_html - command: nextflow run ./tests/modules/nf-core/shinyngs/staticdifferential -entry test_shinyngs_staticdifferential_html -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/shinyngs/staticdifferential/nextflow.config - tags: - - shinyngs/staticdifferential - - shinyngs - files: - - path: output/shinyngs/hND6_vs_mCherry_test/html/volcano.html - contains: - ["-4.0303380084000002,-0.062830270600000002,-0.36022681569999998,-0.60824564309999996", "higher in mCherry"] - - path: output/shinyngs/hND6_vs_mCherry_test/png/volcano.png diff --git a/tests/modules/nf-core/shinyngs/validatefomcomponents/main.nf b/tests/modules/nf-core/shinyngs/validatefomcomponents/main.nf deleted file mode 100644 index 25c8b039f56..00000000000 --- a/tests/modules/nf-core/shinyngs/validatefomcomponents/main.nf +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SHINYNGS_VALIDATEFOMCOMPONENTS } from '../../../../../modules/nf-core/shinyngs/validatefomcomponents/main.nf' - -workflow test_shinyngs_validatefomcomponents { - - expression_sample_sheet = file(params.test_data['mus_musculus']['genome']['rnaseq_samplesheet'], checkIfExists: true) - expression_matrix_file = file(params.test_data['mus_musculus']['genome']['rnaseq_matrix'], checkIfExists: true) - expression_feature_meta = file(params.test_data['mus_musculus']['genome']['rnaseq_genemeta'], checkIfExists: true) - expression_contrasts = file(params.test_data['mus_musculus']['genome']['rnaseq_contrasts'], checkIfExists: true) - - SHINYNGS_VALIDATEFOMCOMPONENTS ( - [ [ "id":"SRP254919" ], expression_sample_sheet, expression_matrix_file ], - [ [ "id":"SRP254919" ], expression_feature_meta ], - [ [ "id":"SRP254919" ], expression_contrasts ] - ) -} - -workflow test_shinyngs_validatefomcomponents_no_feature { - - expression_sample_sheet = file(params.test_data['mus_musculus']['genome']['rnaseq_samplesheet'], checkIfExists: true) - expression_matrix_file = file(params.test_data['mus_musculus']['genome']['rnaseq_matrix'], checkIfExists: true) - expression_contrasts = file(params.test_data['mus_musculus']['genome']['rnaseq_contrasts'], checkIfExists: true) - - SHINYNGS_VALIDATEFOMCOMPONENTS ( - [ [ "id":"SRP254919" ], expression_sample_sheet, expression_matrix_file ], - [ [ "id":"SRP254919" ], [] ], - [ [ "id":"SRP254919" ], expression_contrasts ] - ) -} diff --git a/tests/modules/nf-core/shinyngs/validatefomcomponents/nextflow.config b/tests/modules/nf-core/shinyngs/validatefomcomponents/nextflow.config deleted file mode 100644 index 50f50a7a357..00000000000 --- a/tests/modules/nf-core/shinyngs/validatefomcomponents/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/shinyngs/validatefomcomponents/test.yml b/tests/modules/nf-core/shinyngs/validatefomcomponents/test.yml deleted file mode 100644 index 300274dfd61..00000000000 --- a/tests/modules/nf-core/shinyngs/validatefomcomponents/test.yml +++ /dev/null @@ -1,27 +0,0 @@ -- name: shinyngs validatefomcomponents test_shinyngs_validatefomcomponents - command: nextflow run ./tests/modules/nf-core/shinyngs/validatefomcomponents -entry test_shinyngs_validatefomcomponents -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/shinyngs/validatefomcomponents/nextflow.config - tags: - - shinyngs/validatefomcomponents - - shinyngs - files: - - path: output/shinyngs/SRP254919/SRP254919.contrasts.contrasts_file.tsv - md5sum: e0980240404f48216aedb63b5094029f - - path: output/shinyngs/SRP254919/SRP254919.gene_meta.feature_metadata.tsv - md5sum: 9307606b9a78af90f85b06531d190b55 - - path: output/shinyngs/SRP254919/SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv - md5sum: 0c2224f6c33af1fe93c3b1382b3e05ce - - path: output/shinyngs/SRP254919/SRP254919.samplesheet.sample_metadata.tsv - md5sum: 7c5233cf34fd8eaf7071f21f6fcac7d8 - -- name: shinyngs validatefomcomponents test_shinyngs_validatefomcomponents_no_feature - command: nextflow run ./tests/modules/nf-core/shinyngs/validatefomcomponents -entry test_shinyngs_validatefomcomponents_no_feature -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/shinyngs/validatefomcomponents/nextflow.config - tags: - - shinyngs/validatefomcomponents - - shinyngs - files: - - path: output/shinyngs/SRP254919/SRP254919.contrasts.contrasts_file.tsv - md5sum: e0980240404f48216aedb63b5094029f - - path: output/shinyngs/SRP254919/SRP254919.salmon.merged.gene_counts.top1000cov.assay.tsv - md5sum: 0c2224f6c33af1fe93c3b1382b3e05ce - - path: output/shinyngs/SRP254919/SRP254919.samplesheet.sample_metadata.tsv - md5sum: 7c5233cf34fd8eaf7071f21f6fcac7d8 From 0853f51ddb0bdf66594e7058267f1278769795a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20B=C3=A4uerle?= <45968370+famosab@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:56:17 +0100 Subject: [PATCH 11/19] try porting mmseqs/search to nf-test (#7231) * try porting to nf-test * remove from pytest * Apply suggestions from code review Co-authored-by: Jim Downie <19718667+prototaxites@users.noreply.github.com> * fix stub * remove pytest * Working except for linting * Only check the names * Fix meta for linting --------- Co-authored-by: Jim Downie <19718667+prototaxites@users.noreply.github.com> Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- modules/nf-core/mmseqs/easysearch/main.nf | 5 +- modules/nf-core/mmseqs/search/main.nf | 16 ++-- modules/nf-core/mmseqs/search/meta.yml | 2 +- .../nf-core/mmseqs/search/tests/main.nf.test | 95 +++++++++++++++++++ .../mmseqs/search/tests/main.nf.test.snap | 88 +++++++++++++++++ .../mmseqs/search/tests/nextflow.config | 8 ++ tests/config/pytest_modules.yml | 3 - tests/modules/nf-core/mmseqs/search/main.nf | 23 ----- .../nf-core/mmseqs/search/nextflow.config | 17 ---- tests/modules/nf-core/mmseqs/search/test.yml | 11 --- 10 files changed, 199 insertions(+), 69 deletions(-) create mode 100644 modules/nf-core/mmseqs/search/tests/main.nf.test create mode 100644 modules/nf-core/mmseqs/search/tests/main.nf.test.snap create mode 100644 modules/nf-core/mmseqs/search/tests/nextflow.config delete mode 100644 tests/modules/nf-core/mmseqs/search/main.nf delete mode 100644 tests/modules/nf-core/mmseqs/search/nextflow.config delete mode 100644 tests/modules/nf-core/mmseqs/search/test.yml diff --git a/modules/nf-core/mmseqs/easysearch/main.nf b/modules/nf-core/mmseqs/easysearch/main.nf index c934f186cbd..bdb50e759eb 100644 --- a/modules/nf-core/mmseqs/easysearch/main.nf +++ b/modules/nf-core/mmseqs/easysearch/main.nf @@ -47,11 +47,8 @@ process MMSEQS_EASYSEARCH { """ stub: - def args = task.ext.args ?: '' - def args2 = task.ext.args2 ?: "*.dbtype" - def prefix = task.ext.prefix ?: "${meta.id}" """ - ${prefix}.tsv + touch ${prefix}.tsv cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/search/main.nf b/modules/nf-core/mmseqs/search/main.nf index ed37960f413..29844235ecb 100644 --- a/modules/nf-core/mmseqs/search/main.nf +++ b/modules/nf-core/mmseqs/search/main.nf @@ -1,19 +1,18 @@ - process MMSEQS_SEARCH { tag "$meta.id" label 'process_high' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mmseqs2:14.7e284--pl5321h6a68c12_2': - 'biocontainers/mmseqs2:14.7e284--pl5321h6a68c12_2' }" + 'https://depot.galaxyproject.org/singularity/mmseqs2:15.6f452--pl5321h6a68c12_0': + 'biocontainers/mmseqs2:15.6f452--pl5321h6a68c12_0' }" input: tuple val(meta), path(db_query) tuple val(meta2), path(db_target) output: - tuple val(meta), path("${prefix}"), emit: db_search + tuple val(meta), path("${prefix}/"), emit: db_search path "versions.yml" , emit: versions when: @@ -40,9 +39,7 @@ process MMSEQS_SEARCH { ${prefix}/${prefix} \\ tmp1 \\ $args \\ - --threads ${task.cpus} \\ - --compressed 1 - + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -51,8 +48,7 @@ process MMSEQS_SEARCH { """ stub: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" if ("$db_query" == "${prefix}" || "$db_target" == "${prefix}" ) error "Input and output names of databases are the same, set prefix in module configuration to disambiguate!" """ mkdir -p $prefix @@ -62,7 +58,7 @@ process MMSEQS_SEARCH { cat <<-END_VERSIONS > versions.yml "${task.process}": - mmseqs: \$(mmseqs | grep 'Version' | sed 's/MMseqs2 Version: /') + mmseqs: \$(mmseqs | grep 'Version' | sed 's/MMseqs2 Version: //') END_VERSIONS """ } diff --git a/modules/nf-core/mmseqs/search/meta.yml b/modules/nf-core/mmseqs/search/meta.yml index e722862ad75..8490c8baf5a 100644 --- a/modules/nf-core/mmseqs/search/meta.yml +++ b/modules/nf-core/mmseqs/search/meta.yml @@ -43,7 +43,7 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'test', single_end:false ]` - - ${prefix}: + - ${prefix}/: type: directory description: an MMseqs2 database with search results - versions: diff --git a/modules/nf-core/mmseqs/search/tests/main.nf.test b/modules/nf-core/mmseqs/search/tests/main.nf.test new file mode 100644 index 00000000000..684ca1d11ff --- /dev/null +++ b/modules/nf-core/mmseqs/search/tests/main.nf.test @@ -0,0 +1,95 @@ +nextflow_process { + + name "Test Process MMSEQS_SEARCH" + script "../main.nf" + process "MMSEQS_SEARCH" + + tag "modules" + tag "modules_nfcore" + tag "mmseqs" + tag "mmseqs/search" + tag "mmseqs/createdb" + + config "./nextflow.config" + + setup { + run("MMSEQS_CREATEDB", alias: "MMSEQS_CREATEDB_QUERY") { + script "../../../mmseqs/createdb/main.nf" + process { + """ + input[0] = [ [ id:'test_query', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) + ] + """ + } + } + + run("MMSEQS_CREATEDB", alias: "MMSEQS_CREATEDB_TARGET") { + script "../../../mmseqs/createdb/main.nf" + process { + """ + input[0] = [ [ id:'test_target', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/scaffolds.fasta', checkIfExists: true) + ] + """ + } + } + } + + test("sarscov2 - test-search") { + + when { + params { + module_args = '--remove-tmp-files 1 --search-type 2' + module_prefix = 'test_output_search' + } + process { + """ + input[0] = MMSEQS_CREATEDB_QUERY.out.db + input[1] = MMSEQS_CREATEDB_TARGET.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.db_search.get(0).get(1)).list().sort(), //second file is empty so fails linting + path(process.out.versions[0]).yaml + ).match() } + ) + } + + } + + test("sarscov2 - test-search - stub") { + + options "-stub" + + when { + params { + module_args = '--remove-tmp-files 1 --search-type 2' + module_prefix = 'test_output_search' + } + process { + """ + input[0] = MMSEQS_CREATEDB_QUERY.out.db + input[1] = MMSEQS_CREATEDB_TARGET.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out, + path(process.out.versions[0]).yaml + ).match() } + ) + } + + } + +} diff --git a/modules/nf-core/mmseqs/search/tests/main.nf.test.snap b/modules/nf-core/mmseqs/search/tests/main.nf.test.snap new file mode 100644 index 00000000000..0bffd3bbb47 --- /dev/null +++ b/modules/nf-core/mmseqs/search/tests/main.nf.test.snap @@ -0,0 +1,88 @@ +{ + "sarscov2 - test-search": { + "content": [ + [ + "test_output_search.0", + "test_output_search.1", + "test_output_search.dbtype", + "test_output_search.index" + ], + { + "MMSEQS_SEARCH": { + "mmseqs": "15.6f452" + } + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T09:38:30.159081322" + }, + "sarscov2 - test-search - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test_query", + "single_end": true + }, + [ + "test_output_search.0:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.2:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.3:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.4:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.5:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.6:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.7:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.8:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.9:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.dbtype:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.index:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,2568126b1f8eb47999b31cd5f3b9c68e" + ], + "db_search": [ + [ + { + "id": "test_query", + "single_end": true + }, + [ + "test_output_search.0:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.2:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.3:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.4:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.5:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.6:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.7:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.8:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.9:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.dbtype:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_output_search.index:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,2568126b1f8eb47999b31cd5f3b9c68e" + ] + }, + { + "MMSEQS_SEARCH": { + "mmseqs": "15.6f452" + } + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T09:28:46.406630911" + } +} \ No newline at end of file diff --git a/modules/nf-core/mmseqs/search/tests/nextflow.config b/modules/nf-core/mmseqs/search/tests/nextflow.config new file mode 100644 index 00000000000..cbc671e0253 --- /dev/null +++ b/modules/nf-core/mmseqs/search/tests/nextflow.config @@ -0,0 +1,8 @@ +process { + + withName: MMSEQS_SEARCH { + ext.prefix = params.module_prefix + ext.args = params.module_args + } + +} diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 68fdc8ce90e..a2300fb29f3 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -323,9 +323,6 @@ mitohifi/mitohifi: mmseqs/easysearch: - modules/nf-core/mmseqs/easysearch/** - tests/modules/nf-core/mmseqs/easysearch/** -mmseqs/search: - - modules/nf-core/mmseqs/search/** - - tests/modules/nf-core/mmseqs/search/** mmseqs/tsv2exprofiledb: - modules/nf-core/mmseqs/tsv2exprofiledb/** - tests/modules/nf-core/mmseqs/tsv2exprofiledb/** diff --git a/tests/modules/nf-core/mmseqs/search/main.nf b/tests/modules/nf-core/mmseqs/search/main.nf deleted file mode 100644 index 18942f951bb..00000000000 --- a/tests/modules/nf-core/mmseqs/search/main.nf +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env nextflow -nextflow.enable.dsl = 2 - -include { MMSEQS_CREATEDB as MMSEQS_CREATEDB_QUERY } from '../../../../../modules/nf-core/mmseqs/createdb/main.nf' -include { MMSEQS_CREATEDB as MMSEQS_CREATEDB_TARGET } from '../../../../../modules/nf-core/mmseqs/createdb/main.nf' -include { MMSEQS_SEARCH } from '../../../../../modules/nf-core/mmseqs/search/main.nf' - -workflow test_mmseqs_search { - - input_query = [ - [ id:'test_query', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) - ] - ch_query_db = MMSEQS_CREATEDB_QUERY ( input_query ).db - - input_target = [ - [ id:'test_target', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['scaffolds_fasta'], checkIfExists: true) - ] - ch_target_db = MMSEQS_CREATEDB_TARGET( input_target ).db - - MMSEQS_SEARCH ( ch_query_db, ch_target_db ) -} diff --git a/tests/modules/nf-core/mmseqs/search/nextflow.config b/tests/modules/nf-core/mmseqs/search/nextflow.config deleted file mode 100644 index 38bdbf37d1c..00000000000 --- a/tests/modules/nf-core/mmseqs/search/nextflow.config +++ /dev/null @@ -1,17 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: MMSEQS_SEARCH { - ext.prefix = "test_output_search" - ext.args = '--remove-tmp-files 1 --search-type 2' - } - - withName: MMSEQS_CREATEDB_TARGET { - publishDir = [ enabled: false ] - } - - withName: MMSEQS_CREATEDB_QUERY { - publishDir = [ enabled: false ] - } -} diff --git a/tests/modules/nf-core/mmseqs/search/test.yml b/tests/modules/nf-core/mmseqs/search/test.yml deleted file mode 100644 index 91bbfde3938..00000000000 --- a/tests/modules/nf-core/mmseqs/search/test.yml +++ /dev/null @@ -1,11 +0,0 @@ -- name: mmseqs search test_mmseqs_search - command: nextflow run ./tests/modules/nf-core/mmseqs/search -entry test_mmseqs_search -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/mmseqs/search/nextflow.config - tags: - - mmseqs - - mmseqs/search - files: - - path: output/mmseqs/test_output_search/test_output_search.0 - - path: output/mmseqs/test_output_search/test_output_search.1 - - path: output/mmseqs/test_output_search/test_output_search.dbtype - - path: output/mmseqs/test_output_search/test_output_search.index - - path: output/mmseqs/versions.yml From 1085d447bfeeecfe895f605eff41f5c2b96e518e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlia=20Mir=20Pedrol?= Date: Wed, 15 Jan 2025 15:02:25 +0100 Subject: [PATCH 12/19] =?UTF-8?q?run=20CI=20on=20github=20runners=20until?= =?UTF-8?q?=20self-hosted=20issues=20are=20solved=20=F0=9F=98=A2=20=20(#73?= =?UTF-8?q?11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit run CI on github runners until self-hosted issues are solved --- .github/workflows/lint.yml | 2 +- .github/workflows/nf-test.yml | 2 +- .github/workflows/pytest-workflow.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7e3c53763cc..a343cc64bf8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -93,7 +93,7 @@ jobs: echo ${{ steps.module_names.outputs.result }} nf-core-lint-modules: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ${{ github.event.inputs.runners || 'ubuntu-latest' }} name: nf-core lint modules needs: nf-core-changes if: ${{ (needs.nf-core-changes.outputs.modules == 'true') }} diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index ebfdedd2019..9774004aa51 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -75,7 +75,7 @@ jobs: echo ${{ steps.outputs.outputs.modules }} echo ${{ steps.outputs.outputs.subworkflows }} nf-test: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ${{ github.event.inputs.runners || 'ubuntu-latest' }} name: "Test | ${{ matrix.profile }} | ${{ matrix.shard }}" needs: nf-test-changes if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }} diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index f61541dc9ab..0540ddf7940 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -62,7 +62,7 @@ jobs: echo ${{ steps.tags.outputs.subworkflows }} pytest: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ${{ github.event.inputs.runners || 'ubuntu-latest' }} name: pytest needs: [pytest-changes] if: needs.pytest-changes.outputs.tags != '[]' From 0170ccdea31137debef464b9ef301feef10848ca Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 Jan 2025 04:00:52 +1300 Subject: [PATCH 13/19] Added agat/agatconvertbed2gff (#7306) * Added agat/agatconvertbed2gff * Fixed snapshot * Fixed module name --- .../agat/convertbed2gff/environment.yml | 7 ++ modules/nf-core/agat/convertbed2gff/main.nf | 45 ++++++++++++ modules/nf-core/agat/convertbed2gff/meta.yml | 49 +++++++++++++ .../agat/convertbed2gff/tests/main.nf.test | 58 +++++++++++++++ .../convertbed2gff/tests/main.nf.test.snap | 70 +++++++++++++++++++ 5 files changed, 229 insertions(+) create mode 100644 modules/nf-core/agat/convertbed2gff/environment.yml create mode 100644 modules/nf-core/agat/convertbed2gff/main.nf create mode 100644 modules/nf-core/agat/convertbed2gff/meta.yml create mode 100644 modules/nf-core/agat/convertbed2gff/tests/main.nf.test create mode 100644 modules/nf-core/agat/convertbed2gff/tests/main.nf.test.snap diff --git a/modules/nf-core/agat/convertbed2gff/environment.yml b/modules/nf-core/agat/convertbed2gff/environment.yml new file mode 100644 index 00000000000..2c3daab3437 --- /dev/null +++ b/modules/nf-core/agat/convertbed2gff/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::agat=1.4.2" diff --git a/modules/nf-core/agat/convertbed2gff/main.nf b/modules/nf-core/agat/convertbed2gff/main.nf new file mode 100644 index 00000000000..2ce3e67d5b5 --- /dev/null +++ b/modules/nf-core/agat/convertbed2gff/main.nf @@ -0,0 +1,45 @@ +process AGAT_CONVERTBED2GFF { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/agat:1.4.2--pl5321hdfd78af_0' : + 'biocontainers/agat:1.4.2--pl5321hdfd78af_0' }" + + input: + tuple val(meta), path(bed) + + output: + tuple val(meta), path("*.gff") , emit: gff + 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}" + """ + agat_convert_bed2gff.pl \\ + --bed $bed \\ + --output ${prefix}.gff \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + agat: \$(agat_convert_bed2gff.pl --help | sed -n 's/.*(AGAT) - Version: \\(.*\\) .*/\\1/p') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.gff + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + agat: \$(agat_convert_bed2gff.pl --help | sed -n 's/.*(AGAT) - Version: \\(.*\\) .*/\\1/p') + END_VERSIONS + """ +} diff --git a/modules/nf-core/agat/convertbed2gff/meta.yml b/modules/nf-core/agat/convertbed2gff/meta.yml new file mode 100644 index 00000000000..57bd3d34227 --- /dev/null +++ b/modules/nf-core/agat/convertbed2gff/meta.yml @@ -0,0 +1,49 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: agat_convertbed2gff +description: | + Takes a bed12 file and converts to a GFF3 file +keywords: + - genome + - bed + - gff + - conversion +tools: + - agat: + description: "AGAT is a toolkit for manipulation and getting information from + GFF/GTF files" + homepage: "https://github.com/NBISweden/AGAT" + documentation: "https://agat.readthedocs.io/" + tool_dev_url: "https://github.com/NBISweden/AGAT" + doi: "10.5281/zenodo.3552717" + licence: ["GPL v3"] + identifier: biotools:AGAT +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Input bed12 file + pattern: "*.bed" +output: + - gff: + - meta: + type: map + description: Groovy Map containing sample information + - "*.gff": + type: file + description: Output GFF3 file + pattern: "*.{gff}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/modules/nf-core/agat/convertbed2gff/tests/main.nf.test b/modules/nf-core/agat/convertbed2gff/tests/main.nf.test new file mode 100644 index 00000000000..1799dab28c4 --- /dev/null +++ b/modules/nf-core/agat/convertbed2gff/tests/main.nf.test @@ -0,0 +1,58 @@ +nextflow_process { + + name "Test Process AGAT_CONVERTBED2GFF" + script "../main.nf" + process "AGAT_CONVERTBED2GFF" + + tag "modules" + tag "modules_nfcore" + tag "agat" + tag "agat/convertbed2gff" + + test("sarscov2 - bed12") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/test.bed12', 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.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/test.bed12', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/agat/convertbed2gff/tests/main.nf.test.snap b/modules/nf-core/agat/convertbed2gff/tests/main.nf.test.snap new file mode 100644 index 00000000000..4ecc20d7676 --- /dev/null +++ b/modules/nf-core/agat/convertbed2gff/tests/main.nf.test.snap @@ -0,0 +1,70 @@ +{ + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,ccfb13a5b261f660922e1ed845e68cbc" + ], + "gff": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ccfb13a5b261f660922e1ed845e68cbc" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T14:02:09.48826" + }, + "sarscov2 - bed12": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.gff:md5,4e5a23a6babac6d5b1bcfa06c5b12518" + ] + ], + "1": [ + "versions.yml:md5,ccfb13a5b261f660922e1ed845e68cbc" + ], + "gff": [ + [ + { + "id": "test" + }, + "test.gff:md5,4e5a23a6babac6d5b1bcfa06c5b12518" + ] + ], + "versions": [ + "versions.yml:md5,ccfb13a5b261f660922e1ed845e68cbc" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T14:02:03.549345" + } +} \ No newline at end of file From 411a94f9cbb9219bb6ff778e5edcf95975ab28b2 Mon Sep 17 00:00:00 2001 From: Jasmin Frangenberg <73216762+jasmezz@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:42:33 +0000 Subject: [PATCH 14/19] Fix ext.args in `mmseqs/createtsv` (#7307) * Fix ext.args variables * Update snapshot --- modules/nf-core/mmseqs/createtsv/main.nf | 6 +++--- modules/nf-core/mmseqs/createtsv/tests/main.nf.test.snap | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/nf-core/mmseqs/createtsv/main.nf b/modules/nf-core/mmseqs/createtsv/main.nf index d5afc0694ae..4a3fd37a8c5 100644 --- a/modules/nf-core/mmseqs/createtsv/main.nf +++ b/modules/nf-core/mmseqs/createtsv/main.nf @@ -22,9 +22,9 @@ process MMSEQS_CREATETSV { script: def args = task.ext.args ?: '' - def args2 = task.ext.args ?: "*.dbtype" // database generated by mmyseqs cluster | search | taxonomy | ... - def args3 = task.ext.args ?: "*.dbtype" // database generated by mmyseqs/createdb - def args4 = task.ext.args ?: "*.dbtype" // database generated by mmyseqs/createdb + def args2 = task.ext.args2 ?: "*.dbtype" // database generated by mmyseqs cluster | search | taxonomy | ... + def args3 = task.ext.args3 ?: "*.dbtype" // database generated by mmyseqs/createdb + def args4 = task.ext.args4 ?: "*.dbtype" // database generated by mmyseqs/createdb def prefix = task.ext.prefix ?: "${meta.id}" """ diff --git a/modules/nf-core/mmseqs/createtsv/tests/main.nf.test.snap b/modules/nf-core/mmseqs/createtsv/tests/main.nf.test.snap index 6192fa16a83..ad31aa06b6e 100644 --- a/modules/nf-core/mmseqs/createtsv/tests/main.nf.test.snap +++ b/modules/nf-core/mmseqs/createtsv/tests/main.nf.test.snap @@ -113,7 +113,7 @@ "id": "test_result", "single_end": true }, - "test_result.tsv:md5,4e7ba50ce2879660dc6595286bf0d097" + "test_result.tsv:md5,c81449fb936b76aad6f925b965e84bc5" ] ], "1": [ @@ -125,7 +125,7 @@ "id": "test_result", "single_end": true }, - "test_result.tsv:md5,4e7ba50ce2879660dc6595286bf0d097" + "test_result.tsv:md5,c81449fb936b76aad6f925b965e84bc5" ] ], "versions": [ @@ -135,8 +135,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-05T10:50:42.432284995" + "timestamp": "2025-01-15T11:17:04.119521629" } } \ No newline at end of file From 84d99db18e47b5081c54c767d96ea6c4ca992a6c Mon Sep 17 00:00:00 2001 From: Mattia Sgro <35536397+msgr0@users.noreply.github.com> Date: Wed, 15 Jan 2025 18:53:22 +0100 Subject: [PATCH 15/19] update smoothxg to v0.8.0 (#7309) Co-authored-by: Maxime U Garcia --- modules/nf-core/smoothxg/environment.yml | 2 +- modules/nf-core/smoothxg/main.nf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/smoothxg/environment.yml b/modules/nf-core/smoothxg/environment.yml index a837203d000..1e49e2cf889 100644 --- a/modules/nf-core/smoothxg/environment.yml +++ b/modules/nf-core/smoothxg/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::smoothxg=0.7.2 + - bioconda::smoothxg=0.8.0 diff --git a/modules/nf-core/smoothxg/main.nf b/modules/nf-core/smoothxg/main.nf index 191e14cd1e5..e22060d60e7 100644 --- a/modules/nf-core/smoothxg/main.nf +++ b/modules/nf-core/smoothxg/main.nf @@ -4,8 +4,8 @@ process SMOOTHXG { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/smoothxg:0.7.2--h40c17d1_0' : - 'biocontainers/smoothxg:0.7.2--h40c17d1_0' }" + 'https://depot.galaxyproject.org/singularity/smoothxg:0.8.0--h40c17d1_0' : + 'biocontainers/smoothxg:0.8.0--h40c17d1_0' }" input: tuple val(meta), path(gfa) From e0d590dc1005b89a06b54548d4e3cdfa45e6b6f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Schcolnicov?= <90359308+nschcolnicov@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:58:48 -0300 Subject: [PATCH 16/19] Added immunedeconv module (#7262) * Added module * Fix conda * Update datasets paths * Update basepaths * Exclude png files from snap --- modules/nf-core/immunedeconv/environment.yml | 5 + modules/nf-core/immunedeconv/main.nf | 37 ++++++ modules/nf-core/immunedeconv/meta.yml | 67 +++++++++++ .../immunedeconv/templates/immunedeconv.R | 89 +++++++++++++++ .../nf-core/immunedeconv/tests/main.nf.test | 107 ++++++++++++++++++ .../immunedeconv/tests/main.nf.test.snap | 98 ++++++++++++++++ 6 files changed, 403 insertions(+) create mode 100644 modules/nf-core/immunedeconv/environment.yml create mode 100644 modules/nf-core/immunedeconv/main.nf create mode 100644 modules/nf-core/immunedeconv/meta.yml create mode 100644 modules/nf-core/immunedeconv/templates/immunedeconv.R create mode 100644 modules/nf-core/immunedeconv/tests/main.nf.test create mode 100644 modules/nf-core/immunedeconv/tests/main.nf.test.snap diff --git a/modules/nf-core/immunedeconv/environment.yml b/modules/nf-core/immunedeconv/environment.yml new file mode 100644 index 00000000000..004fc39bed0 --- /dev/null +++ b/modules/nf-core/immunedeconv/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::r-immunedeconv=2.1.2 diff --git a/modules/nf-core/immunedeconv/main.nf b/modules/nf-core/immunedeconv/main.nf new file mode 100644 index 00000000000..db0aa7b56a9 --- /dev/null +++ b/modules/nf-core/immunedeconv/main.nf @@ -0,0 +1,37 @@ +process IMMUNEDECONV { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/22/22cb85f1b69ceff45b83e0fdb7b96d9ae29c8aafeaa0707d64cc4628982977ab/data' : + 'community.wave.seqera.io/library/r-immunedeconv:2.1.2--e1bb1ea1cf505cb3' }" + + input: + tuple val(meta), path(input_file), val(method), val(function) + val gene_symbol_col + + output: + tuple val(meta), path("*.deconvolution_results.tsv"), emit: deconv_table + tuple val(meta), path("*.png"), emit: deconv_plots, optional: true + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + template 'immunedeconv.R' + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.deconvolution_results.tsv + touch ${prefix}.plot1_stacked_bar_chart.png + touch ${prefix}.plot2_points_with_facets.png + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + r-immunedeconv: \$(Rscript -e "cat(as.character(packageVersion('immunedeconv')))") + END_VERSIONS + """ +} diff --git a/modules/nf-core/immunedeconv/meta.yml b/modules/nf-core/immunedeconv/meta.yml new file mode 100644 index 00000000000..4eea8be7bc5 --- /dev/null +++ b/modules/nf-core/immunedeconv/meta.yml @@ -0,0 +1,67 @@ +name: immunedeconv +description: Perform immune cell deconvolution using RNA-seq data and various computational methods. +keywords: + - Immune Deconvolution + - RNA-seq + - Bioinformatics Tools + - Computational Immunology +tools: + - immunedeconv: + description: | + The immunedeconv R package provides functions for immune cell deconvolution + from RNA-seq data. It supports multiple deconvolution methods and generates + results as well as visualizations. + homepage: https://github.com/icbi-lab/immunedeconv + documentation: https://icbi-lab.github.io/immunedeconv/ + licence: ["GPL-2"] +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - input_file: + type: file + description: Input matrix with genes in rows and samples in columns. + pattern: "*.tsv" + - method: + type: string + description: The deconvolution method to use (e.g., 'CIBERSORT', 'EPIC', 'xCell'). + - function: + type: string + description: The specific function from immunedeconv to execute for analysis. + - - gene_symbol_col: + type: string + description: Column name for gene symbols in the matrix input file. +output: + - deconv_table: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.deconvolution_results.tsv": + type: file + description: Results table containing deconvolution data. + pattern: "*.deconvolution_results.tsv" + - deconv_plots: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.png": + type: file + description: Visualization plots generated during deconvolution. + pattern: "*.png" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@grst" + - "@nschcolnicov" +maintainers: + - "@grst" + - "@nschcolnicov" diff --git a/modules/nf-core/immunedeconv/templates/immunedeconv.R b/modules/nf-core/immunedeconv/templates/immunedeconv.R new file mode 100644 index 00000000000..6f0c7bad1a3 --- /dev/null +++ b/modules/nf-core/immunedeconv/templates/immunedeconv.R @@ -0,0 +1,89 @@ +#!/usr/bin/env Rscript + +library(dplyr) +library(ggplot2) +library(tidyr) +library(immunedeconv) +library(tibble) +library(readr) + +#Load prefix +prefix = ifelse('$task.ext.prefix' == 'null', '$meta.id', '$task.ext.prefix') + +# Load the TSV file and keep only $gene_symbol_col column + counts +gene_expression_matrix <- readr::read_tsv('$input_file') %>% + as.data.frame() %>% + dplyr::select( + dplyr::all_of('$gene_symbol_col'), # Keep the '$gene_symbol_col' column + where(~ !is.character(.)) # Include all non-string columns + ) %>% + tibble::column_to_rownames('$gene_symbol_col') + +# Check if the data is log-transformed or TPM-transformed +# Check range of values +min_value <- min(gene_expression_matrix, na.rm = TRUE) +max_value <- max(gene_expression_matrix, na.rm = TRUE) + +# Detect log-transformed data (values typically within a compressed range) +if (max_value < 100 && min_value >= 0) { + warning("The data appears to be log-transformed. Please provide TPM-transformed data.") +} + +# Detect TPM-transformed data (column sums should be close to 1,000,000) +column_sums <- colSums(gene_expression_matrix, na.rm = TRUE) +if (!all(abs(column_sums - 1e6) < 1e4)) { + warning("The data does not appear to be properly TPM-transformed. Ensure the data is normalized.") +} + +# Generate results +result <- immunedeconv::${function}(gene_expression_matrix, method = '$method') + +# Save the result to a CSV file +readr::write_tsv(result, paste0(prefix,'.deconvolution_results.tsv')) + +# Plot and save results +# Plot 1: Stacked bar chart +plot1 <- result %>% + gather(sample, fraction, -cell_type) %>% + ggplot(aes(x = sample, y = fraction, fill = cell_type)) + + geom_bar(stat = 'identity') + + coord_flip() + + scale_fill_brewer(palette = 'Paired') + + scale_x_discrete(limits = rev(levels(result))) + +# Save Plot 1 +ggsave(paste0(prefix,'.plot1_stacked_bar_chart.png'), plot = plot1, dpi = 300, width = 10, height = 8) + +# Plot 2: Points with facets +plot2 <- result %>% + gather(sample, score, -cell_type) %>% + ggplot(aes(x = sample, y = score, color = cell_type)) + + geom_point(size = 4) + + facet_wrap(~cell_type, scales = 'free_x', ncol = 3) + + scale_color_brewer(palette = 'Paired', guide = FALSE) + + coord_flip() + + theme_bw() + + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) + +# Save Plot 2 +ggsave(paste0(prefix,'.plot2_points_with_facets.png'), plot = plot2, dpi = 300, width = 12, height = 10) + +################################################ +################################################ +## VERSIONS FILE ## +################################################ +################################################ + +immunedeconv_version <- as.character(packageVersion('immunedeconv')) + +writeLines( + c( + '"${task.process}":', + paste(' r-immunedeconv:', immunedeconv_version) + ), +'versions.yml') + +################################################ +################################################ +################################################ +################################################ \ No newline at end of file diff --git a/modules/nf-core/immunedeconv/tests/main.nf.test b/modules/nf-core/immunedeconv/tests/main.nf.test new file mode 100644 index 00000000000..683d1eff599 --- /dev/null +++ b/modules/nf-core/immunedeconv/tests/main.nf.test @@ -0,0 +1,107 @@ +nextflow_process { + + name "Test Process IMMUNEDECONV" + script "../main.nf" + process "IMMUNEDECONV" + tag "modules" + tag "modules_nfcore" + tag "immunedeconv" + + test("test_immunedeconv_bulkmat") { + + when { + process { + """ + input[0] = [ [id:"immunedeconv"], file(params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/bulk_mat.tsv', checkIfExists: true), "quantiseq", "deconvolute" ] + input[1] = "gene_symbol" + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.deconv_table, + process.out.deconv_plots[0][1].collect{ file(it).name }, //assert unstable file + process.out.versions + ).match() + } + ) + } + } + + test("test_immunedeconv_custom_data_mouse") { + + when { + process { + """ + input[0] = [ [id:"immunedeconv"], file(params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/bulk_mat_mouse.tsv', checkIfExists: true), "mmcp_counter", "deconvolute_mouse" ] + input[1] = "gene_symbol" + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.deconv_table, + process.out.deconv_plots[0][1].collect{ file(it).name }, //assert unstable file + process.out.versions + ).match() + } + ) + } + } + + test("test_immunedeconv_bulkmat_mouse") { + + when { + process { + """ + input[0] = [ [id:"immunedeconv"], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv', checkIfExists: true), "mmcp_counter", "deconvolute_mouse" ] + input[1] = "gene_name" + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.deconv_table, + process.out.deconv_plots[0][1].collect{ file(it).name }, //assert unstable file + process.out.versions + ).match() + } + ) + } + } + + test("test_immunedeconv - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ [id:"immunedeconv"], file(params.modules_testdata_base_path + 'genomics/mus_musculus/rnaseq_expression/bulk_mat.tsv', checkIfExists: true), "quantiseq", "deconvolute" ] + input[1] = "gene_symbol" + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.deconv_table, + process.out.deconv_plots[0][1].collect{ file(it).name }, //assert unstable file + process.out.versions + ).match() + } + ) + } + } +} diff --git a/modules/nf-core/immunedeconv/tests/main.nf.test.snap b/modules/nf-core/immunedeconv/tests/main.nf.test.snap new file mode 100644 index 00000000000..626161afb11 --- /dev/null +++ b/modules/nf-core/immunedeconv/tests/main.nf.test.snap @@ -0,0 +1,98 @@ +{ + "test_immunedeconv_bulkmat": { + "content": [ + [ + [ + { + "id": "immunedeconv" + }, + "immunedeconv.deconvolution_results.tsv:md5,7ea22a01f198957cbe8dae92015583ff" + ] + ], + [ + "immunedeconv.plot1_stacked_bar_chart.png", + "immunedeconv.plot2_points_with_facets.png" + ], + [ + "versions.yml:md5,e155e29c7a7b3ba2ef8e3ed4c495b929" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T17:53:32.201416758" + }, + "test_immunedeconv_bulkmat_mouse": { + "content": [ + [ + [ + { + "id": "immunedeconv" + }, + "immunedeconv.deconvolution_results.tsv:md5,3d7ed4550a0da2f63fcfd2e74605e7a3" + ] + ], + [ + "immunedeconv.plot1_stacked_bar_chart.png", + "immunedeconv.plot2_points_with_facets.png" + ], + [ + "versions.yml:md5,e155e29c7a7b3ba2ef8e3ed4c495b929" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T17:54:01.300160943" + }, + "test_immunedeconv - stub": { + "content": [ + [ + [ + { + "id": "immunedeconv" + }, + "immunedeconv.deconvolution_results.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + "immunedeconv.plot1_stacked_bar_chart.png", + "immunedeconv.plot2_points_with_facets.png" + ], + [ + "versions.yml:md5,e155e29c7a7b3ba2ef8e3ed4c495b929" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T17:54:09.796182653" + }, + "test_immunedeconv_custom_data_mouse": { + "content": [ + [ + [ + { + "id": "immunedeconv" + }, + "immunedeconv.deconvolution_results.tsv:md5,5c69779bac914a28737eb40460807bec" + ] + ], + [ + "immunedeconv.plot1_stacked_bar_chart.png", + "immunedeconv.plot2_points_with_facets.png" + ], + [ + "versions.yml:md5,e155e29c7a7b3ba2ef8e3ed4c495b929" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-15T17:53:46.364238594" + } +} \ No newline at end of file From 83ba95cd93c6a8cc5e2d9226083c01aea5e80d2a Mon Sep 17 00:00:00 2001 From: Jasmin Frangenberg <73216762+jasmezz@users.noreply.github.com> Date: Thu, 16 Jan 2025 07:32:53 +0000 Subject: [PATCH 17/19] Remove `compressed` flag from all mmseqs modules (#7211) * Remove `compressed` flags from all mmmseqs modules * Update snapshots * Fix language server and Yaml linting failures for all mmseqs modules * Convert mmseqs/easysearch to nf-test * Fix linting for mmseqs/easysearch * Co-authored with: @famosab Convert mmseqs/tsv2exprofiledb nf-test * Try to fix linting errors * rename variable db to database + snapshot output list and md5 few files * Update modules/nf-core/mmseqs/tsv2exprofiledb/tests/nextflow.config * set mmseqs2 version mmseqs2:16.747c6 --------- Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Co-authored-by: James A. Fellows Yates Co-authored-by: Sateesh Co-authored-by: Sateesh_Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/nf-core/mmseqs/cluster/main.nf | 3 +- .../mmseqs/cluster/tests/main.nf.test.snap | 6 +- modules/nf-core/mmseqs/createdb/main.nf | 3 +- .../mmseqs/createdb/tests/main.nf.test.snap | 28 ++-- modules/nf-core/mmseqs/createindex/main.nf | 20 +-- modules/nf-core/mmseqs/createtsv/main.nf | 3 +- modules/nf-core/mmseqs/databases/main.nf | 1 - modules/nf-core/mmseqs/easysearch/main.nf | 25 +-- modules/nf-core/mmseqs/easysearch/meta.yml | 1 - .../mmseqs/easysearch/tests/main.nf.test | 68 ++++++++ .../mmseqs/easysearch/tests/main.nf.test.snap | 72 +++++++++ .../mmseqs/easysearch/tests/nextflow.config | 5 + modules/nf-core/mmseqs/linclust/main.nf | 3 +- .../mmseqs/linclust/tests/main.nf.test.snap | 6 +- modules/nf-core/mmseqs/search/main.nf | 13 +- modules/nf-core/mmseqs/taxonomy/main.nf | 3 +- .../mmseqs/tsv2exprofiledb/environment.yml | 2 +- .../nf-core/mmseqs/tsv2exprofiledb/main.nf | 21 ++- .../nf-core/mmseqs/tsv2exprofiledb/meta.yml | 9 +- .../mmseqs/tsv2exprofiledb/tests/main.nf.test | 75 +++++++++ .../tsv2exprofiledb/tests/main.nf.test.snap | 149 ++++++++++++++++++ .../tsv2exprofiledb/tests/nextflow.config | 5 + tests/config/pytest_modules.yml | 6 - .../modules/nf-core/mmseqs/easysearch/main.nf | 24 --- .../nf-core/mmseqs/easysearch/nextflow.config | 12 -- .../nf-core/mmseqs/easysearch/test.yml | 9 -- .../nf-core/mmseqs/tsv2exprofiledb/main.nf | 15 -- .../mmseqs/tsv2exprofiledb/nextflow.config | 9 -- .../nf-core/mmseqs/tsv2exprofiledb/test.yml | 105 ------------ 29 files changed, 446 insertions(+), 255 deletions(-) create mode 100644 modules/nf-core/mmseqs/easysearch/tests/main.nf.test create mode 100644 modules/nf-core/mmseqs/easysearch/tests/main.nf.test.snap create mode 100644 modules/nf-core/mmseqs/easysearch/tests/nextflow.config create mode 100644 modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test create mode 100644 modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test.snap create mode 100644 modules/nf-core/mmseqs/tsv2exprofiledb/tests/nextflow.config delete mode 100644 tests/modules/nf-core/mmseqs/easysearch/main.nf delete mode 100644 tests/modules/nf-core/mmseqs/easysearch/nextflow.config delete mode 100644 tests/modules/nf-core/mmseqs/easysearch/test.yml delete mode 100644 tests/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf delete mode 100644 tests/modules/nf-core/mmseqs/tsv2exprofiledb/nextflow.config delete mode 100644 tests/modules/nf-core/mmseqs/tsv2exprofiledb/test.yml diff --git a/modules/nf-core/mmseqs/cluster/main.nf b/modules/nf-core/mmseqs/cluster/main.nf index bad704cbbe2..b7fa6c4d2cf 100644 --- a/modules/nf-core/mmseqs/cluster/main.nf +++ b/modules/nf-core/mmseqs/cluster/main.nf @@ -34,8 +34,7 @@ process MMSEQS_CLUSTER { ${prefix}/${prefix} \\ tmp1 \\ $args \\ - --threads ${task.cpus} \\ - --compressed 1 + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/cluster/tests/main.nf.test.snap b/modules/nf-core/mmseqs/cluster/tests/main.nf.test.snap index 6fc98698513..f61bc9f3070 100644 --- a/modules/nf-core/mmseqs/cluster/tests/main.nf.test.snap +++ b/modules/nf-core/mmseqs/cluster/tests/main.nf.test.snap @@ -8,8 +8,8 @@ "test_output_cluster.index" ], [ - "test_output_cluster.dbtype:md5,5c879eb8a8613fd4537b919e7d68d089", - "test_output_cluster.index:md5,ca7e1f0967222b06d7e05e47bcbe1e50" + "test_output_cluster.dbtype:md5,b9d9c6dbc098c97ae446f612efd8eafd", + "test_output_cluster.index:md5,9848b52b6df827d80a04f7c71c50056b" ], "versions.yml:md5,4acad55952c6d1fb41ad7f5a44468aed" ], @@ -17,6 +17,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-05T10:44:45.713270981" + "timestamp": "2024-12-15T19:30:14.704271821" } } \ No newline at end of file diff --git a/modules/nf-core/mmseqs/createdb/main.nf b/modules/nf-core/mmseqs/createdb/main.nf index b1d6caf0b06..ef11306895b 100644 --- a/modules/nf-core/mmseqs/createdb/main.nf +++ b/modules/nf-core/mmseqs/createdb/main.nf @@ -33,8 +33,7 @@ process MMSEQS_CREATEDB { createdb \\ ${sequence_name} \\ ${prefix}/${prefix} \\ - $args \\ - --compressed 1 + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/createdb/tests/main.nf.test.snap b/modules/nf-core/mmseqs/createdb/tests/main.nf.test.snap index 92f1e6d8257..ececa7a4dd5 100644 --- a/modules/nf-core/mmseqs/createdb/tests/main.nf.test.snap +++ b/modules/nf-core/mmseqs/createdb/tests/main.nf.test.snap @@ -8,14 +8,14 @@ "single_end": false }, [ - "test:md5,7c3c2c5926cf8fa82e66b9628f680256", - "test.dbtype:md5,c8ed20c23ba91f4577f84c940c86c7db", - "test.index:md5,5b2fd8abd0ad3fee24738af7082e6a6e", + "test:md5,a2cda8768736a7a317a09d61556194bd", + "test.dbtype:md5,4352d88a78aa39750bf70cd6f27bcaa5", + "test.index:md5,4ba298b011e2472ce9f6b99fe6b6e3d5", "test.lookup:md5,32f88756dbcb6aaf7b239b0d61730f1b", "test.source:md5,9ada5b3ea6e1a7e16c4418eb98ae8d9d", - "test_h:md5,8c29f5ed94d83d7115e9c8a883ce358d", - "test_h.dbtype:md5,8895d3d8e9322aedbf45249dfb3ddb0a", - "test_h.index:md5,87c7c8c6d16018ebfaa6f408391a5ae2" + "test_h:md5,21c399702a071bdeecce09f9d1df4531", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,d767fb43b37c0a644c676b00f9f93477" ] ] ], @@ -27,7 +27,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-05T10:35:27.322864475" + "timestamp": "2024-12-15T19:30:25.339409238" }, "Should build an mmseqs db from a zipped amino acid sequence file": { "content": [ @@ -37,14 +37,14 @@ "id": "test" }, [ - "test:md5,4b494965ed7ab67da8ca3f39523eb104", - "test.dbtype:md5,152afd7bf4dbe26f85032eee0269201a", - "test.index:md5,46f9d884e9a7f442fe1cd2ce339734e3", + "test:md5,1162504bc65aacf734abdcb0cdbe87de", + "test.dbtype:md5,f1d3ff8443297732862df21dc4e57262", + "test.index:md5,8cdcbc06c2b99fdb09f3d1735a76def9", "test.lookup:md5,3e27cb93d9ee875ad42a6f32f5651bdc", "test.source:md5,eaa64fc8a5f7ec1ee49b0dcbd1a72e9d", - "test_h:md5,6e798b81c70d191f78939c2dd6223a7f", - "test_h.dbtype:md5,8895d3d8e9322aedbf45249dfb3ddb0a", - "test_h.index:md5,d5ac49ff56df064b980fa0eb5da57673" + "test_h:md5,f258f8cc04f83c270a75e8b00a6d2d89", + "test_h.dbtype:md5,740bab4f9ec8808aedb68d6b1281aeb2", + "test_h.index:md5,844bf1950bcd37284fdc5d7117ee4241" ] ] ], @@ -56,6 +56,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-05T10:35:33.418552595" + "timestamp": "2024-12-15T19:30:34.93361715" } } \ No newline at end of file diff --git a/modules/nf-core/mmseqs/createindex/main.nf b/modules/nf-core/mmseqs/createindex/main.nf index 4e9c82a3499..ea6866fca41 100644 --- a/modules/nf-core/mmseqs/createindex/main.nf +++ b/modules/nf-core/mmseqs/createindex/main.nf @@ -3,16 +3,16 @@ process MMSEQS_CREATEINDEX { label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mmseqs2:15.6f452--pl5321h6a68c12_0': - 'biocontainers/mmseqs2:15.6f452--pl5321h6a68c12_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/mmseqs2:15.6f452--pl5321h6a68c12_0' + : 'biocontainers/mmseqs2:15.6f452--pl5321h6a68c12_0'}" input: tuple val(meta), path(db) output: - tuple val(meta), path(db) , emit: db_indexed - path "versions.yml" , emit: versions + tuple val(meta), path(db), emit: db_indexed + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -23,15 +23,14 @@ process MMSEQS_CREATEINDEX { def prefix = task.ext.prefix ?: "${meta.id}" """ - DB_INPUT_PATH_NAME=\$(find -L "$db/" -maxdepth 1 -name "$args2" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) + DB_INPUT_PATH_NAME=\$(find -L "${db}/" -maxdepth 1 -name "${args2}" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) mmseqs \\ createindex \\ \${DB_INPUT_PATH_NAME} \\ tmp1 \\ - $args \\ - --threads ${task.cpus} \\ - --compressed 1 + ${args} \\ + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -40,8 +39,9 @@ process MMSEQS_CREATEINDEX { """ stub: + def args2 = task.ext.args2 ?: "*.dbtype" """ - DB_INPUT_PATH_NAME=\$(find -L "$db/" -maxdepth 1 -name "$args2" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) + DB_INPUT_PATH_NAME=\$(find -L "${db}/" -maxdepth 1 -name "${args2}" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) touch "\${DB_PATH_NAME}.idx" diff --git a/modules/nf-core/mmseqs/createtsv/main.nf b/modules/nf-core/mmseqs/createtsv/main.nf index 4a3fd37a8c5..b41b5c54a65 100644 --- a/modules/nf-core/mmseqs/createtsv/main.nf +++ b/modules/nf-core/mmseqs/createtsv/main.nf @@ -40,8 +40,7 @@ process MMSEQS_CREATETSV { \$DB_RESULT_PATH_NAME \\ ${prefix}.tsv \\ $args \\ - --threads ${task.cpus} \\ - --compressed 1 + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/databases/main.nf b/modules/nf-core/mmseqs/databases/main.nf index 176d7b45d59..8f94eac5ffa 100644 --- a/modules/nf-core/mmseqs/databases/main.nf +++ b/modules/nf-core/mmseqs/databases/main.nf @@ -28,7 +28,6 @@ process MMSEQS_DATABASES { ${prefix}/database \\ tmp/ \\ --threads ${task.cpus} \\ - --compressed 1 \\ ${args} cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/mmseqs/easysearch/main.nf b/modules/nf-core/mmseqs/easysearch/main.nf index bdb50e759eb..41272a80793 100644 --- a/modules/nf-core/mmseqs/easysearch/main.nf +++ b/modules/nf-core/mmseqs/easysearch/main.nf @@ -1,20 +1,19 @@ - process MMSEQS_EASYSEARCH { - tag "$meta.id" + tag "${meta.id}" label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mmseqs2:15.6f452--pl5321h6a68c12_0': - 'biocontainers/mmseqs2:15.6f452--pl5321h6a68c12_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/mmseqs2:15.6f452--pl5321h6a68c12_0' + : 'biocontainers/mmseqs2:15.6f452--pl5321h6a68c12_0'}" input: - tuple val(meta) , path(fasta) + tuple val(meta), path(fasta) tuple val(meta2), path(db_target) output: tuple val(meta), path("${prefix}.tsv"), emit: tsv - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -27,17 +26,16 @@ process MMSEQS_EASYSEARCH { mkdir -p ${prefix} # Extract files with specified args based suffix | remove suffix | isolate longest common substring of files - DB_TARGET_PATH_NAME=\$(find -L "$db_target/" -maxdepth 1 -name "$args2" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) + DB_TARGET_PATH_NAME=\$(find -L "${db_target}/" -maxdepth 1 -name "${args2}" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) mmseqs \\ easy-search \\ - $fasta \\ + ${fasta} \\ \$DB_TARGET_PATH_NAME \\ ${prefix}.tsv \\ tmp1 \\ - $args \\ - --threads ${task.cpus} \\ - --compressed 1 + ${args} \\ + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml @@ -47,6 +45,9 @@ process MMSEQS_EASYSEARCH { """ stub: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: "*.dbtype" + prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.tsv diff --git a/modules/nf-core/mmseqs/easysearch/meta.yml b/modules/nf-core/mmseqs/easysearch/meta.yml index bcfdde9b783..972fbe3f1b9 100644 --- a/modules/nf-core/mmseqs/easysearch/meta.yml +++ b/modules/nf-core/mmseqs/easysearch/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: "mmseqs_easysearch" description: Searches for the sequences of a fasta file in a database using MMseqs2 keywords: diff --git a/modules/nf-core/mmseqs/easysearch/tests/main.nf.test b/modules/nf-core/mmseqs/easysearch/tests/main.nf.test new file mode 100644 index 00000000000..f9894feab3b --- /dev/null +++ b/modules/nf-core/mmseqs/easysearch/tests/main.nf.test @@ -0,0 +1,68 @@ +nextflow_process { + + name "Test Process MMSEQS_EASYSEARCH" + script "../main.nf" + process "MMSEQS_EASYSEARCH" + config './nextflow.config' + + tag "modules" + tag "modules_nfcore" + tag "mmseqs" + tag "mmseqs/easysearch" + tag "mmseqs/createdb" + + setup { + + run("MMSEQS_CREATEDB") { + script "../../createdb/main.nf" + process { + """ + input[0] = [ [id: 'test_query', single_end: true], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true) ] + """ + } + } + } + + test("sarscov2 - illumina - contigs - fasta") { + + when { + process { + """ + input[0] = [ [id: 'test_scaffolds', single_end: true], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/scaffolds.fasta', checkIfExists: true) ] + input[1] = MMSEQS_CREATEDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - illumina - contigs - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ [id: 'test_scaffolds', single_end: true], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/scaffolds.fasta', checkIfExists: true) ] + input[1] = MMSEQS_CREATEDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/mmseqs/easysearch/tests/main.nf.test.snap b/modules/nf-core/mmseqs/easysearch/tests/main.nf.test.snap new file mode 100644 index 00000000000..4e570427bf9 --- /dev/null +++ b/modules/nf-core/mmseqs/easysearch/tests/main.nf.test.snap @@ -0,0 +1,72 @@ +{ + "sarscov2 - illumina - contigs - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test_scaffolds", + "single_end": true + }, + "test_scaffolds.tsv:md5,98a6e138ad41ed04366808799fd6a4b8" + ] + ], + "1": [ + "versions.yml:md5,6e4d1e0d47fdc34c4ef32ad7b030cf70" + ], + "tsv": [ + [ + { + "id": "test_scaffolds", + "single_end": true + }, + "test_scaffolds.tsv:md5,98a6e138ad41ed04366808799fd6a4b8" + ] + ], + "versions": [ + "versions.yml:md5,6e4d1e0d47fdc34c4ef32ad7b030cf70" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2025-01-15T10:08:31.865068417" + }, + "sarscov2 - illumina - contigs - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test_scaffolds", + "single_end": true + }, + "test_scaffolds.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,bef949a977594a12d605c2d30198ab27" + ], + "tsv": [ + [ + { + "id": "test_scaffolds", + "single_end": true + }, + "test_scaffolds.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bef949a977594a12d605c2d30198ab27" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2025-01-15T10:09:30.132833597" + } +} \ No newline at end of file diff --git a/modules/nf-core/mmseqs/easysearch/tests/nextflow.config b/modules/nf-core/mmseqs/easysearch/tests/nextflow.config new file mode 100644 index 00000000000..9700c7e4930 --- /dev/null +++ b/modules/nf-core/mmseqs/easysearch/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: MMSEQS_EASYSEARCH { + ext.args = '--remove-tmp-files 1 --search-type 2' + } +} diff --git a/modules/nf-core/mmseqs/linclust/main.nf b/modules/nf-core/mmseqs/linclust/main.nf index c5927985897..fb8663b98f1 100644 --- a/modules/nf-core/mmseqs/linclust/main.nf +++ b/modules/nf-core/mmseqs/linclust/main.nf @@ -34,8 +34,7 @@ process MMSEQS_LINCLUST { ${prefix}/${prefix} \\ tmp1 \\ $args \\ - --threads ${task.cpus} \\ - --compressed 1 + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/linclust/tests/main.nf.test.snap b/modules/nf-core/mmseqs/linclust/tests/main.nf.test.snap index e1622d49d12..b5f555b847a 100644 --- a/modules/nf-core/mmseqs/linclust/tests/main.nf.test.snap +++ b/modules/nf-core/mmseqs/linclust/tests/main.nf.test.snap @@ -8,8 +8,8 @@ "test_output_cluster.index" ], [ - "test_output_cluster.dbtype:md5,5c879eb8a8613fd4537b919e7d68d089", - "test_output_cluster.index:md5,38908275cdd5727ae0eb9be017f9ca13" + "test_output_cluster.dbtype:md5,b9d9c6dbc098c97ae446f612efd8eafd", + "test_output_cluster.index:md5,a0b78f31aee2c327d72f32919814baf1" ], "versions.yml:md5,969cb26241f66ac758c104f9561860b1" ], @@ -17,6 +17,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.2" }, - "timestamp": "2024-12-05T10:43:26.020522437" + "timestamp": "2024-12-15T19:38:00.258247122" } } \ No newline at end of file diff --git a/modules/nf-core/mmseqs/search/main.nf b/modules/nf-core/mmseqs/search/main.nf index 29844235ecb..e4ddc2d3d91 100644 --- a/modules/nf-core/mmseqs/search/main.nf +++ b/modules/nf-core/mmseqs/search/main.nf @@ -1,5 +1,5 @@ process MMSEQS_SEARCH { - tag "$meta.id" + tag "${meta.id}" label 'process_high' conda "${moduleDir}/environment.yml" @@ -24,13 +24,15 @@ process MMSEQS_SEARCH { def args3 = task.ext.args3 ?: "*.dbtype" prefix = task.ext.prefix ?: "${meta.id}" - if ("$db_query" == "${prefix}" || "$db_target" == "${prefix}" ) error "Input and output names of databases are the same, set prefix in module configuration to disambiguate!" + if ("${db_query}" == "${prefix}" || "${db_target}" == "${prefix}") { + error("Input and output names of databases are the same, set prefix in module configuration to disambiguate!") + } """ mkdir -p ${prefix} # Extract files with specified args based suffix | remove suffix | isolate longest common substring of files - DB_QUERY_PATH_NAME=\$(find -L "$db_query/" -maxdepth 1 -name "$args2" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) - DB_TARGET_PATH_NAME=\$(find -L "$db_target/" -maxdepth 1 -name "$args3" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) + DB_QUERY_PATH_NAME=\$(find -L "${db_query}/" -maxdepth 1 -name "${args2}" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) + DB_TARGET_PATH_NAME=\$(find -L "${db_target}/" -maxdepth 1 -name "${args3}" | sed 's/\\.[^.]*\$//' | sed -e 'N;s/^\\(.*\\).*\\n\\1.*\$/\\1\\n\\1/;D' ) mmseqs \\ search \\ @@ -48,10 +50,11 @@ process MMSEQS_SEARCH { """ stub: + def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" if ("$db_query" == "${prefix}" || "$db_target" == "${prefix}" ) error "Input and output names of databases are the same, set prefix in module configuration to disambiguate!" """ - mkdir -p $prefix + mkdir -p ${prefix} touch ${prefix}/${prefix}.{0..9} touch ${prefix}/${prefix}.dbtype touch ${prefix}/${prefix}.index diff --git a/modules/nf-core/mmseqs/taxonomy/main.nf b/modules/nf-core/mmseqs/taxonomy/main.nf index 54849885691..396abd1f243 100644 --- a/modules/nf-core/mmseqs/taxonomy/main.nf +++ b/modules/nf-core/mmseqs/taxonomy/main.nf @@ -38,8 +38,7 @@ process MMSEQS_TAXONOMY { ${prefix}_taxonomy/${prefix} \\ tmp1 \\ $args \\ - --threads ${task.cpus} \\ - --compressed 1 + --threads ${task.cpus} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/environment.yml b/modules/nf-core/mmseqs/tsv2exprofiledb/environment.yml index 18547591a2e..235ad03ad82 100644 --- a/modules/nf-core/mmseqs/tsv2exprofiledb/environment.yml +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::mmseqs2=15.6f452 + - bioconda::mmseqs2=16.747c6 diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf b/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf index d043cac4c6a..b64f00fad5f 100644 --- a/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf @@ -1,31 +1,31 @@ process MMSEQS_TSV2EXPROFILEDB { - tag "$db" + tag "${database}" label 'process_high' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mmseqs2:14.7e284--pl5321hf1761c0_0': - 'biocontainers/mmseqs2:14.7e284--pl5321hf1761c0_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/mmseqs2:16.747c6--pl5321h6a68c12_0' + : 'biocontainers/mmseqs2:16.747c6--pl5321h6a68c12_0'}" input: - path db + path database output: - path (db) , emit: db_exprofile + path (database) , emit: db_exprofile path "versions.yml", emit: versions - // INDEX=`find -L ./ -name "*.amb" | sed 's/\\.amb\$//'` + when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' """ - DB_PATH_NAME=\$(find -L "$db/" -name "*_seq.tsv" | sed 's/_seq\\.tsv\$//') + DB_PATH_NAME=\$(find -L "${database}/" -name "*_seq.tsv" | sed 's/_seq\\.tsv\$//') mmseqs tsv2exprofiledb \\ \${DB_PATH_NAME} \\ "\${DB_PATH_NAME}_db" \\ - $args + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -35,8 +35,7 @@ process MMSEQS_TSV2EXPROFILEDB { stub: """ - DB_PATH_NAME=\$(find -L "$db/" -name "*_seq.tsv" | sed 's/_seq\\.tsv\$//') - + DB_PATH_NAME=\$(find -L "${database}/" -name "*_seq.tsv" | sed 's/_seq\\.tsv\$//') touch "\${DB_PATH_NAME}_db" cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/meta.yml b/modules/nf-core/mmseqs/tsv2exprofiledb/meta.yml index 4e8890addfa..284e16877e7 100644 --- a/modules/nf-core/mmseqs/tsv2exprofiledb/meta.yml +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/meta.yml @@ -18,17 +18,17 @@ tools: licence: ["GPL v3"] identifier: biotools:mmseqs input: - - - db: + - - database: type: directory description: | - Directory containing the DB to be indexed + Directory containing the database to be indexed pattern: "*" output: - db_exprofile: - - db: + - database: type: directory description: | - Directory containing the expandable profile DB + Directory containing the expandable profile database pattern: "*" - versions: - versions.yml: @@ -40,3 +40,4 @@ authors: - "@JoseEspinosa" maintainers: - "@JoseEspinosa" + - "@sateeshperi" diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test new file mode 100644 index 00000000000..04994caefa5 --- /dev/null +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test @@ -0,0 +1,75 @@ +nextflow_process { + + name "Test Process MMSEQS_TSV2EXPROFILEDB" + script "../main.nf" + process "MMSEQS_TSV2EXPROFILEDB" + config './nextflow.config' + + tag "modules" + tag "modules_nfcore" + tag "mmseqs" + tag "mmseqs/tsv2exprofiledb" + tag "untar" + + setup { + run("UNTAR") { + script "../../../untar" + process { + """ + input[0] = [ [:], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/mmseqs.tar.gz', checkIfExists: true) + ] + """ + } + } + } + + test("sarscov2 - db") { + + when { + process { + """ + input[0] = UNTAR.out.untar.map { meta, untar -> untar } + """ + } + } + + then { + // Many files are validly empty due to small test data, so just list names, and check a couple of expected files with contents + assertAll( + { assert process.success }, + { assert snapshot( + path(process.out.db_exprofile[0]).list().find { it.getFileName().toString() == "mmseqs.tsv" }, + path(process.out.db_exprofile[0]).list().find { it.getFileName().toString() == "mmseqs" }, + path(process.out.db_exprofile[0]).list().find { it.getFileName().toString() == "mmseqs_seq.index" }, + path(process.out.db_exprofile[0]).list().sort().collect { it.getFileName().toString() }, + process.out.versions + ).match() } + ) + } + } + + test("sarscov2 - db - stub") { + options "-stub" + + when { + process { + """ + input[0] = UNTAR.out.untar.map { meta, untar -> untar } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + path(process.out.db_exprofile[0]).list().sort().collect { it.getFileName().toString() }, + process.out.versions + ).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test.snap b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test.snap new file mode 100644 index 00000000000..10de97a47ed --- /dev/null +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/main.nf.test.snap @@ -0,0 +1,149 @@ +{ + "sarscov2 - db - stub": { + "content": [ + [ + "mmseqs", + "mmseqs.dbtype", + "mmseqs.fasta", + "mmseqs.index", + "mmseqs.lookup", + "mmseqs.source", + "mmseqs.tsv", + "mmseqs_aln.0", + "mmseqs_aln.1", + "mmseqs_aln.2", + "mmseqs_aln.3", + "mmseqs_aln.4", + "mmseqs_aln.5", + "mmseqs_aln.6", + "mmseqs_aln.7", + "mmseqs_aln.dbtype", + "mmseqs_aln.index", + "mmseqs_aln.tsv", + "mmseqs_clu.0", + "mmseqs_clu.1", + "mmseqs_clu.2", + "mmseqs_clu.3", + "mmseqs_clu.4", + "mmseqs_clu.5", + "mmseqs_clu.6", + "mmseqs_clu.7", + "mmseqs_clu.dbtype", + "mmseqs_clu.index", + "mmseqs_db", + "mmseqs_h", + "mmseqs_h.dbtype", + "mmseqs_h.index", + "mmseqs_h.tsv", + "mmseqs_profile", + "mmseqs_profile.dbtype", + "mmseqs_profile.index", + "mmseqs_profile.lookup", + "mmseqs_profile.source", + "mmseqs_profile_h", + "mmseqs_profile_h.dbtype", + "mmseqs_profile_h.index", + "mmseqs_seq", + "mmseqs_seq.dbtype", + "mmseqs_seq.index", + "mmseqs_seq.lookup", + "mmseqs_seq.source", + "mmseqs_seq.tsv", + "mmseqs_seq_h", + "mmseqs_seq_h.dbtype", + "mmseqs_seq_h.index", + "tmp" + ], + [ + "versions.yml:md5,b5bfad51f25a7fb9add496eb09c5f2b2" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-16T06:32:24.126939413" + }, + "sarscov2 - db": { + "content": [ + "mmseqs.tsv:md5,4e7ba50ce2879660dc6595286bf0d097", + "mmseqs:md5,a5ba5a88d2995da3522dddb4abca07ef", + "mmseqs_seq.index:md5,09f8cf12406b814198156e56f5acd8dc", + [ + "mmseqs", + "mmseqs.dbtype", + "mmseqs.fasta", + "mmseqs.index", + "mmseqs.lookup", + "mmseqs.source", + "mmseqs.tsv", + "mmseqs_aln.0", + "mmseqs_aln.1", + "mmseqs_aln.2", + "mmseqs_aln.3", + "mmseqs_aln.4", + "mmseqs_aln.5", + "mmseqs_aln.6", + "mmseqs_aln.7", + "mmseqs_aln.dbtype", + "mmseqs_aln.index", + "mmseqs_aln.tsv", + "mmseqs_clu.0", + "mmseqs_clu.1", + "mmseqs_clu.2", + "mmseqs_clu.3", + "mmseqs_clu.4", + "mmseqs_clu.5", + "mmseqs_clu.6", + "mmseqs_clu.7", + "mmseqs_clu.dbtype", + "mmseqs_clu.index", + "mmseqs_db", + "mmseqs_db.dbtype", + "mmseqs_db.index", + "mmseqs_db_aln", + "mmseqs_db_aln.dbtype", + "mmseqs_db_aln.index", + "mmseqs_db_h", + "mmseqs_db_h.dbtype", + "mmseqs_db_h.index", + "mmseqs_db_seq", + "mmseqs_db_seq.dbtype", + "mmseqs_db_seq.index", + "mmseqs_db_seq_h", + "mmseqs_db_seq_h.dbtype", + "mmseqs_db_seq_h.index", + "mmseqs_h", + "mmseqs_h.dbtype", + "mmseqs_h.index", + "mmseqs_h.tsv", + "mmseqs_profile", + "mmseqs_profile.dbtype", + "mmseqs_profile.index", + "mmseqs_profile.lookup", + "mmseqs_profile.source", + "mmseqs_profile_h", + "mmseqs_profile_h.dbtype", + "mmseqs_profile_h.index", + "mmseqs_seq", + "mmseqs_seq.dbtype", + "mmseqs_seq.index", + "mmseqs_seq.lookup", + "mmseqs_seq.source", + "mmseqs_seq.tsv", + "mmseqs_seq_h", + "mmseqs_seq_h.dbtype", + "mmseqs_seq_h.index", + "tmp" + ], + [ + "versions.yml:md5,b5bfad51f25a7fb9add496eb09c5f2b2" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2025-01-16T06:32:11.496679278" + } +} \ No newline at end of file diff --git a/modules/nf-core/mmseqs/tsv2exprofiledb/tests/nextflow.config b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/nextflow.config new file mode 100644 index 00000000000..d57fa806906 --- /dev/null +++ b/modules/nf-core/mmseqs/tsv2exprofiledb/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: UNTAR { + publishDir = [ enabled: false ] + } +} diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a2300fb29f3..6eef66aaa8b 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -320,12 +320,6 @@ mitohifi/findmitoreference: mitohifi/mitohifi: - modules/nf-core/mitohifi/mitohifi/** - tests/modules/nf-core/mitohifi/mitohifi/** -mmseqs/easysearch: - - modules/nf-core/mmseqs/easysearch/** - - tests/modules/nf-core/mmseqs/easysearch/** -mmseqs/tsv2exprofiledb: - - modules/nf-core/mmseqs/tsv2exprofiledb/** - - tests/modules/nf-core/mmseqs/tsv2exprofiledb/** motus/downloaddb: - modules/nf-core/motus/downloaddb/** - tests/modules/nf-core/motus/downloaddb/** diff --git a/tests/modules/nf-core/mmseqs/easysearch/main.nf b/tests/modules/nf-core/mmseqs/easysearch/main.nf deleted file mode 100644 index 41ecf4f87db..00000000000 --- a/tests/modules/nf-core/mmseqs/easysearch/main.nf +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { MMSEQS_EASYSEARCH } from '../../../../../modules/nf-core/mmseqs/easysearch/main.nf' -include { MMSEQS_CREATEDB as MMSEQS_CREATEDB_TARGET } from '../../../../../modules/nf-core/mmseqs/createdb/main.nf' - - -workflow test_mmseqs_easysearch { - - input_query = [ - [ id:'test_query', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) - ] - - - input_target = [ - [ id:'test_target', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['scaffolds_fasta'], checkIfExists: true) - ] - ch_target_db = MMSEQS_CREATEDB_TARGET( input_target ).db - - MMSEQS_EASYSEARCH ( input_query, ch_target_db ) -} diff --git a/tests/modules/nf-core/mmseqs/easysearch/nextflow.config b/tests/modules/nf-core/mmseqs/easysearch/nextflow.config deleted file mode 100644 index 9b0cc3afaac..00000000000 --- a/tests/modules/nf-core/mmseqs/easysearch/nextflow.config +++ /dev/null @@ -1,12 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: MMSEQS_CREATEDB_TARGET { - publishDir = [ enabled: false ] - } - - withName: MMSEQS_EASYSEARCH { - ext.args = '--remove-tmp-files 1 --search-type 2' - } -} \ No newline at end of file diff --git a/tests/modules/nf-core/mmseqs/easysearch/test.yml b/tests/modules/nf-core/mmseqs/easysearch/test.yml deleted file mode 100644 index d15644212d8..00000000000 --- a/tests/modules/nf-core/mmseqs/easysearch/test.yml +++ /dev/null @@ -1,9 +0,0 @@ -- name: mmseqs easysearch test_mmseqs_easysearch - command: nextflow run ./tests/modules/nf-core/mmseqs/easysearch -entry test_mmseqs_easysearch -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/mmseqs/easysearch/nextflow.config - tags: - - mmseqs - - mmseqs/easysearch - files: - - path: output/mmseqs/test_query.tsv - md5sum: 98a6e138ad41ed04366808799fd6a4b8 - - path: output/mmseqs/versions.yml diff --git a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf b/tests/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf deleted file mode 100644 index c04092d863a..00000000000 --- a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/main.nf +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { UNTAR } from '../../../../../modules/nf-core/untar/main.nf' -include { MMSEQS_TSV2EXPROFILEDB } from '../../../../../modules/nf-core/mmseqs/tsv2exprofiledb/main.nf' - -workflow test_mmseqs_tsv2exprofiledb { - - db = file(params.test_data['sarscov2']['genome']['mmseqs_tar_gz'], checkIfExists: true) - - ch_db = UNTAR ( [[:], db] ).untar - .map { it[1] } - MMSEQS_TSV2EXPROFILEDB ( ch_db ) -} diff --git a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/nextflow.config b/tests/modules/nf-core/mmseqs/tsv2exprofiledb/nextflow.config deleted file mode 100644 index d5ca1bd6531..00000000000 --- a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/nextflow.config +++ /dev/null @@ -1,9 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: UNTAR { - publishDir = [ enabled: false ] - } - -} diff --git a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/test.yml b/tests/modules/nf-core/mmseqs/tsv2exprofiledb/test.yml deleted file mode 100644 index 5d98c44e45e..00000000000 --- a/tests/modules/nf-core/mmseqs/tsv2exprofiledb/test.yml +++ /dev/null @@ -1,105 +0,0 @@ -- name: mmseqs tsv2exprofiledb test_mmseqs_tsv2exprofiledb - command: nextflow run ./tests/modules/nf-core/mmseqs/tsv2exprofiledb -entry test_mmseqs_tsv2exprofiledb -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/mmseqs/tsv2exprofiledb/nextflow.config - tags: - - mmseqs/tsv2exprofiledb - - mmseqs - files: - - path: output/mmseqs/mmseqs/mmseqs - md5sum: a5ba5a88d2995da3522dddb4abca07ef - - path: output/mmseqs/mmseqs/mmseqs.dbtype - md5sum: f1d3ff8443297732862df21dc4e57262 - - path: output/mmseqs/mmseqs/mmseqs.fasta - md5sum: b40600ad3be77f076df716e6cf99c64c - - path: output/mmseqs/mmseqs/mmseqs.index - md5sum: c012bdab1c61eeafcb99d1b26650f3d0 - - path: output/mmseqs/mmseqs/mmseqs.lookup - md5sum: fa898551a6b303614ae6e29c237b7fc6 - - path: output/mmseqs/mmseqs/mmseqs.source - md5sum: 16bef02c30aadbfa8d035596502f0aa2 - - path: output/mmseqs/mmseqs/mmseqs.tsv - md5sum: 4e7ba50ce2879660dc6595286bf0d097 - - path: output/mmseqs/mmseqs/mmseqs_aln.0 - md5sum: 043e7e17756de6492a673c4b8c164892 - - path: output/mmseqs/mmseqs/mmseqs_aln.2 - md5sum: 41b5ec081780c45020674d12e57b927b - - path: output/mmseqs/mmseqs/mmseqs_aln.7 - md5sum: f1601f96061757d9f73d0e79ad7af70b - - path: output/mmseqs/mmseqs/mmseqs_aln.dbtype - md5sum: cbe23d9655fccd4311acdd6261c81bd8 - - path: output/mmseqs/mmseqs/mmseqs_aln.index - md5sum: 9e17db59a56719569d20f72f0f48924d - - path: output/mmseqs/mmseqs/mmseqs_aln.tsv - md5sum: e6fc24b66126dec818f89491edb79fec - - path: output/mmseqs/mmseqs/mmseqs_clu.0 - md5sum: 86256b3bd5cd46a4ce865c477a381e08 - - path: output/mmseqs/mmseqs/mmseqs_clu.dbtype - md5sum: b9d9c6dbc098c97ae446f612efd8eafd - - path: output/mmseqs/mmseqs/mmseqs_clu.index - md5sum: a0b78f31aee2c327d72f32919814baf1 - - path: output/mmseqs/mmseqs/mmseqs_db.dbtype - md5sum: 152afd7bf4dbe26f85032eee0269201a - - path: output/mmseqs/mmseqs/mmseqs_db.index - md5sum: 41ca8fb87475481709909380ec07fb00 - - path: output/mmseqs/mmseqs/mmseqs_db_aln.dbtype - md5sum: 596b18eb7c7e96754c16d5dac99ffea7 - - path: output/mmseqs/mmseqs/mmseqs_db_aln.index - md5sum: 67199af9a654fd0bc54d52333f7c41a7 - - path: output/mmseqs/mmseqs/mmseqs_db_h - md5sum: 7133e5a17c0c7a16e5a53748bb2bdff2 - - path: output/mmseqs/mmseqs/mmseqs_db_h.dbtype - md5sum: 740bab4f9ec8808aedb68d6b1281aeb2 - - path: output/mmseqs/mmseqs/mmseqs_db_h.index - md5sum: c292d4dbfd6579d9ad6c94882a2578d0 - - path: output/mmseqs/mmseqs/mmseqs_db_seq.dbtype - md5sum: 152afd7bf4dbe26f85032eee0269201a - - path: output/mmseqs/mmseqs/mmseqs_db_seq.index - md5sum: 41ca8fb87475481709909380ec07fb00 - - path: output/mmseqs/mmseqs/mmseqs_db_seq_h - md5sum: 7133e5a17c0c7a16e5a53748bb2bdff2 - - path: output/mmseqs/mmseqs/mmseqs_db_seq_h.dbtype - md5sum: 740bab4f9ec8808aedb68d6b1281aeb2 - - path: output/mmseqs/mmseqs/mmseqs_db_seq_h.index - md5sum: c292d4dbfd6579d9ad6c94882a2578d0 - - path: output/mmseqs/mmseqs/mmseqs_h - md5sum: 2b2cb13de706b3bb48a38942d851f452 - - path: output/mmseqs/mmseqs/mmseqs_h.dbtype - md5sum: 740bab4f9ec8808aedb68d6b1281aeb2 - - path: output/mmseqs/mmseqs/mmseqs_h.index - md5sum: 0040e6a02964914a87ef1efbe9011cbf - - path: output/mmseqs/mmseqs/mmseqs_h.tsv - md5sum: 8c733b4ef72b8c470ac30537cf6981bd - - path: output/mmseqs/mmseqs/mmseqs_profile - md5sum: 6c29ffea085c8c78e97533f9bcbedd98 - - path: output/mmseqs/mmseqs/mmseqs_profile.dbtype - md5sum: f2dd0dedb2c260419ece4a9e03b2e828 - - path: output/mmseqs/mmseqs/mmseqs_profile.index - md5sum: e09d927ca8d4779b7cfb937f435cf7d3 - - path: output/mmseqs/mmseqs/mmseqs_profile.lookup - md5sum: fa898551a6b303614ae6e29c237b7fc6 - - path: output/mmseqs/mmseqs/mmseqs_profile.source - md5sum: 16bef02c30aadbfa8d035596502f0aa2 - - path: output/mmseqs/mmseqs/mmseqs_profile_h - md5sum: 2b2cb13de706b3bb48a38942d851f452 - - path: output/mmseqs/mmseqs/mmseqs_profile_h.dbtype - md5sum: 740bab4f9ec8808aedb68d6b1281aeb2 - - path: output/mmseqs/mmseqs/mmseqs_profile_h.index - md5sum: 0040e6a02964914a87ef1efbe9011cbf - - path: output/mmseqs/mmseqs/mmseqs_seq - md5sum: e6c2c906a7ced527a75c7b175776f0b1 - - path: output/mmseqs/mmseqs/mmseqs_seq.dbtype - md5sum: 4352d88a78aa39750bf70cd6f27bcaa5 - - path: output/mmseqs/mmseqs/mmseqs_seq.index - md5sum: 09f8cf12406b814198156e56f5acd8dc - - path: output/mmseqs/mmseqs/mmseqs_seq.lookup - md5sum: fa898551a6b303614ae6e29c237b7fc6 - - path: output/mmseqs/mmseqs/mmseqs_seq.source - md5sum: 16bef02c30aadbfa8d035596502f0aa2 - - path: output/mmseqs/mmseqs/mmseqs_seq.tsv - md5sum: fcc20038fa951bc085463bb49ffa5e25 - - path: output/mmseqs/mmseqs/mmseqs_seq_h - md5sum: 2b2cb13de706b3bb48a38942d851f452 - - path: output/mmseqs/mmseqs/mmseqs_seq_h.dbtype - md5sum: 740bab4f9ec8808aedb68d6b1281aeb2 - - path: output/mmseqs/mmseqs/mmseqs_seq_h.index - md5sum: 0040e6a02964914a87ef1efbe9011cbf - - path: output/mmseqs/versions.yml From 2b977a47af8a319f6ef6e7b918e7bb64babbaa04 Mon Sep 17 00:00:00 2001 From: Suzanne Jin Date: Thu, 16 Jan 2025 12:24:18 +0100 Subject: [PATCH 18/19] update NORM meta in abundance_differential_filter (#7302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * modified abundance_differential_filter to use meta_exp in deseq_norm and limma_norm, and updated test snapshots * update snapshot * update snapshot * revert order to call modules * revert test name * update snapshot * update snapshot * fix bug related to norm_inputs * avoid running multiple times NORM unecessarily by using unique(). Updated snapshots * remove view() * add back norm_inputs to avoid repeated computation of all the contrasts * distinguish contrasts_for_diff and contrasts_for_norm * remove unique() * add view to check everything is right * update view * update view * remerge criteria but with def meta at the beginning * remove view. bug fixed. --------- Co-authored-by: Matthias Hörtenhuber --- .../abundance_differential_filter/main.nf | 27 +-- .../abundance_differential_filter/meta.yml | 2 +- .../tests/deseq2_basic.config | 8 +- .../tests/deseq2_limmavoom_basic.config | 6 +- .../tests/deseq2_limmavoom_propd_basic.config | 6 +- .../tests/main.nf.test | 4 +- .../tests/main.nf.test.snap | 160 ++++++------------ 7 files changed, 83 insertions(+), 130 deletions(-) diff --git a/subworkflows/nf-core/abundance_differential_filter/main.nf b/subworkflows/nf-core/abundance_differential_filter/main.nf index 4930b708b55..8c11efa55eb 100644 --- a/subworkflows/nf-core/abundance_differential_filter/main.nf +++ b/subworkflows/nf-core/abundance_differential_filter/main.nf @@ -31,15 +31,16 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { // Set up how the channels crossed below will be used to generate channels for processing def criteria = multiMapCriteria { meta_input, abundance, analysis_method, fc_threshold, stat_threshold, meta_exp, samplesheet, meta_contrasts, variable, reference, target -> + def meta_for_diff = mergeMaps(meta_contrasts, meta_input) + [ 'method': analysis_method ] + def meta_input_new = meta_input + [ 'method': analysis_method ] samples_and_matrix: - meta_map = meta_input + [ 'method': analysis_method ] - [meta_map, samplesheet, abundance] - contrasts: - meta_map = mergeMaps(meta_contrasts, meta_input) + [ 'method': analysis_method ] - [ meta_map, variable, reference, target ] + [ meta_input_new, samplesheet, abundance ] + contrasts_for_diff: + [ meta_for_diff, variable, reference, target ] filter_params: - meta_map = mergeMaps(meta_contrasts, meta_input) + [ 'method': analysis_method ] - [meta_map, [ 'fc_threshold': fc_threshold, 'stat_threshold': stat_threshold ]] + [ meta_for_diff, [ 'fc_threshold': fc_threshold, 'stat_threshold': stat_threshold ]] + contrasts_for_norm: + [ meta_input_new, variable, reference, target ] } // For DIFFERENTIAL modules we need to cross the things we're iterating so we @@ -70,13 +71,13 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { // LIMMA_NORM directly. It internally runs normalization + DE analysis. LIMMA_NORM( - norm_inputs.contrasts.filter{it[0].method == 'limma'}.first(), + norm_inputs.contrasts_for_norm.filter{it[0].method == 'limma'}, norm_inputs.samples_and_matrix.filter{it[0].method == 'limma'} ) LIMMA_DIFFERENTIAL( - inputs.contrasts.filter{it[0].method == 'limma'}, - inputs.samples_and_matrix.filter { it[0].method == 'limma' } + inputs.contrasts_for_diff.filter{ it[0].method == 'limma' }, + inputs.samples_and_matrix.filter{ it[0].method == 'limma' } ) // ---------------------------------------------------- @@ -91,14 +92,14 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { // DESEQ2_NORM directly. It internally runs normalization + DE analysis. DESEQ2_NORM( - norm_inputs.contrasts.filter{it[0].method == 'deseq2'}.first(), + norm_inputs.contrasts_for_norm.filter{it[0].method == 'deseq2'}, norm_inputs.samples_and_matrix.filter{it[0].method == 'deseq2'}, ch_control_features.first(), ch_transcript_lengths.first() ) DESEQ2_DIFFERENTIAL( - inputs.contrasts.filter{it[0].method == 'deseq2'}, + inputs.contrasts_for_diff.filter{it[0].method == 'deseq2'}, inputs.samples_and_matrix.filter{it[0].method == 'deseq2'}, ch_control_features.first(), ch_transcript_lengths.first() @@ -112,7 +113,7 @@ workflow ABUNDANCE_DIFFERENTIAL_FILTER { // not produce a normalized matrix. PROPR_PROPD( - inputs.contrasts.filter{it[0].method == 'propd'}, + inputs.contrasts_for_diff.filter{it[0].method == 'propd'}, inputs.samples_and_matrix.filter { it[0].method == 'propd' } ) diff --git a/subworkflows/nf-core/abundance_differential_filter/meta.yml b/subworkflows/nf-core/abundance_differential_filter/meta.yml index 509520f3ec3..cc22f805353 100644 --- a/subworkflows/nf-core/abundance_differential_filter/meta.yml +++ b/subworkflows/nf-core/abundance_differential_filter/meta.yml @@ -133,7 +133,7 @@ output: authors: - "@pinin4fjords" - "@bjlang" - - "@araiz2001" + - "@caraiz2001" - "@suzannejin" maintainers: - "@pinin4fjords" diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_basic.config b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_basic.config index 508fa04aedc..d6918e56f6a 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_basic.config +++ b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_basic.config @@ -1,10 +1,14 @@ process { withName: 'DESEQ2_DIFFERENTIAL' { - ext.args = { "--round_digits 5 --blocking_variables $meta.blocking --vs_method rlog" } + ext.args = { [ + "--round_digits 5", + "--vs_method rlog", + (meta.blocking == null) ? "" : "--blocking_variables $meta.blocking" + ].join(' ').trim() } ext.prefix = { "${meta.id}_${meta.method}" } } withName: 'DESEQ2_NORM' { - ext.prefix = { "${meta.id}_${meta.method}_voom_norm" } + ext.prefix = { "${meta.id}_${meta.method}_norm" } } } diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_basic.config b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_basic.config index a2b6e9efbd9..14fcfefa6dd 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_basic.config +++ b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_basic.config @@ -1,6 +1,10 @@ process { withName: 'DESEQ2_DIFFERENTIAL' { - ext.args = { "--round_digits 5 --blocking_variables $meta.blocking --vs_method rlog" } + ext.args = { [ + "--round_digits 5", + "--vs_method rlog", + (meta.blocking == null) ? "" : "--blocking_variables $meta.blocking" + ].join(' ').trim() } ext.prefix = { "${meta.id}_${meta.method}" } } diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config index 8bd211bad64..dda5df4bcd4 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config +++ b/subworkflows/nf-core/abundance_differential_filter/tests/deseq2_limmavoom_propd_basic.config @@ -1,6 +1,10 @@ process { withName: 'DESEQ2_DIFFERENTIAL' { - ext.args = { "--round_digits 5 --blocking_variables $meta.blocking --vs_method rlog" } + ext.args = { [ + "--round_digits 5", + "--vs_method rlog", + (meta.blocking == null) ? "" : "--blocking_variables $meta.blocking" + ].join(' ').trim() } ext.prefix = { "${meta.id}_${meta.method}" } } diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test index 8cbb8cf8767..500a2e800fe 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test @@ -16,7 +16,7 @@ nextflow_workflow { test("deseq2 - mouse - basic") { config './deseq2_basic.config' - tag "deseq2" + tag "deseq2_basic" when { workflow { @@ -74,7 +74,7 @@ nextflow_workflow { test("limma - basic - microarray") { config './limma_basic_microarray.config' - tag "limma" + tag "limma_basic_microarray" setup { run("UNTAR") { diff --git a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap index dba530f24eb..6795359ae88 100644 --- a/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap +++ b/subworkflows/nf-core/abundance_differential_filter/tests/main.nf.test.snap @@ -28,7 +28,7 @@ ] ], [ - + ], [ [ @@ -48,9 +48,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-07T16:33:03.091762783" + "timestamp": "2025-01-14T16:51:17.162826924" }, "deseq2 and limma - mouse - basic": { "content": [ @@ -157,38 +157,26 @@ [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" + "test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" ], [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "limma" }, - "treatment_mCherry_hND6__test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" + "test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" ] ], [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" + "test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" ] ], [ @@ -246,9 +234,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-07T16:34:54.548033825" + "timestamp": "2025-01-14T16:53:11.245100955" }, "limma - voom": { "content": [ @@ -283,14 +271,10 @@ [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "limma" }, - "treatment_mCherry_hND6__test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" + "test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" ] ], [ @@ -324,9 +308,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-07T16:33:26.97858478" + "timestamp": "2025-01-14T16:51:32.460857013" }, "deseq2 + limma-voom + propd - mouse - basic": { "content": [ @@ -505,38 +489,26 @@ [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" + "test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" ], [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "limma" }, - "treatment_mCherry_hND6__test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" + "test_limma_voom_norm.normalised_counts.tsv:md5,2aa4880ba5ae246a728b25f4316ca2ca" ] ], [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" + "test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" ] ], [ @@ -596,9 +568,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-13T16:07:08.941008861" + "timestamp": "2025-01-14T16:53:54.80697542" }, "stub": { "content": [ @@ -656,32 +628,24 @@ ] ], "2": [ - + ], "3": [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test.normalised_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.normalised_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "4": [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test.rlog.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.rlog.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "5": [ @@ -713,7 +677,7 @@ "versions.yml:md5,05e3901f6d78f8839a7e07f422e9bc03" ], "adjacency": [ - + ], "model": [ [ @@ -742,14 +706,10 @@ "normalised_matrix": [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test.normalised_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.normalised_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "results_genewise": [ @@ -807,14 +767,10 @@ "variance_stabilised_matrix": [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test.rlog.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.rlog.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ @@ -825,9 +781,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-13T15:08:45.989521056" + "timestamp": "2025-01-14T16:54:12.823125892" }, "deseq2 - mouse - basic": { "content": [ @@ -886,27 +842,19 @@ [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_voom_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" + "test_deseq2_norm.normalised_counts.tsv:md5,46ab7200c626649ab6256ed797ef5071" ] ], [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_voom_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" + "test_deseq2_norm.rlog.tsv:md5,b1adc1fba6bd0c8b55973608f4b97030" ] ], [ @@ -940,9 +888,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-07T16:32:17.301539736" + "timestamp": "2025-01-14T16:50:35.085607799" }, "deseq2 - with transcript lengths": { "content": [ @@ -1001,27 +949,19 @@ [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_voom_norm.normalised_counts.tsv:md5,7050f44c460cc13e3f101d048d503527" + "test_deseq2_norm.normalised_counts.tsv:md5,7050f44c460cc13e3f101d048d503527" ] ], [ [ { - "id": "treatment_mCherry_hND6__test", - "variable": "treatment", - "reference": "mCherry", - "target": "hND6", - "blocking": "", + "id": "test", "method": "deseq2" }, - "treatment_mCherry_hND6__test_deseq2_voom_norm.rlog.tsv:md5,22a4b117246b2317e0f4daf7919703f2" + "test_deseq2_norm.rlog.tsv:md5,22a4b117246b2317e0f4daf7919703f2" ] ], [ @@ -1055,9 +995,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-07T16:34:05.584119298" + "timestamp": "2025-01-14T16:52:07.822745077" }, "propd - mouse - basic": { "content": [ @@ -1144,8 +1084,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.2" + "nextflow": "24.10.3" }, - "timestamp": "2024-12-13T15:02:45.903371649" + "timestamp": "2025-01-14T16:52:25.336720308" } -} +} \ No newline at end of file From 070b1ad7a9732b2ddc66fbb1407da05af8ff8ff9 Mon Sep 17 00:00:00 2001 From: Michael L Heuer Date: Thu, 16 Jan 2025 07:10:34 -0600 Subject: [PATCH 19/19] Update seqkit to version 2.9.0 (#7314) * Update seqkit to version 2.9.0 * Add stub sections where missing * Update nf-test checksums --- modules/nf-core/seqkit/fx2tab/environment.yml | 2 +- modules/nf-core/seqkit/fx2tab/main.nf | 16 +++++- .../seqkit/fx2tab/tests/main.nf.test.snap | 34 ++++++------ modules/nf-core/seqkit/tab2fx/environment.yml | 2 +- modules/nf-core/seqkit/tab2fx/main.nf | 16 +++++- .../seqkit/tab2fx/tests/main.nf.test.snap | 54 +++++++++---------- 6 files changed, 74 insertions(+), 50 deletions(-) diff --git a/modules/nf-core/seqkit/fx2tab/environment.yml b/modules/nf-core/seqkit/fx2tab/environment.yml index 41f3e7de43d..1f93892f485 100644 --- a/modules/nf-core/seqkit/fx2tab/environment.yml +++ b/modules/nf-core/seqkit/fx2tab/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::seqkit=2.8.1 + - bioconda::seqkit=2.9.0 diff --git a/modules/nf-core/seqkit/fx2tab/main.nf b/modules/nf-core/seqkit/fx2tab/main.nf index d96b0b9d370..7a3f4103391 100644 --- a/modules/nf-core/seqkit/fx2tab/main.nf +++ b/modules/nf-core/seqkit/fx2tab/main.nf @@ -4,8 +4,8 @@ process SEQKIT_FX2TAB { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqkit:2.8.1--h9ee0642_0' : - 'biocontainers/seqkit:2.8.1--h9ee0642_0' }" + 'https://depot.galaxyproject.org/singularity/seqkit:2.9.0--h9ee0642_0' : + 'biocontainers/seqkit:2.9.0--h9ee0642_0' }" input: tuple val(meta), path(fastx) @@ -34,4 +34,16 @@ process SEQKIT_FX2TAB { seqkit: \$( seqkit | sed '3!d; s/Version: //' ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = task.ext.suffix ?: "txt.zst" + """ + touch ${prefix}.${suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit | sed '3!d; s/Version: //' ) + END_VERSIONS + """ } diff --git a/modules/nf-core/seqkit/fx2tab/tests/main.nf.test.snap b/modules/nf-core/seqkit/fx2tab/tests/main.nf.test.snap index 29421657250..38c0b645ee2 100644 --- a/modules/nf-core/seqkit/fx2tab/tests/main.nf.test.snap +++ b/modules/nf-core/seqkit/fx2tab/tests/main.nf.test.snap @@ -7,30 +7,30 @@ { "id": "test" }, - "test.txt.zst:md5,08902131ebe68052a97178bc426bf944" + "test.txt.zst:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ], "text": [ [ { "id": "test" }, - "test.txt.zst:md5,08902131ebe68052a97178bc426bf944" + "test.txt.zst:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-07T16:01:39.484590737" + "timestamp": "2025-01-15T12:18:24.281141" }, "sarscov2 - fasta": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ], "text": [ [ @@ -55,15 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-07T16:01:21.332957847" + "timestamp": "2025-01-15T12:18:14.007765" }, "sarscov2 - fastq": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ], "text": [ [ @@ -88,14 +88,14 @@ ] ], "versions": [ - "versions.yml:md5,ba37c06c2d66e54301b2cd35ae47d0e8" + "versions.yml:md5,b35c25f76ae716eb6bed4f18abf12d50" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-07T16:01:29.885155029" + "timestamp": "2025-01-15T12:18:19.228692" } } \ No newline at end of file diff --git a/modules/nf-core/seqkit/tab2fx/environment.yml b/modules/nf-core/seqkit/tab2fx/environment.yml index 41f3e7de43d..1f93892f485 100644 --- a/modules/nf-core/seqkit/tab2fx/environment.yml +++ b/modules/nf-core/seqkit/tab2fx/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::seqkit=2.8.1 + - bioconda::seqkit=2.9.0 diff --git a/modules/nf-core/seqkit/tab2fx/main.nf b/modules/nf-core/seqkit/tab2fx/main.nf index 9532cfc5918..9cdee7d30ba 100644 --- a/modules/nf-core/seqkit/tab2fx/main.nf +++ b/modules/nf-core/seqkit/tab2fx/main.nf @@ -4,8 +4,8 @@ process SEQKIT_TAB2FX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqkit:2.8.1--h9ee0642_0' : - 'biocontainers/seqkit:2.8.1--h9ee0642_0' }" + 'https://depot.galaxyproject.org/singularity/seqkit:2.9.0--h9ee0642_0' : + 'biocontainers/seqkit:2.9.0--h9ee0642_0' }" input: tuple val(meta), path(text) @@ -34,4 +34,16 @@ process SEQKIT_TAB2FX { seqkit: \$( seqkit | sed '3!d; s/Version: //' ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = task.ext.suffix ?: "fa.zst" + """ + touch ${prefix}.${suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit | sed '3!d; s/Version: //' ) + END_VERSIONS + """ } diff --git a/modules/nf-core/seqkit/tab2fx/tests/main.nf.test.snap b/modules/nf-core/seqkit/tab2fx/tests/main.nf.test.snap index 857a2b2e953..91c6fbbb5c2 100644 --- a/modules/nf-core/seqkit/tab2fx/tests/main.nf.test.snap +++ b/modules/nf-core/seqkit/tab2fx/tests/main.nf.test.snap @@ -7,30 +7,30 @@ { "id": "test" }, - "test.fa.zst:md5,04d45a85c10933605cb5a289552c83a0" + "test.fa.zst:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ], "fastx": [ [ { "id": "test" }, - "test.fa.zst:md5,04d45a85c10933605cb5a289552c83a0" + "test.fa.zst:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T08:24:24.025365917" + "timestamp": "2025-01-15T12:20:30.19388" }, "fastq_gz": { "content": [ @@ -44,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ], "fastx": [ [ @@ -55,15 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T08:24:12.779036251" + "timestamp": "2025-01-15T12:20:25.318142" }, "fasta_gz": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ], "fastx": [ [ @@ -88,15 +88,15 @@ ] ], "versions": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T08:24:00.497912668" + "timestamp": "2025-01-15T12:20:19.111781" }, "fasta": { "content": [ @@ -110,7 +110,7 @@ ] ], "1": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ], "fastx": [ [ @@ -121,15 +121,15 @@ ] ], "versions": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T08:23:31.940090506" + "timestamp": "2025-01-15T12:20:06.405339" }, "fastq": { "content": [ @@ -143,7 +143,7 @@ ] ], "1": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ], "fastx": [ [ @@ -154,14 +154,14 @@ ] ], "versions": [ - "versions.yml:md5,60fb327ac9a1ed20945fbb049faa7e36" + "versions.yml:md5,d01878090b875a05b111ee8a68405491" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.3" }, - "timestamp": "2024-05-08T08:23:46.059347765" + "timestamp": "2025-01-15T12:20:12.813847" } } \ No newline at end of file