From 617ca0ae9e7e5db3414b2653499962b73814f8e2 Mon Sep 17 00:00:00 2001 From: Tien Ly Date: Wed, 26 Mar 2025 16:29:54 -0700 Subject: [PATCH 01/16] add unifire module --- modules/local/unifre/main.nf | 57 +++++++++ modules/local/unifre/meta.yml | 65 ++++++++++ modules/local/unifre/tests/main.nf.test | 75 +++++++++++ modules/local/unifre/tests/main.nf.test.snap | 128 +++++++++++++++++++ modules/local/unifre/tests/nextflow.config | 5 + 5 files changed, 330 insertions(+) create mode 100644 modules/local/unifre/main.nf create mode 100644 modules/local/unifre/meta.yml create mode 100644 modules/local/unifre/tests/main.nf.test create mode 100644 modules/local/unifre/tests/main.nf.test.snap create mode 100644 modules/local/unifre/tests/nextflow.config diff --git a/modules/local/unifre/main.nf b/modules/local/unifre/main.nf new file mode 100644 index 0000000..5bd6d3d --- /dev/null +++ b/modules/local/unifre/main.nf @@ -0,0 +1,57 @@ +process UNIFIRE { + tag "$meta.id" + label 'process_medium' + + container "dockerhub.ebi.ac.uk/uniprot-public/unifire:2025.1" // TODO: Update once Bioconda is available + containerOptions { + if (workflow.containerEngine in ['singularity', 'apptainer']) { + return "--bind unifire:/volume" + } else { + return "-v ./unifire:/volume" + } + } + + input: + tuple val(meta), path(faa, stageAs: "unifire/proteins.fasta") + + output: + tuple val(meta), path("unifire/predictions_arba.out") , emit: arba + tuple val(meta), path("unifire/predictions_unirule.out") , emit: unirule + tuple val(meta), path("unifire/predictions_unirule-pirsr.out"), emit: pirsr + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2025.1' + // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + # This tool needs a specific folder to be mounted to work. + # Run UniFIRE workflow + /opt/scripts/bin/unifire-workflow.sh + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + UniFIRE: ${VERSION} + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2025.1' + """ + mkdir -p unifire + touch unifire/predictions_arba.out + touch unifire/predictions_unirule.out + touch unifire/predictions_unirule-pirsr.out + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + UniFIRE: ${VERSION} + END_VERSIONS + """ +} diff --git a/modules/local/unifre/meta.yml b/modules/local/unifre/meta.yml new file mode 100644 index 0000000..d6fe210 --- /dev/null +++ b/modules/local/unifre/meta.yml @@ -0,0 +1,65 @@ +name: "unifire" +description: Runs the UniFIRE workflow for protein function prediction +keywords: + - uniprot + - unifire + - protein function prediction + - functional annotation + - proteomics +tools: + - "unifire": + description: "UniFIRE: Unified Function Inference and Rule Extraction" + homepage: "https://gitlab.ebi.ac.uk/uniprot-public/unifire" + documentation: "https://gitlab.ebi.ac.uk/uniprot-public/unifire/-/blob/master/README.md?ref_type=heads" + tool_dev_url: "https://gitlab.ebi.ac.uk/uniprot-public/unifire" + licence: ["Apache-2.0"] +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1', single_end:false ] + - faa: + type: file + description: A protein sequence file in FASTA format + pattern: "*.{faa,faa.gz,fasta,fasta.gz,fas,fas.gz,fa,fa.gz}" +output: + - arba: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "unifire/predictions_arba.out": + type: file + description: Predictions from the Arba method + pattern: "unifire/predictions_arba.out" + - unirule: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "unifire/predictions_unirule.out": + type: file + description: Predictions from the Unirule method + pattern: "unifire/predictions_unirule.out" + - pirsr: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "unifire/predictions_unirule-pirsr.out": + type: file + description: Predictions from the Pirsr method + pattern: "unifire/predictions_unirule-pirsr.out" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@tntly" +maintainers: + - "@tntly" diff --git a/modules/local/unifre/tests/main.nf.test b/modules/local/unifre/tests/main.nf.test new file mode 100644 index 0000000..512700a --- /dev/null +++ b/modules/local/unifre/tests/main.nf.test @@ -0,0 +1,75 @@ +nextflow_process { + + name "Test Process UNIFIRE" + script "../main.nf" + process "UNIFIRE" + config './nextflow.config' + + tag "modules" + tag "modules_nfcore" + tag "unifire" + tag "seqkit" + tag "seqkit/head" + + setup { + run("SEQKIT_HEAD") { + script "modules/nf-core/seqkit/head/main.nf" + process { + """ + input[0] = Channel.from([ + [ id:'test1' ], // meta + [file(params.modules_testdata_base_path + 'proteomics/database/UP000005640_9606.fasta', checkIfExists: true)], // fastqs + 1 // seq_count + ]) + """ + } + } + } + + test("human - fasta") { + + when { + process { + """ + input[0] = SEQKIT_HEAD.out.subset + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.arba).match("arba") }, + { assert snapshot(process.out.unirule).match("unirule") }, + { assert snapshot(process.out.pirsr).match("pirsr") }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + + } + + test("human - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = SEQKIT_HEAD.out.subset + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.arba).match("arba_stub") }, + { assert snapshot(process.out.unirule).match("unirule_stub") }, + { assert snapshot(process.out.pirsr).match("pirsr_stub") }, + { assert snapshot(process.out.versions).match("versions_stub") } + ) + } + + } + +} diff --git a/modules/local/unifre/tests/main.nf.test.snap b/modules/local/unifre/tests/main.nf.test.snap new file mode 100644 index 0000000..7692cf9 --- /dev/null +++ b/modules/local/unifre/tests/main.nf.test.snap @@ -0,0 +1,128 @@ +{ + "arba_stub": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_arba.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:33:52.55728" + }, + "versions_stub": { + "content": [ + [ + "versions.yml:md5,9300b1be29e89c68039f4497407a3f47" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:33:52.641584" + }, + "pirsr": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_unirule-pirsr.out:md5,4b58d027e735a319fc881213fb7907fd" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:09:44.375307" + }, + "unirule_stub": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_unirule.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:33:52.602665" + }, + "versions": { + "content": [ + [ + "versions.yml:md5,9300b1be29e89c68039f4497407a3f47" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:09:44.388711" + }, + "unirule": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_unirule.out:md5,4b58d027e735a319fc881213fb7907fd" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:09:44.36028" + }, + "pirsr_stub": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_unirule-pirsr.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:33:52.614641" + }, + "arba": { + "content": [ + [ + [ + { + "id": "test1" + }, + "predictions_arba.out:md5,1e1a7b042c1e31726f0a50671bcdf50d" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-25T21:09:44.249684" + } +} diff --git a/modules/local/unifre/tests/nextflow.config b/modules/local/unifre/tests/nextflow.config new file mode 100644 index 0000000..4d20402 --- /dev/null +++ b/modules/local/unifre/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: UNIFIRE { + memory = 8.GB + } +} From c66ad29ab521e178efe9385f02e354ddd09478e3 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Wed, 26 Mar 2025 16:44:53 -0700 Subject: [PATCH 02/16] Add UniFire citations --- CITATIONS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CITATIONS.md b/CITATIONS.md index 843f5d3..8a6248d 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -14,6 +14,11 @@ > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. +- [UniFIRE](https://gitlab.ebi.ac.uk/uniprot-public/unifire) + +> UniFIRE (The UniProt Functional annotation Inference Rule Engine) is an engine to execute rules in the UniProt Rule Markup Language (URML) format. It can be used to execute the UniProt annotation rules (UniRule and ARBA). +> License: Apache License 2.0 + - [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. From 3ab78d9584ac8621151f2d504802376b6f9cc5a4 Mon Sep 17 00:00:00 2001 From: Tien Ly Date: Wed, 26 Mar 2025 16:46:04 -0700 Subject: [PATCH 03/16] update output.md to include info about unifire --- docs/output.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/output.md b/docs/output.md index c3d4a88..5dc0d77 100644 --- a/docs/output.md +++ b/docs/output.md @@ -14,6 +14,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution +- [UniFIRE] (#unifire) - Run the UniFIRE workflow for protein function prediction ### MultiQC @@ -45,3 +46,17 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ [Nextflow](https://www.nextflow.io/docs/latest/tracing.html) provides excellent functionality for generating various reports relevant to the running and execution of the pipeline. This will allow you to troubleshoot errors with the running of the pipeline, and also provide you with other information such as launch commands, run times and resource usage. + +### UniFIRE + +
+Output files + +- `unifire/` + - `predictions_arba.out`: a file containing predictions from the Arba method. + - `predictions_unirule.out`: a file containing predictions from the Unirule method. + - `mpredictions_unirule-pirsr.out`: a file containing predictions from the Pirsr method. + +
+ +[UniFIRE](https://gitlab.ebi.ac.uk/uniprot-public/unifire) (The UniProt Functional annotation Inference Rule Engine) is an engine to execute rules in the UniProt Rule Markup Language (URML) format. It can be used to execute the UniProt annotation rules (UniRule and ARBA). From 2efd227278bde5514544880cd1ab15a86a7b3ae1 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Wed, 26 Mar 2025 16:46:16 -0700 Subject: [PATCH 04/16] Add UniFire to README --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7405207..96bd58d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,10 @@ -1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) + +1. Functional Annotation + 1. Perform UniProt's official annotation pipeline ([`UniFire`](https://gitlab.ebi.ac.uk/uniprot-public/unifire)) +1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) ## Usage From 4cc3165ed29fa50a605a92ad8dbc9176aea2d940 Mon Sep 17 00:00:00 2001 From: Tien Ly Date: Wed, 26 Mar 2025 16:47:36 -0700 Subject: [PATCH 05/16] update output.md for unifire --- docs/output.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/output.md b/docs/output.md index 5dc0d77..1c522ec 100644 --- a/docs/output.md +++ b/docs/output.md @@ -12,9 +12,23 @@ The directories listed below will be created in the results directory after the The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: +- [UniFIRE] (#unifire) - Run the UniFIRE workflow for protein function prediction - [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution -- [UniFIRE] (#unifire) - Run the UniFIRE workflow for protein function prediction + +### UniFIRE + +
+Output files + +- `unifire/` + - `predictions_arba.out`: a file containing predictions from the Arba method. + - `predictions_unirule.out`: a file containing predictions from the Unirule method. + - `mpredictions_unirule-pirsr.out`: a file containing predictions from the Pirsr method. + +
+ +[UniFIRE](https://gitlab.ebi.ac.uk/uniprot-public/unifire) (The UniProt Functional annotation Inference Rule Engine) is an engine to execute rules in the UniProt Rule Markup Language (URML) format. It can be used to execute the UniProt annotation rules (UniRule and ARBA). ### MultiQC @@ -46,17 +60,3 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ [Nextflow](https://www.nextflow.io/docs/latest/tracing.html) provides excellent functionality for generating various reports relevant to the running and execution of the pipeline. This will allow you to troubleshoot errors with the running of the pipeline, and also provide you with other information such as launch commands, run times and resource usage. - -### UniFIRE - -
-Output files - -- `unifire/` - - `predictions_arba.out`: a file containing predictions from the Arba method. - - `predictions_unirule.out`: a file containing predictions from the Unirule method. - - `mpredictions_unirule-pirsr.out`: a file containing predictions from the Pirsr method. - -
- -[UniFIRE](https://gitlab.ebi.ac.uk/uniprot-public/unifire) (The UniProt Functional annotation Inference Rule Engine) is an engine to execute rules in the UniProt Rule Markup Language (URML) format. It can be used to execute the UniProt annotation rules (UniRule and ARBA). From 85a95e5bcfbbd922e9e78d7a13c0f9d83357d6d7 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Wed, 26 Mar 2025 16:48:32 -0700 Subject: [PATCH 06/16] Updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d497b4c..57df52f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ Initial release of nf-core/proteinannotator, created with the [nf-core](https:// ### `Added` +- Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) + ### `Fixed` ### `Dependencies` From 40aba90f491fe0a4b4dd7a29dae957fbbeea9fc8 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 16:16:50 -0700 Subject: [PATCH 07/16] Updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57df52f..f2d6e37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Initial release of nf-core/proteinannotator, created with the [nf-core](https:// ### `Added` -- Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) +- @tntly Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) ### `Fixed` From f004f7c136889bf8153cb2d1764043760223b503 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 16:18:02 -0700 Subject: [PATCH 08/16] Added github username link for tntly --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2d6e37..969d3e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Initial release of nf-core/proteinannotator, created with the [nf-core](https:// ### `Added` -- @tntly Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) +- [@tntly](https://github.com/tntly) Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) ### `Fixed` From bdc5a825ed722c199bce519260857716e51603d4 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 16:30:09 -0700 Subject: [PATCH 09/16] Add credits section for changelog --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 969d3e0..64eb8ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Initial release of nf-core/proteinannotator, created with the [nf-core](https://nf-co.re/) template. +### Credits + +Special thanks to the following for their contributions to the release: + +- [Tien Ly](https://github.com/tntly) + ### `Added` -- [@tntly](https://github.com/tntly) Added Unifire module ([#17](https://github.com/nf-core/proteinannotator/pull/17)) +- [[PR #17](https://github.com/nf-core/proteinannotator/pull/17)] Added Unifire module ### `Fixed` From d475934203cb46c04cd8548b00b332e1907397b1 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 17:38:59 -0700 Subject: [PATCH 10/16] Reformat output.md --- docs/output.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/output.md b/docs/output.md index 0da23a9..3dba6eb 100644 --- a/docs/output.md +++ b/docs/output.md @@ -12,12 +12,15 @@ The directories listed below will be created in the results directory after the The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: -- [UniFIRE] (#unifire) - Run the UniFIRE workflow for protein function prediction +- [Functional Annotation](#functional-annotation) + - [UniFIRE] (#unifire) - Run UniProt's official UniFIRE workflow for protein function prediction - [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline - [SeqKit stats](#seqkit_stats) - Simple statistics for protein FASTA files - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution -### UniFIRE +### Functional Annotation + +#### UniFIRE
Output files From 6c3f4454bacc98c663cd6d31ce2249a9d81dc2e3 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 17:49:17 -0700 Subject: [PATCH 11/16] Add local samplesheet for testing for now --- conf/sampleesheet.csv | 2 ++ conf/test.config | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 conf/sampleesheet.csv diff --git a/conf/sampleesheet.csv b/conf/sampleesheet.csv new file mode 100644 index 0000000..0c3e4d1 --- /dev/null +++ b/conf/sampleesheet.csv @@ -0,0 +1,2 @@ +id,fasta +snap25_isoforms,https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/kmerseek/reference/snap25_isoforms_human_P60880.fasta diff --git a/conf/test.config b/conf/test.config index 9de8668..43859a0 100644 --- a/conf/test.config +++ b/conf/test.config @@ -27,5 +27,5 @@ params { // TODO nf-core: Give any required params for the test so that command line flags are not needed // From: https://github.com/nf-core/proteinfold/blob/1.1.1/conf/test.config // Example: https://github.com/nf-core/test-datasets/blob/proteinfold/testdata/samplesheet/v1.2/samplesheet.csv - input = params.pipelines_testdata_base_path + 'proteinfold/testdata/samplesheet/v1.2/samplesheet.csv' + input = params.pipelines_testdata_base_path + 'conf/samplesheet.csv' } From 21518de93c45c635efd9bd55eca79a4d666e3004 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 17:49:38 -0700 Subject: [PATCH 12/16] Rename unifire --- modules/local/{unifre => unifire}/main.nf | 0 modules/local/{unifre => unifire}/meta.yml | 0 modules/local/{unifre => unifire}/tests/main.nf.test | 0 modules/local/{unifre => unifire}/tests/main.nf.test.snap | 0 modules/local/{unifre => unifire}/tests/nextflow.config | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename modules/local/{unifre => unifire}/main.nf (100%) rename modules/local/{unifre => unifire}/meta.yml (100%) rename modules/local/{unifre => unifire}/tests/main.nf.test (100%) rename modules/local/{unifre => unifire}/tests/main.nf.test.snap (100%) rename modules/local/{unifre => unifire}/tests/nextflow.config (100%) diff --git a/modules/local/unifre/main.nf b/modules/local/unifire/main.nf similarity index 100% rename from modules/local/unifre/main.nf rename to modules/local/unifire/main.nf diff --git a/modules/local/unifre/meta.yml b/modules/local/unifire/meta.yml similarity index 100% rename from modules/local/unifre/meta.yml rename to modules/local/unifire/meta.yml diff --git a/modules/local/unifre/tests/main.nf.test b/modules/local/unifire/tests/main.nf.test similarity index 100% rename from modules/local/unifre/tests/main.nf.test rename to modules/local/unifire/tests/main.nf.test diff --git a/modules/local/unifre/tests/main.nf.test.snap b/modules/local/unifire/tests/main.nf.test.snap similarity index 100% rename from modules/local/unifre/tests/main.nf.test.snap rename to modules/local/unifire/tests/main.nf.test.snap diff --git a/modules/local/unifre/tests/nextflow.config b/modules/local/unifire/tests/nextflow.config similarity index 100% rename from modules/local/unifre/tests/nextflow.config rename to modules/local/unifire/tests/nextflow.config From f0cf7cf93326d6cdeafb758af22afa5c6afd0572 Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Thu, 27 Mar 2025 17:50:00 -0700 Subject: [PATCH 13/16] Call UniFire in functional_annotation subworkflow --- subworkflows/local/functional_annotation/main.nf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/subworkflows/local/functional_annotation/main.nf b/subworkflows/local/functional_annotation/main.nf index af1134b..98d6907 100644 --- a/subworkflows/local/functional_annotation/main.nf +++ b/subworkflows/local/functional_annotation/main.nf @@ -1,3 +1,6 @@ +include { UNIFIRE } from '../../../modules/local/unifire/main' + + workflow FUNCTIONAL_ANNOTATION { take: @@ -7,11 +10,16 @@ workflow FUNCTIONAL_ANNOTATION { ch_versions = Channel.empty() + UNIFIRE ( ch_fasta ) + + ch_versions = ch_versions.mix( UNIFIRE.out.versions ) + // TODO nf-core: substitute modules here for the modules of your subworkflow emit: - // TODO nf-core: edit emitted channels - - versions = ch_versions // channel: [ versions.yml ] + unifire_arba = UNIFIRE.out.arba + unifire_unirule = UNIFIRE.out.unirule + unifire_pirsr = UNIFIRE.out.pirsr + versions = ch_versions // channel: [ versions.yml ] } From 1f82db185bf18f4b8e69201ee5b997b08075b88d Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Tue, 1 Apr 2025 10:54:14 -0700 Subject: [PATCH 14/16] Use snap25 isoforms for testing --- conf/test_full.config | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/conf/test_full.config b/conf/test_full.config index ae76d99..fd9bf05 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -17,8 +17,6 @@ params { // Input data for full size test // TODO nf-core: Specify the paths to your full test data ( on nf-core/test-datasets or directly in repositories, e.g. SRA) // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'proteinannotator/samplesheet/snap25-isoforms.csv' - // Genome references - genome = 'R64-1-1' } From c7bc8f3e9cc33b57411e24e9d62fbb77a405b34a Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Tue, 1 Apr 2025 10:54:24 -0700 Subject: [PATCH 15/16] update unifire to process_large --- modules/local/unifire/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/unifire/main.nf b/modules/local/unifire/main.nf index 5bd6d3d..d4f1de4 100644 --- a/modules/local/unifire/main.nf +++ b/modules/local/unifire/main.nf @@ -1,6 +1,6 @@ process UNIFIRE { tag "$meta.id" - label 'process_medium' + label 'process_large' container "dockerhub.ebi.ac.uk/uniprot-public/unifire:2025.1" // TODO: Update once Bioconda is available containerOptions { From ec81dc9e6ddbbf030f90dac74ea2ea6af2f53c8d Mon Sep 17 00:00:00 2001 From: Olga Botvinnik Date: Tue, 1 Apr 2025 10:54:31 -0700 Subject: [PATCH 16/16] Use snap25 for testing --- modules/local/unifire/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/unifire/tests/main.nf.test b/modules/local/unifire/tests/main.nf.test index 512700a..e6fbfb9 100644 --- a/modules/local/unifire/tests/main.nf.test +++ b/modules/local/unifire/tests/main.nf.test @@ -18,7 +18,7 @@ nextflow_process { """ input[0] = Channel.from([ [ id:'test1' ], // meta - [file(params.modules_testdata_base_path + 'proteomics/database/UP000005640_9606.fasta', checkIfExists: true)], // fastqs + [file(params.modules_testdata_base_path + 'kmerseek/reference/snap25_isoforms_human_P60880.fasta', checkIfExists: true)], // fastas 1 // seq_count ]) """