From c71b6f715dddedc7f7a16d16738031b1b177c547 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 29 Oct 2025 10:41:45 +0100 Subject: [PATCH 1/3] WIP --- main.nf | 13 +- modules.json | 20 ++- modules/nf-core/barrnap/environment.yml | 7 + modules/nf-core/barrnap/main.nf | 56 ++++++++ modules/nf-core/barrnap/meta.yml | 53 +++++++ modules/nf-core/barrnap/tests/main.nf.test | 57 ++++++++ .../nf-core/barrnap/tests/main.nf.test.snap | 72 ++++++++++ modules/nf-core/trnascanse/environment.yml | 7 + modules/nf-core/trnascanse/main.nf | 75 ++++++++++ modules/nf-core/trnascanse/meta.yml | 116 +++++++++++++++ modules/nf-core/trnascanse/tests/main.nf.test | 62 ++++++++ .../trnascanse/tests/main.nf.test.snap | 136 ++++++++++++++++++ subworkflows/local/rna_detection.nf | 35 +++++ 13 files changed, 695 insertions(+), 14 deletions(-) create mode 100644 modules/nf-core/barrnap/environment.yml create mode 100644 modules/nf-core/barrnap/main.nf create mode 100644 modules/nf-core/barrnap/meta.yml create mode 100644 modules/nf-core/barrnap/tests/main.nf.test create mode 100644 modules/nf-core/barrnap/tests/main.nf.test.snap create mode 100644 modules/nf-core/trnascanse/environment.yml create mode 100644 modules/nf-core/trnascanse/main.nf create mode 100644 modules/nf-core/trnascanse/meta.yml create mode 100644 modules/nf-core/trnascanse/tests/main.nf.test create mode 100644 modules/nf-core/trnascanse/tests/main.nf.test.snap create mode 100644 subworkflows/local/rna_detection.nf diff --git a/main.nf b/main.nf index 9bc5af7..c072f30 100644 --- a/main.nf +++ b/main.nf @@ -19,6 +19,7 @@ include { GENOMESUBMIT } from './workflows/genomesubmit' include { ASSEMBLYSUBMIT } from './workflows/assemblysubmit' include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_seqsubmit_pipeline' include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_seqsubmit_pipeline' +include { RNA_DETECTION } from './subworkflows/local/rna_detection' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NAMED WORKFLOWS FOR PIPELINE @@ -39,16 +40,10 @@ workflow NFCORE_SEQSUBMIT { // WORKFLOW: Run pipeline // // Depending on the input type (mags/bins or metagenomic_assemblies), one or the another workflow will be triggered - if (params.mode == "mags") { + if ((params.mode == "mags") || (params.mode == "bins")) { GENOMESUBMIT ( samplesheet, - "mags" - ) - ch_multiqc_report = GENOMESUBMIT.out.multiqc_report - } else if (params.mode == "bins") { - GENOMESUBMIT ( - samplesheet, - "bins" + params.mode ) ch_multiqc_report = GENOMESUBMIT.out.multiqc_report } else if (params.mode == "metagenomic_assemblies") { @@ -58,8 +53,6 @@ workflow NFCORE_SEQSUBMIT { ch_multiqc_report = ASSEMBLYSUBMIT.out.multiqc_report } - - emit: multiqc_report = ch_multiqc_report // channel: /path/to/multiqc_report.html } diff --git a/modules.json b/modules.json index 0727774..c307046 100644 --- a/modules.json +++ b/modules.json @@ -5,21 +5,33 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { + "barrnap": { + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": ["modules"] + }, "coverm/contig": { "branch": "master", "git_sha": "27e31681fdbf1e511257355a236037a8cd9c2b2e", "installed_by": ["modules"] }, "fastavalidator": { - "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", - "installed_by": ["modules"], - "patch": "modules/nf-core/fastavalidator/fastavalidator.diff" + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": [ + "modules" + ], + "patch": "modules/nf-core/fastavalidator/fastavalidator.diff" }, "multiqc": { "branch": "master", "git_sha": "af27af1be706e6a2bb8fe454175b0cdf77f47b49", "installed_by": ["modules"] + }, + "trnascanse": { + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": ["modules"] } } }, diff --git a/modules/nf-core/barrnap/environment.yml b/modules/nf-core/barrnap/environment.yml new file mode 100644 index 0000000..f355fb7 --- /dev/null +++ b/modules/nf-core/barrnap/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::barrnap=0.9 diff --git a/modules/nf-core/barrnap/main.nf b/modules/nf-core/barrnap/main.nf new file mode 100644 index 0000000..b99573d --- /dev/null +++ b/modules/nf-core/barrnap/main.nf @@ -0,0 +1,56 @@ +process BARRNAP { + 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/barrnap:0.9--hdfd78af_4': + 'biocontainers/barrnap:0.9--hdfd78af_4' }" + + input: + tuple val(meta), path(fasta), val(dbname) + + 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}" + db = dbname ? "${dbname}" : 'bac' + input = fasta =~ /\.gz$/ ? fasta.name.take(fasta.name.lastIndexOf('.')) : fasta + gunzip = fasta =~ /\.gz$/ ? "gunzip -c ${fasta} > ${input}" : "" + + """ + $gunzip + + barrnap \\ + $args \\ + --threads $task.cpus \\ + --kingdom $db \\ + $input \\ + > ${prefix}_${db}.gff + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + barrnap: \$(echo \$(barrnap --version 2>&1) | sed 's/barrnap//; s/Using.*\$//' ) + END_VERSIONS + + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + db = dbname ? "${dbname}" : 'bac' + """ + touch ${prefix}_${db}.gff + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + barrnap: \$(echo \$(barrnap --version 2>&1) | sed 's/barrnap//; s/Using.*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/barrnap/meta.yml b/modules/nf-core/barrnap/meta.yml new file mode 100644 index 0000000..94db1e7 --- /dev/null +++ b/modules/nf-core/barrnap/meta.yml @@ -0,0 +1,53 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "barrnap" +description: barrnap uses a hmmer profile to find rrnas in reads or contig fasta files +keywords: + - rrna + - sequences + - removal +tools: + - "barrnap": + description: "Barrnap predicts the location of ribosomal RNA genes in genomes + (bacteria, archaea, metazoan mitochondria and eukaryotes)." + homepage: "https://github.com/tseemann/barrnap" + documentation: "https://github.com/tseemann/barrnap" + tool_dev_url: "https://github.com/tseemann/barrnap" + licence: ["GPL v3"] + identifier: biotools:barrnap +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - fasta: + type: file + description: fasta file + pattern: "*.fasta" + ontologies: [] + - dbname: + type: string + description: database to use(bacteria, archaea, eukaryota, metazoan mitochondria) +output: + gff: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - "*.gff": + type: file + description: gff file containing coordinates of genes + pattern: "*.gff" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML +authors: + - "@danilodileo" +maintainers: + - "@danilodileo" diff --git a/modules/nf-core/barrnap/tests/main.nf.test b/modules/nf-core/barrnap/tests/main.nf.test new file mode 100644 index 0000000..b2d6216 --- /dev/null +++ b/modules/nf-core/barrnap/tests/main.nf.test @@ -0,0 +1,57 @@ +nextflow_process { + + name "Test Process BARRNAP" + script "../main.nf" + process "BARRNAP" + tag "modules" + tag "modules_nfcore" + tag "barrnap" + + test("barrnap") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true), + "bac" + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("barrnap - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fasta/contigs.fasta', checkIfExists: true), + "bac" + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} + + diff --git a/modules/nf-core/barrnap/tests/main.nf.test.snap b/modules/nf-core/barrnap/tests/main.nf.test.snap new file mode 100644 index 0000000..0964a0d --- /dev/null +++ b/modules/nf-core/barrnap/tests/main.nf.test.snap @@ -0,0 +1,72 @@ +{ + "barrnap - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_bac.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,447eafa60f76f6b84d1c41a2f5c2f76b" + ], + "gff": [ + [ + { + "id": "test", + "single_end": false + }, + "test_bac.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,447eafa60f76f6b84d1c41a2f5c2f76b" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-07-10T11:25:35.085998" + }, + "barrnap": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_bac.gff:md5,df19e1b84ba6f691d20c72b397c88abf" + ] + ], + "1": [ + "versions.yml:md5,447eafa60f76f6b84d1c41a2f5c2f76b" + ], + "gff": [ + [ + { + "id": "test", + "single_end": false + }, + "test_bac.gff:md5,df19e1b84ba6f691d20c72b397c88abf" + ] + ], + "versions": [ + "versions.yml:md5,447eafa60f76f6b84d1c41a2f5c2f76b" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-07-10T11:25:28.621027" + } +} \ No newline at end of file diff --git a/modules/nf-core/trnascanse/environment.yml b/modules/nf-core/trnascanse/environment.yml new file mode 100644 index 0000000..b592b31 --- /dev/null +++ b/modules/nf-core/trnascanse/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::trnascan-se=2.0.12" diff --git a/modules/nf-core/trnascanse/main.nf b/modules/nf-core/trnascanse/main.nf new file mode 100644 index 0000000..943afdd --- /dev/null +++ b/modules/nf-core/trnascanse/main.nf @@ -0,0 +1,75 @@ +process TRNASCANSE { + tag "${meta.id}" + label "process_medium" + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/trnascan-se:2.0.12--pl5321h7b50bb2_2': + 'biocontainers/trnascan-se:2.0.12--pl5321h7b50bb2_2' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.tsv") , emit: tsv + tuple val(meta), path("*.log") , emit: log + tuple val(meta), path("*.stats") , emit: stats + tuple val(meta), path("*.fasta") , emit: fasta , optional: true + tuple val(meta), path("*.gff") , emit: gff , optional: true + tuple val(meta), path("*.bed") , emit: bed , optional: true + path("versions.yml") , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def input = fasta.toString() - ~/\.gz$/ + def unzip = fasta.getExtension() == "gz" ? "gunzip -c ${fasta} > ${input}" : "" + def cleanup = fasta.getExtension() == "gz" ? "rm ${input}" : "" + """ + ${unzip} + + ## larger genomes can fill up the limited temp space in the singularity container + ## expected location of the default config file is with the exectuable + ## copy this and modify to use the working dir as the temp directory + conf=\$(which tRNAscan-SE).conf + cp \${conf} trnascan.conf + sed -i s#/tmp#.#g trnascan.conf + + tRNAscan-SE \\ + --thread ${task.cpus} \\ + -c trnascan.conf \\ + ${args} \\ + -o ${prefix}.tsv \\ + -l ${prefix}.log \\ + -m ${prefix}.stats \\ + ${input} + + find . -name "*.fasta" -exec gzip {} \\; + + ${cleanup} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tRNAscan-SE: \$(tRNAscan-SE 2>&1 >/dev/null | awk 'NR==2 {print \$2}') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + touch ${prefix}.log + touch ${prefix}.stats + echo '' | gzip > ${prefix}.fasta.gz + touch ${prefix}.gff + touch ${prefix}.bed + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tRNAscan-SE: \$(tRNAscan-SE 2>&1 >/dev/null | awk 'NR==2 {print \$2}') + END_VERSIONS + """ +} diff --git a/modules/nf-core/trnascanse/meta.yml b/modules/nf-core/trnascanse/meta.yml new file mode 100644 index 0000000..ec84bb1 --- /dev/null +++ b/modules/nf-core/trnascanse/meta.yml @@ -0,0 +1,116 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "trnascanse" +description: Detection of tRNA sequences using covariance models +keywords: + - covariance models + - trna + - genome annotation +tools: + - "trnascanse": + description: "tRNA detection in large-scale genomic sequences" + homepage: "http://lowelab.ucsc.edu/tRNAscan-SE/help.html" + documentation: "http://lowelab.ucsc.edu/tRNAscan-SE/help.html" + tool_dev_url: "https://github.com/UCSC-LoweLab/tRNAscan-SE" + doi: "10.1093/nar/gkab688" + licence: ["GPL v3", "GPL v3-or-later"] + identifier: biotools:trnascan-se + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - fasta: + type: file + description: | + Fasta file for tRNA annotation. Can be gzipped. + ontologies: + - edam: "http://edamontology.org/format_1929" + +output: + tsv: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.tsv": + type: file + description: TSV summary output of tRNA annotations + pattern: "*.tsv" + ontologies: + - edam: "http://edamontology.org/format_3475" + log: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.log": + type: file + description: tRNAScan-SE log file + pattern: "*.log" + ontologies: + - edam: "http://edamontology.org/data_3671" + stats: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.stats": + type: file + description: Unstructured results file describing tRNA annotations + pattern: "*.stats" + ontologies: + - edam: "http://edamontology.org/data_3671" + fasta: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.fasta": + type: file + description: | + (optional) FASTA output of annotated tRNA sequences + pattern: "*.fasta.gz" + ontologies: + - edam: "http://edamontology.org/format_1929" + - edam: http://edamontology.org/format_3989 # GZIP format + gff: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.gff": + type: file + description: | + (optional) GFF annotation of tRNA sequences in input fasta + ontologies: + - edam: "http://edamontology.org/format_1975" + bed: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.bed": + type: file + description: | + (optional) BED annotation of tRNA sequences in input fasta + ontologies: + - edam: "http://edamontology.org/format_3003" + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: "http://edamontology.org/format_3750" +authors: + - "@prototaxites" +maintainers: + - "@prototaxites" diff --git a/modules/nf-core/trnascanse/tests/main.nf.test b/modules/nf-core/trnascanse/tests/main.nf.test new file mode 100644 index 0000000..ad3b5fc --- /dev/null +++ b/modules/nf-core/trnascanse/tests/main.nf.test @@ -0,0 +1,62 @@ +nextflow_process { + + name "Test Process TRNASCANSE" + script "../main.nf" + process "TRNASCANSE" + + tag "modules" + tag "modules_nfcore" + tag "trnascanse" + + test("bacteroides fragilis - write all") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.log[0][1]).readLines().first().contains("Application: tRNAscan-SE") }, // timestamped log + { assert path(process.out.stats[0][1]).getText().contains("scan results") }, // timestamped log + { assert snapshot( + process.out.tsv, + process.out.versions + ).match() } + ) + } + + } + + test("bacteroides fragilis - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/trnascanse/tests/main.nf.test.snap b/modules/nf-core/trnascanse/tests/main.nf.test.snap new file mode 100644 index 0000000..4ad2249 --- /dev/null +++ b/modules/nf-core/trnascanse/tests/main.nf.test.snap @@ -0,0 +1,136 @@ +{ + "bacteroides fragilis - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + "versions.yml:md5,a16c909b344a78a4197ae3a50d9dee7c" + ], + "bed": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fasta": [ + + ], + "gff": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "stats": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tsv": [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,a16c909b344a78a4197ae3a50d9dee7c" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T11:43:23.206937928" + }, + "bacteroides fragilis - write all": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.tsv:md5,23c19ff33ce36f041803b5b3e7b7681b" + ] + ], + [ + "versions.yml:md5,a16c909b344a78a4197ae3a50d9dee7c" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-26T09:20:50.44529432" + } +} \ No newline at end of file diff --git a/subworkflows/local/rna_detection.nf b/subworkflows/local/rna_detection.nf new file mode 100644 index 0000000..5dc2266 --- /dev/null +++ b/subworkflows/local/rna_detection.nf @@ -0,0 +1,35 @@ +// +// Subworkflow that calculates tRNA and rRNA and make a decision od MIMAG standard +// + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { BARRNAP } from '../../modules/nf-core/barrnap' +include { TRNASCANSE } from '../../modules/nf-core/trnascanse' + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + SUBWORKFLOW +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +workflow RNA_DETECTION { + take: + fasta + + main: + + ch_versions = Channel.empty() + BARRNAP( + fasta.map {id, fasta -> [id, fasta, "bac"]} + ) + + TRNASCANSE( + fasta + ) + +} \ No newline at end of file From b11c901f2fc83ac46c77aaac2ec8203fd84f3b85 Mon Sep 17 00:00:00 2001 From: kates Date: Tue, 28 Oct 2025 22:49:53 +0100 Subject: [PATCH 2/3] Template update for nf-core/tools version 3.4.1 --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- assets/email_template.html | 1 - assets/nf-core-seqsubmit_logo_light.png | Bin 78570 -> 76080 bytes docs/images/nf-core-seqsubmit_logo_dark.png | Bin 29867 -> 29489 bytes nextflow.config | 2 +- nextflow_schema.json | 2 +- .../utils_nfcore_seqsubmit_pipeline/main.nf | 2 +- 7 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b11e611..973bab4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -8,14 +8,14 @@ These are the most common things requested on pull requests (PRs). Remember that PRs should be made against the dev branch, unless you're preparing a pipeline release. -Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/seqsubmit/tree/main/.github/CONTRIBUTING.md) +Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/seqsubmit/tree/master/.github/CONTRIBUTING.md) --> ## PR checklist - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! -- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/seqsubmit/tree/main/.github/CONTRIBUTING.md) +- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/seqsubmit/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/seqsubmit _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core pipelines lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). diff --git a/assets/email_template.html b/assets/email_template.html index be7ba8f..fddf429 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -3,7 +3,6 @@ - nf-core/seqsubmit Pipeline Report diff --git a/assets/nf-core-seqsubmit_logo_light.png b/assets/nf-core-seqsubmit_logo_light.png index deb010b31028cfe6cd76346c14f580d2f0a717f5..69bca1c7be0e7e834e53651a438026f926f71038 100644 GIT binary patch literal 76080 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 literal 78570 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 diff --git a/docs/images/nf-core-seqsubmit_logo_dark.png b/docs/images/nf-core-seqsubmit_logo_dark.png index d3b869e409ea2f0e85d5d3944fc6428feb974834..37f95d8d044d1eea06eb57f80b4c178bf06c66ee 100644 GIT binary patch literal 29489 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 JxyGK z`0^Km@dKm$*Blk-)xDlyVJz&rPWD!NhiBprZjh#r!U&0uDrYyEdv8zqpFyXiGp91x8N-r&W&YdU z@AX0HU9QsgeDeM_A3e`%Eq|zs2X5U5)zbuyQ6s7Y-5ch)G}xOSOQs72?oy;Nb3L^$ z84C$j0I-ja74T(ON+WE(=RFr-jBhL@7b!c9_5Z9t+*BuVPkbcRSZl_bm|1x@T9=8S zJ1N05zVwQ9#hppcjq*q6)Y@8TbkXU;zN4M6v??V204{xA_yungi#MrYXB~K;BmCrU;-kGTmh|*EP!w1{|Fi z3~&2Ay_uc=q#$GB>e2&%-%=peJSC7NIDolTKIK1%EdMiO!+BY98dA!U0iBy}nGM?A zoS+;CrebK2fk4pj3~Sl4s%2b1GRu}ij$8UnN>^#1T1Fa%v$LmF& zJ&kJp$3t20+ptJ!I%7gN*tM-SV@U;}{lU9xwV|tzE9wW+Po1Y`^lrk;$MfvDI;rv| zuCFp$?X1)f|M3`4vNlR5Ckx-ag49^4opUovp**b{8Sz&iyW#buk{_TT!|u3OBZQ`bPGAoR%3tKs7axVrs!wzDn)%62 ztS>PYy?gkyfhqZcX%T~ZT}W@)G7Uhi0-wnUxWA-l1o2$YJOBzi8Ki#E&W1pRQ|tkD zG9p+ZD8`SY#-*CS@Y$`C2eF@5u^=D^F|)++&XPXGb!%kX?>7NDjyq2#^weQ&8a@ru zDm+ojg5upzZ~kG0)a>7X*%pEpF^6A8DT)Jv5ScPS+V6F#D_?yR(s7B+Af*xnqRw0i zUU!P_PlFVWH-3pZRI`904}|2ST+UrqVE{@GNxk?V$nL4>F+WxJ{LXI*a}p{H1<9_{ zjN7eKWZyu~CcJ695XER_ zuzaY4cxf=;a#tr-fY*(5RLjaATT?yd*Bw`_r7A(bsu>yNu63lmWGb+hxiw!4i#dS}` z=OncQxlmTNJ3sOcemIoeG*<`$w~WOK2rXL^oQ^*c5_8Qk@Wn)Lp-!5I2g4*lrW_KC zmR1%Qr{12UGVoRFM>cOXmUA;2+`XBgWpI3`Y~)dqO~qEng)wIviT@KR`N^jNfYqOzL;_U$ z=dPtdpW*!H9kTOcRs-;~7F1{BT@I8Y@T`=h{GVgMkjpi+O6c@G;TKh^J4Zkj?3%5Y zXR*Ydab&L->&v?1C6F1_$C}o8Dk69MS$mIHJsdM1quj>hPI9%~ULClz`Y?7T5QP(u zh9AdN$(gcj`n}?8VlD4geahmMoHGxAzH5||aGG;P_(ks{l%j}HgMJ4;htZM?hDAX7 zoKh#!x6AHjL_R zNO>A6V@M76g*+5N_5H|#a1H|N_Mnkx;MIAP>qIYcnCUrC(|6=aJG52oPnOE6>2VPt zS@4JX2!gom@u`%~YNgSV=kd2Be|L~Rl>Rl@5Oa> z$EH3POL9IP)Q3bDJXhtAIw#!+tn=f$sE5?s>}qF%{4H_Czz1JCy@Dt3i{;D5k2@xI z7mvp&HwUzy(KF5tV~4CieI-skngqFkLCc@xr@q7Akdv&hCiNKwV_E2$l_BfJe4$N1 z_Cxhrk%07ilDLcF!EX18IEg`&p3TYpf^xk5w)){Ij8y^5SA@W!}@=yG&Va?^uO%0AjJ86#{@j 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≺BO9NQOz=O(U^7=hU6w<7)%JGG!tyf1OaC<5 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 TL=5~0Da7o&HL}{s^X~rujntsz diff --git a/nextflow.config b/nextflow.config index 18d11c5..3492c54 100644 --- a/nextflow.config +++ b/nextflow.config @@ -285,7 +285,7 @@ manifest { homePage = 'https://github.com/nf-core/seqsubmit' description = """Submit sequences, assemblies, MAGs, etc., to public archives""" mainScript = 'main.nf' - defaultBranch = 'main' + defaultBranch = 'master' nextflowVersion = '!>=25.04.0' version = '1.0.0dev' doi = '' diff --git a/nextflow_schema.json b/nextflow_schema.json index 5744a32..b5da919 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/main/nextflow_schema.json", + "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/master/nextflow_schema.json", "title": "nf-core/seqsubmit pipeline parameters", "description": "Submit sequences, assemblies, MAGs, etc., to public archives", "type": "object", diff --git a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf index f1def27..8a19c8a 100644 --- a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf @@ -69,7 +69,7 @@ workflow PIPELINE_INITIALISATION { https://doi.org/10.1038/s41587-020-0439-x * Software dependencies - https://github.com/nf-core/seqsubmit/blob/main/CITATIONS.md + https://github.com/nf-core/seqsubmit/blob/master/CITATIONS.md """ command = "nextflow run ${workflow.manifest.name} -profile --input samplesheet.csv --outdir " From e2843f47db3e2b13b850099b398cffaa945e0d83 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 30 Oct 2025 11:49:47 +0000 Subject: [PATCH 3/3] RNA detection subwf --- .nf-core.yml | 3 + assets/email_template.html | 1 + assets/samplesheet_genomes.csv | 2 +- assets/schema_input_genome.json | 55 +++++++++-- bin/count_rna.py | 103 ++++++++++++++++++++ main.nf | 4 +- modules.json | 10 +- modules/local/count_rna/main.nf | 35 +++++++ modules/local/genome_upload/main.nf | 6 +- modules/local/registerstudy/main.nf | 3 +- nextflow.config | 4 + nextflow_schema.json | 24 +++++ ro-crate-metadata.json | 2 +- subworkflows/local/rna_detection.nf | 13 ++- workflows/genomesubmit.nf | 144 ++++++++++++++++------------ 15 files changed, 329 insertions(+), 80 deletions(-) create mode 100755 bin/count_rna.py create mode 100644 modules/local/count_rna/main.nf diff --git a/.nf-core.yml b/.nf-core.yml index fe3b66c..f387f1f 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -6,6 +6,9 @@ lint: - params.input files_unchanged: - .github/PULL_REQUEST_TEMPLATE.md + - docs/images/nf-core-seqsubmit_logo_light.png + - docs/images/nf-core-seqsubmit_logo_dark.png + - assets/nf-core-seqsubmit_logo_light.png nf_core_version: 3.5.1 repository_type: pipeline template: diff --git a/assets/email_template.html b/assets/email_template.html index fddf429..be7ba8f 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -3,6 +3,7 @@ + nf-core/seqsubmit Pipeline Report diff --git a/assets/samplesheet_genomes.csv b/assets/samplesheet_genomes.csv index c48889d..44a8138 100644 --- a/assets/samplesheet_genomes.csv +++ b/assets/samplesheet_genomes.csv @@ -1,3 +1,3 @@ -sample,fasta,accession,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,rRNA_presence,NCBI_lineage +sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,rRNA_presence,NCBI_lineage lachnospira_eligens,https://github.com/nf-core/test-datasets/raw/seqsubmit/test_data/bins/bin_lachnospira_eligens.fa.gz,SRR24458089,spades_v3.15.5,mags_v1,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,False,marine,cable bacteria,marine sediment,False,d__Bacteria;p__Proteobacteria;c__Deltaproteobacteria;o__Desulfobacterales;f__Desulfobulbaceae;g__Candidatus Electrothrix;s__ lachnospiraceae,https://github.com/nf-core/test-datasets/raw/seqsubmit/test_data/bins/bin_lachnospiraceae.fa.gz,SRR24458087,spades_v3.15.5,mags_v1,default,CheckM2_v1.0.1,92.81,1.09,66.04,sediment metagenome,False,marine,cable bacteria,marine sediment,False,d__Bacteria;p__Proteobacteria;c__Deltaproteobacteria;o__Desulfobacterales;f__Desulfobulbaceae;g__Candidatus Electrothrix;s__Candidatus Electrothrix marina diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 388673d..c32be85 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -25,6 +25,38 @@ "type": "string", "description": "Run or assembly ENA accession" }, + "fastq_1": { + "anyOf": [ + { + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^\\S+\\.(fq|fastq)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)", + "description": "Forward reads if paired-end or single-end reads FASTQ file" + }, + "fastq_2": { + "anyOf": [ + { + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^\\S+\\.(fq|fastq)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", + "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" + }, "assembly_software": { "type": "string", "description": "Tool name and version that was used to assemble data" @@ -58,8 +90,8 @@ "description": "ENA accepted metagenome name" }, "co-assembly": { - "type": "boolean", - "description": "True if data was co-assembled, False otherwise" + "type": "string", + "description": "Yes if data was co-assembled, No otherwise" }, "broad_environment": { "type": "string", @@ -73,15 +105,26 @@ "type": "string", "description": "material displaced by the sample" }, - "rRNA_presence": { - "type": "boolean", - "description": "True/False if rRNA genes detected" + "RNA_presence": { + "type": "string", + "description": "Yes/No if rRNA genes detected" }, "NCBI_lineage": { "type": "string", "description": "full NCBI lineage - format: x;y;z" } }, - "required": ["sample", "fasta"] + "required": [ + "sample", + "fasta", + "assembly_software", + "co-assembly", + "binning_software", + "binning_parameters", + "metagenome", + "broad_environment", + "local_environment", + "environmental_medium" + ] } } diff --git a/bin/count_rna.py b/bin/count_rna.py new file mode 100755 index 0000000..2bc9221 --- /dev/null +++ b/bin/count_rna.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python + +# This file is part of MGnify genome analysis pipeline. +# +# MGnify genome analysis pipeline is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# MGnify genome analysis pipeline is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with MGnify genome analysis pipeline. If not, see . + + +import argparse + +AA = [ + "Ala", + "Gly", + "Pro", + "Thr", + "Val", + "Ser", + "Arg", + "Leu", + "Phe", + "Asn", + "Lys", + "Asp", + "Glu", + "His", + "Gln", + "Ile", + "Met", + "Tyr", + "Cys", + "Trp", +] + +def parse_args(): + parser = argparse.ArgumentParser(description="Script detects counts of tRNA and rRNA") + parser.add_argument("-t", "--trna", dest="trna", help="trnas_stats.out from tRNAscan-SE", + required=True) + parser.add_argument("-r", "--rrna", dest="rrna", help="GFF from barrnap", + required=True) + parser.add_argument("-n", "--name", dest="name", help="FASTA Sequence identifier used for prediction", + required=True) + parser.add_argument("-o", "--output", dest="output", help="Name of output file (default: rna_decision.tsv)", + default="rna_decision.tsv", required=False) + parser.add_argument("--trna-limit", dest="trna_limit", help="Minimal required number of tRNA", + required=True, type=int) + parser.add_argument("--rrna-limit", dest="rrna_limit", help="Minimal required number of tRNA", + required=True, type=int) + return parser.parse_args() + + +def parse_trna(trna_input): + with open(trna_input, "r") as f: + trnas = 0 + flag = 0 + for line in f: + if "Isotype / Anticodon" in line: + flag = 1 + elif flag == 1: + cols = line.split() + if len(cols) > 1: + aa_pred = line.split(":")[0].split()[0] + counts = int(line.split(":")[1].split()[0]) + if aa_pred in AA: + trnas += counts + return trnas + + +def parse_rrna(rrna_input): + count = 0 + with open(rrna_input, 'r') as file_in: + for line in file_in: + if 'rRNA' in line: + count+=1 + return count + +def main(): + args = parse_args() + # parsing tRNA + trna_count = parse_trna(trna_input=args.trna) + print(f"Found {trna_count} tRNA") + # parsing rRNA + rrna_count = parse_rrna(rrna_input=args.rrna) + print(f"Found {rrna_count} rRNA") + + decision = "Yes" if trna_count >= int(args.trna_limit) and rrna_count >= int(args.rrna_limit) else "No" + print(f"RNA presented: {decision}") + + with open(args.output, 'w') as file_out: + file_out.write(f"{args.name}\t{str(decision)}") + + +if __name__ == "__main__": + main() diff --git a/main.nf b/main.nf index c072f30..87a0774 100644 --- a/main.nf +++ b/main.nf @@ -19,7 +19,6 @@ include { GENOMESUBMIT } from './workflows/genomesubmit' include { ASSEMBLYSUBMIT } from './workflows/assemblysubmit' include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_seqsubmit_pipeline' include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_seqsubmit_pipeline' -include { RNA_DETECTION } from './subworkflows/local/rna_detection' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NAMED WORKFLOWS FOR PIPELINE @@ -40,7 +39,7 @@ workflow NFCORE_SEQSUBMIT { // WORKFLOW: Run pipeline // // Depending on the input type (mags/bins or metagenomic_assemblies), one or the another workflow will be triggered - if ((params.mode == "mags") || (params.mode == "bins")) { + if (params.mode == "mags" || params.mode == "bins") { GENOMESUBMIT ( samplesheet, params.mode @@ -53,6 +52,7 @@ workflow NFCORE_SEQSUBMIT { ch_multiqc_report = ASSEMBLYSUBMIT.out.multiqc_report } + emit: multiqc_report = ch_multiqc_report // channel: /path/to/multiqc_report.html } diff --git a/modules.json b/modules.json index c307046..5def3a1 100644 --- a/modules.json +++ b/modules.json @@ -16,12 +16,10 @@ "installed_by": ["modules"] }, "fastavalidator": { - "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", - "installed_by": [ - "modules" - ], - "patch": "modules/nf-core/fastavalidator/fastavalidator.diff" + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": ["modules"], + "patch": "modules/nf-core/fastavalidator/fastavalidator.diff" }, "multiqc": { "branch": "master", diff --git a/modules/local/count_rna/main.nf b/modules/local/count_rna/main.nf new file mode 100644 index 0000000..ba25e7e --- /dev/null +++ b/modules/local/count_rna/main.nf @@ -0,0 +1,35 @@ +/* + * Calculate number of tRNA and rRNA detected +*/ +process COUNT_RNA { + + label 'process_low' + tag "${meta.id}" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biopython:1.75': + 'quay.io/biocontainers/biopython:1.75' }" + + input: + tuple val(meta), path(trnas_stats), path(rrna_gff) + + output: + tuple val(meta), path("*rna_decision.tsv"), emit: rna_decision + path "versions.yml", emit: versions + + script: + """ + count_rna.py \\ + --trna ${trnas_stats} \\ + --rrna ${rrna_gff} \\ + --name ${meta.id} \\ + --trna-limit ${params.trna_limit} \\ + --rrna-limit ${params.rrna_limit} \\ + --output ${meta.id}_rna_decision.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version 2>&1 | sed 's/Python //g') + biopython: \$(python -c "import pkg_resources; print(pkg_resources.get_distribution('biopython').version)") + END_VERSIONS + """ +} diff --git a/modules/local/genome_upload/main.nf b/modules/local/genome_upload/main.nf index 03e3d2c..f8bf1a5 100644 --- a/modules/local/genome_upload/main.nf +++ b/modules/local/genome_upload/main.nf @@ -1,14 +1,14 @@ process GENOME_UPLOAD { - tag "$meta.id" + tag "${mags_or_bins_flag}" label 'process_low' - container "community.wave.seqera.io/library/pip_genome-uploader:e2815984bcdc3e83" + container "quay.io/biocontainers/genome-uploader:2.5.1--pyhdfd78af_1" secret 'WEBIN_ACCOUNT' secret 'WEBIN_PASSWORD' input: - tuple val(meta), path(mags) + path(mags) path(table_for_upload) val(mags_or_bins_flag) diff --git a/modules/local/registerstudy/main.nf b/modules/local/registerstudy/main.nf index 96c4e47..0621043 100644 --- a/modules/local/registerstudy/main.nf +++ b/modules/local/registerstudy/main.nf @@ -21,13 +21,14 @@ process REGISTERSTUDY { def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ + echo "Generate study XMLs" study_xmls \\ $args \\ --study ${study} \\ --library ${library} \\ --center ${center} \\ - + echo "Submit study to ENA" submit_study \\ $args2 \\ --directory ${study}_upload \\ diff --git a/nextflow.config b/nextflow.config index 3492c54..00d8b79 100644 --- a/nextflow.config +++ b/nextflow.config @@ -25,6 +25,10 @@ params { test_upload = true webincli_submit = true + // rna detection + rrna_limit = 80 + trna_limit = 18 + // MultiQC options multiqc_config = null multiqc_title = null diff --git a/nextflow_schema.json b/nextflow_schema.json index b5da919..d31596a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -42,6 +42,27 @@ } } }, + "rna_detection_options": { + "title": "RNA detection options", + "type": "object", + "fa_icon": "fas fa-university", + "description": "Parameters used to make a decision about presence/absence of RNA in data", + "help_text": "ENA requires a boolean value (True/False) defining RNA. Decision of presence/absence of RNA is based on number of rRNA and tRNA. If both values are bigger than their corresponding limits - RNA is present (True), otherwise - not (False).", + "properties": { + "rrna_limit": { + "type": "number", + "description": "Minimum number of rRNA.", + "default": 80, + "fa_icon": "fas fa-users-cog" + }, + "trna_limit": { + "type": "number", + "description": "Minimum number of tRNA.", + "default": 18, + "fa_icon": "fas fa-users-cog" + } + } + }, "institutional_config_options": { "title": "Institutional config options", "type": "object", @@ -264,6 +285,9 @@ { "$ref": "#/$defs/input_output_options" }, + { + "$ref": "#/$defs/rna_detection_options" + }, { "$ref": "#/$defs/institutional_config_options" }, diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 7e757a0..befa2db 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -23,7 +23,7 @@ "@type": "Dataset", "creativeWorkStatus": "InProgress", "datePublished": "2025-11-20T09:32:34+00:00", - "description": "

\n \n \n \"nf-core/seqsubmit\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a bioinformatics pipeline that ...\n\n\n\n\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/seqsubmit/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by Martin Beracochea, Ekaterina Sakharova, Sofiia Ochkalova, Evangelos Karatzas.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "description": "

\n \n \n \"nf-core/seqsubmit\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nCurrently, the pipeline supports three submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure:\n\n- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow\n- `bins` for bins submission with `GENOMESUBMIT` workflow\n- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow\n\n![seqsubmit workflow diagram](assets/seqsubmit_schema.png)\n\n## Requirements\n\n- [Nextflow](https://www.nextflow.io/) `>=25.04.0`\n- Webin account registered at https://www.ebi.ac.uk/ena/submit/webin/login\n- Raw reads used to assemble contigs submitted to [INSDC](https://www.insdc.org/) and associated accessions available\n\nSetup your environment secrets before running the pipeline:\n\n`nextflow secrets set WEBIN_ACCOUNT \"Webin-XXX\"`\n\n`nextflow secrets set WEBIN_PASSWORD \"XXX\"`\n\nMake sure you update commands above with your authorised credentials.\n\n## Input samplesheets\n\n### `mags` and `bins` modes (`GENOMESUBMIT`)\n\nThe input must follow `assets/schema_input_genome.json`.\n\nRequired columns:\n\n- `sample`\n- `fasta` (must end with `.fa.gz` or `.fasta.gz`)\n- `accession`\n- `assembly_software`\n- `binning_software`\n- `binning_parameters`\n- `stats_generation_software`\n- `metagenome`\n- `environmental_medium`\n- `broad_environment`\n- `local_environment`\n- `co-assembly`\n\nColumns that required for now, but will be optional in the nearest future:\n\n- `completeness`\n- `contamination`\n- `genome_coverage`\n- `rRNA_presence`\n- `NCBI_lineage`\n\nThose fields are metadata required for [genome_uploader](https://github.com/EBI-Metagenomics/genome_uploader) package. They are described in [docs](https://github.com/EBI-Metagenomics/genome_uploader/blob/main/README.md#input-tsv-and-fields).\n\nExample `samplesheet_genome.csv`:\n\n```csv\nsample,fasta,accession,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,rRNA_presence,NCBI_lineage\nlachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,false,marine,cable_bacteria,marine_sediment,false,d__Bacteria;p__Proteobacteria;s_unclassified_Proteobacteria\n```\n\n### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`)\n\nThe input must follow `assets/schema_input_assembly.json`.\n\nRequired columns:\n\n- `sample`\n- `fasta` (must end with `.fa.gz` or `.fasta.gz`)\n- `run_accession`\n- `assembler`\n- `assembler_version`\n\nAt least one of the following must be provided per row:\n\n- reads (`fastq_1`, optional `fastq_2` for paired-end)\n- `coverage`\n\nIf `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`.\n\nExample `samplesheet_assembly.csv`:\n\n```csv\nsample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version\nassembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5\nassembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9\n```\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n### Required parameters:\n\n| Parameter | Description |\n| -------------------- | --------------------------------------------------------------------------------- |\n| `--mode` | Type of the data to be submitted. Options: `[mags, bins, metagenomic_assemblies]` |\n| `--input` | Path to the samplesheet describing the data to be submitted |\n| `--outdir` | Path to the output directory for pipeline results |\n| `--submission_study` | ENA study accession (PRJ/ERP) to submit the data to |\n| `--centre_name` | Name of the submitter's organisation |\n\n### Optional parameters:\n\n| Parameter | Description |\n| ------------------- | ---------------------------------------------------------------------------------------- |\n| `--upload_tpa` | Flag to control the type of assembly study (third party assembly or not). Default: false |\n| `--test_upload` | Upload to TEST ENA server instead of LIVE. Default: false |\n| `--webincli_submit` | If set to false, submissions will be validated, but not submitted. Default: true |\n\nGeneral command template:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --mode \\\n --input \\\n --centre_name \\\n --submission_study \\\n --outdir \n```\n\nValidation run (submission to the ENA TEST server) in `mags` mode:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode mags \\\n --input assets/samplesheet_genomes.csv \\\n --submission_study \\\n --centre_name TEST_CENTER \\\n --webincli_submit true \\\n --test_upload true \\\n --outdir results/validate_mags\n```\n\nValidation run (submission to the ENA TEST server) in `metagenomic_assemblies` mode:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode metagenomic_assemblies \\\n --input assets/samplesheet_assembly.csv \\\n --submission_study \\\n --centre_name TEST_CENTER \\\n --webincli_submit true \\\n --test_upload true \\\n --outdir results/validate_assemblies\n```\n\nLive submission example:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode metagenomic_assemblies \\\n --input assets/samplesheet_assembly.csv \\\n --submission_study PRJEB98843 \\\n --test_upload false \\\n --webincli_submit true \\\n --outdir results/live_assembly\n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nKey output locations in `--outdir`:\n\n- `upload/manifests/`: generated manifest files for submission\n- `upload/webin_cli/`: ENA Webin CLI reports\n- `multiqc/`: MultiQC summary report\n- `pipeline_info/`: execution reports, trace, DAG, and software versions\n\nFor full details, see the [output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofiia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas).\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\n\nIf you use this pipeline please make sure to cite all used software.\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **MGnify: the microbiome sequence data analysis resource in 2023**\n>\n> Richardson L, Allen B, Baldi G, Beracochea M, Bileschi ML, Burdett T, et al.\n>\n> Vol. 51, Nucleic Acids Research. Oxford University Press (OUP); 2022. p. D753\u20139. Available from: http://dx.doi.org/10.1093/nar/gkac1080\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" diff --git a/subworkflows/local/rna_detection.nf b/subworkflows/local/rna_detection.nf index 5dc2266..c690818 100644 --- a/subworkflows/local/rna_detection.nf +++ b/subworkflows/local/rna_detection.nf @@ -7,6 +7,7 @@ IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +include { COUNT_RNA } from '../../modules/local/count_rna' include { BARRNAP } from '../../modules/nf-core/barrnap' include { TRNASCANSE } from '../../modules/nf-core/trnascanse' @@ -27,9 +28,19 @@ workflow RNA_DETECTION { BARRNAP( fasta.map {id, fasta -> [id, fasta, "bac"]} ) + ch_versions = ch_versions.mix( BARRNAP.out.versions ) TRNASCANSE( fasta ) + ch_versions = ch_versions.mix( TRNASCANSE.out.versions ) -} \ No newline at end of file + COUNT_RNA( + TRNASCANSE.out.stats.join(BARRNAP.out.gff) + ) + ch_versions = ch_versions.mix( COUNT_RNA.out.versions ) + + emit: + rna_detected = COUNT_RNA.out.rna_decision + versions = ch_versions +} diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 8d1b319..063d56c 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -6,6 +6,8 @@ include { GENOME_UPLOAD } from '../modules/local/genome_upload' include { ENA_WEBIN_CLI } from '../modules/local/ena_webin_cli' +include { RNA_DETECTION } from '../subworkflows/local/rna_detection' + include { MULTIQC } from '../modules/nf-core/multiqc/main' include { paramsSummaryMap } from 'plugin/nf-schema' include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' @@ -29,77 +31,101 @@ workflow GENOMESUBMIT { ch_versions = channel.empty() ch_multiqc_files = channel.empty() - // Create channel with meta and fasta - ch_mags = ch_samplesheet + // Create genomes channel with proper metadata structure + genome_fasta = ch_samplesheet .map { row -> - [ row[0], file(row[1]) ] + def meta = [ + id: row[0].id, + accession: row[2], + single_end: row[4] ? false : true, + assembly_software: row[5] ?: null, + binning_software: row[6] ?: null, + binning_parameters: row[7] ?: null, + stats_generation_software: row[8] ?: null, + completeness: row[9] ?: null, + contamination: row[10] ?: null, + genome_coverage: row[11] ?: null, + metagenome: row[12] ?: null, + co_assembly: row[13] ?: null, + broad_environment: row[14] ?: null, + local_environment: row[15] ?: null, + environmental_medium: row[16] ?: null, + RNA_presence: row[17] ?: null, + NCBI_lineage: row[18] ?: null + ] + [meta, file(row[1])] } - // Create TSV with metadata fields - ch_remaining_tsv = ch_samplesheet - .map { row -> - def cleanRow = row.collect { item -> - item instanceof List && item.isEmpty() ? '' : item.toString() - } - - // Parse the genome_name column (index 0) to extract just the ID - if (cleanRow.size() > 0 && cleanRow[0].contains('[id:') && cleanRow[0].contains(']')) { - // Extract the ID from [id:lachnospiraceae] format - def match = cleanRow[0] =~ /\[id:([^\]]+)\]/ - if (match) { - cleanRow[0] = match[0][1] - } - } - - // Parse the genome_path column (index 1), to show path to file in current directory - if (cleanRow.size() > 1 && cleanRow[1].contains('/')) { - cleanRow[1] = file(cleanRow[1]).name - } - - cleanRow.join('\t') + // For genomes without RNA_presence info, calculate rRNA and tRNA + genome_fasta.filter { meta, fasta -> meta.RNA_presence == null } + .map { meta, fasta -> [meta, fasta] } + .set { rna_prediction_input } + genome_fasta.filter { meta, fasta -> meta.RNA_presence != null } + .map { meta, fasta -> [meta, fasta] } + .set { rna_present } + + RNA_DETECTION ( + rna_prediction_input + ) + ch_versions = ch_versions.mix( RNA_DETECTION.out.versions ) + + // Update metadata for records missing RNA + fasta_updated_with_rna = RNA_DETECTION.out.rna_detected.join(rna_prediction_input) + .map{ meta, rna_decision, fasta -> + def decision = rna_decision.readLines()[0].split('\t')[1]; + def updated_meta = meta.clone() + updated_meta.RNA_presence = decision; + return [updated_meta, fasta] + } + .mix(rna_present) + + + // Combine metadata into TSV + genome_metadata_csv = fasta_updated_with_rna + .map { meta, fasta -> + def row = [ + meta.id, + fasta, + meta.accession, + meta.assembly_software, + meta.binning_software, + meta.binning_parameters, + meta.stats_generation_software, + meta.completeness, + meta.contamination, + meta.genome_coverage, + meta.metagenome, + meta.co_assembly == "Yes" ? "True" : "False", + meta.broad_environment, + meta.local_environment, + meta.environmental_medium, + meta.RNA_presence == "Yes" ? "True" : "False", + meta.NCBI_lineage + ].join('\t') } .collectFile( - name: 'submission_metadata.tsv', - newLine: true, - seed: { - def headers = [ - 'genome_name', 'genome_path', 'accessions', - 'assembly_software', 'binning_software', 'binning_parameters', - 'stats_generation_software', 'completeness', 'contamination', - 'genome_coverage', 'metagenome', 'co-assembly', 'broad_environment', - 'local_environment', 'environmental_medium', 'rRNA_presence', 'NCBI_lineage' - ] - headers.join('\t') - } + name: "${params.outdir}/genomes_metadata.csv", + seed: 'genome_name\tgenome_path\taccessions\tassembly_software\tbinning_software\tbinning_parameters\tstats_generation_software\tcompleteness\tcontamination\tgenome_coverage\tmetagenome\tco-assembly\tbroad_environment\tlocal_environment\tenvironmental_medium\trRNA_presence\tNCBI_lineage', + newLine: true ) - ch_mags_collected = ch_mags - .map { meta, file -> file } - .collect() - .map { files -> - [ - [id: 'all_files'], - files - ] - } - GENOME_UPLOAD( - ch_mags_collected, - ch_remaining_tsv.first(), - mags_or_bins_flag + genome_fasta.map{meta, fasta -> fasta}.collect(), + genome_metadata_csv, + params.mode ) ch_versions = ch_versions.mix( GENOME_UPLOAD.out.versions ) - manifests_ch = GENOME_UPLOAD.out.manifests.flatten() - .map { manifest -> - def prefix = manifest.name.replaceAll(/_\d+\.manifest$/, '') - def meta = [id: prefix] - [ meta, manifest ] - } - combined_ch = ch_mags.join(manifests_ch) + //manifests_ch = GENOME_UPLOAD.out.manifests.flatten() + // .map { manifest -> + // def prefix = manifest.name.replaceAll(/_\d+\.manifest$/, '') + // def meta = [id: prefix] + // [ meta, manifest ] + //} + //combined_ch = ch_mags.join(manifests_ch) - ENA_WEBIN_CLI( combined_ch ) - ch_versions = ch_versions.mix( ENA_WEBIN_CLI.out.versions.first() ) + //ENA_WEBIN_CLI( combined_ch ) + //ch_versions = ch_versions.mix( ENA_WEBIN_CLI.out.versions.first() ) // // Collate and save software versions