diff --git a/.nf-core.yml b/.nf-core.yml index 8fa8266c..5a960caa 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -16,4 +16,4 @@ template: name: rnafusion org: nf-core outdir: . - version: 4.1.2 + version: 4.1.3dev diff --git a/CHANGELOG.md b/CHANGELOG.md index 7028f5b5..8a701748 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## v4.1.3dev - [2026-05-28] + +### Added + +### Fixed + +- Fixed issues with FusionReport and COSMIC [#797](https://github.com/nf-core/rnafusion/issues/797) + ## v4.1.2 - [2026-05-20] ### Added diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 4c276219..bbe68fc4 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,5 +1,5 @@ report_comment: > - This report has been generated by the nf-core/rnafusion analysis pipeline. For information about how to interpret these results, please see the documentation. + This report has been generated by the nf-core/rnafusion analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: nf-core-rnafusion-methods-description: diff --git a/modules.json b/modules.json index 265f58c1..cf27152c 100644 --- a/modules.json +++ b/modules.json @@ -75,12 +75,12 @@ }, "fusionreport/detect": { "branch": "master", - "git_sha": "2737fcc61a0379e6f130de9069cadf77bc8e97ff", + "git_sha": "6ed53ffdb0d6be9a34de52b9472693397994e6d0", "installed_by": ["modules"] }, "fusionreport/download": { "branch": "master", - "git_sha": "df4b662dae05afb695a4326fc172178b5a7a48ce", + "git_sha": "b871d05e5c8aab73132a41ede89c40910726df74", "installed_by": ["modules"] }, "gatk4/bedtointervallist": { diff --git a/modules/nf-core/fusionreport/detect/environment.yml b/modules/nf-core/fusionreport/detect/environment.yml index f14a523e..28eaa489 100644 --- a/modules/nf-core/fusionreport/detect/environment.yml +++ b/modules/nf-core/fusionreport/detect/environment.yml @@ -2,5 +2,17 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::fusion-report=4.0.1 + - bioconda::fusion-report=4.1.1 + - conda-forge::beautifulsoup4=4.14.3 + - conda-forge::click=8.4.0 + - conda-forge::colorlog=6.10.1 + - conda-forge::jinja2=3.1.6 + - conda-forge::markupsafe=3.0.3 + - conda-forge::numpy=2.4.6 - conda-forge::openpyxl=3.1.5 + - conda-forge::pandas=3.0.3 + - conda-forge::pyyaml=6.0.3 + - conda-forge::requests=2.34.2 + - conda-forge::tabulate=0.10.0 + - conda-forge::tqdm=4.67.3 + - conda-forge::xlrd=2.0.2 diff --git a/modules/nf-core/fusionreport/detect/main.nf b/modules/nf-core/fusionreport/detect/main.nf index 618c1450..cdd9b28b 100644 --- a/modules/nf-core/fusionreport/detect/main.nf +++ b/modules/nf-core/fusionreport/detect/main.nf @@ -3,9 +3,9 @@ process FUSIONREPORT_DETECT { label 'process_medium' 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/ed/ed32f46746a5b33a1b5d597cfe2f62d3b1cfa54638f57cadc5d5158d6a4959d2/data' : - 'community.wave.seqera.io/library/fusion-report_beautifulsoup4_click_colorlog_pruned:78488bd99166aa9a'}" + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a4/a41e89223340438d7cebca8af469cef9189d177bb44373b1bcb010c8e441a444/data' : + 'community.wave.seqera.io/library/fusion-report_beautifulsoup4_click_colorlog_pruned:4aeac839f8a4fc86'}" input: tuple val(meta), path(arriba_fusions), path(starfusion_fusions), path(fusioncatcher_fusions) @@ -19,7 +19,7 @@ process FUSIONREPORT_DETECT { tuple val(meta), path("*_*.html") , emit: html , optional:true tuple val(meta), path("*.csv") , emit: csv , optional:true tuple val(meta), path("*.json") , emit: json , optional:true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('fusion_report'), eval("fusion_report --version |& sed 's/fusion-report //'"), topic: versions, emit: versions_fusionreport when: task.ext.when == null || task.ext.when @@ -32,19 +32,17 @@ process FUSIONREPORT_DETECT { tools += fusioncatcher_fusions ? "--fusioncatcher ${fusioncatcher_fusions} " : '' def prefix = task.ext.prefix ?: "${meta.id}" """ - fusion_report run $meta.id . $fusionreport_ref $tools --allow-multiple-gene-symbols --tool-cutoff $tools_cutoff $args $args2 + fusion_report run ${prefix} . \\ + ${fusionreport_ref} ${tools} \\ + --allow-multiple-gene-symbols \\ + --tool-cutoff ${tools_cutoff} \\ + ${args} ${args2} mv fusion_list.tsv ${prefix}.fusionreport.tsv mv fusion_list_filtered.tsv ${prefix}.fusionreport_filtered.tsv mv index.html ${prefix}_fusionreport_index.html [ ! -f fusions.csv ] || mv fusions.csv ${prefix}.fusions.csv [ ! -f fusions.json ] || mv fusions.json ${prefix}.fusions.json - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fusion_report: \$(fusion_report --version | sed 's/fusion-report //') - fusion_report DB retrieval: \$(cat $fusionreport_ref/DB-timestamp.txt) - END_VERSIONS """ stub: @@ -56,10 +54,5 @@ process FUSIONREPORT_DETECT { touch AAA_BBB.html touch ${prefix}.fusions.csv touch ${prefix}.fusions.json - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fusion_report: \$(fusion_report --version | sed 's/fusion-report //') - END_VERSIONS """ } diff --git a/modules/nf-core/fusionreport/detect/meta.yml b/modules/nf-core/fusionreport/detect/meta.yml index dc87feed..13031b77 100644 --- a/modules/nf-core/fusionreport/detect/meta.yml +++ b/modules/nf-core/fusionreport/detect/meta.yml @@ -11,9 +11,9 @@ tools: homepage: https://github.com/Clinical-Genomics/fusion-report documentation: https://matq007.github.io/fusion-report/#/ doi: "10.1101/011650" - licence: ["GPL v3"] + licence: + - "GPL v3" identifier: "" - input: - - meta: type: map @@ -43,25 +43,22 @@ input: Groovy Map containing sample information - fusionreport_ref: type: directory - description: File + description: directory containing the genome resource files required for fusioncatcher pattern: "fusion_report_db" - tools_cutoff: type: integer - description: Discard fusions detected by less than $tools_cutoff tools both for display in fusionreport html index and to consider in fusioninspector. - + description: Discard fusions detected by less than $tools_cutoff tools both + for display in fusionreport html index and to consider in fusioninspector. output: fusion_list: - - meta: type: map description: | Groovy Map containing sample information - pattern: "*.tsv" - ontologies: - - edam: http://edamontology.org/format_3475 # TSV - "*fusionreport.tsv": - type: map + type: file description: | - Groovy Map containing sample information + Fusion report pattern: "*.tsv" ontologies: - edam: http://edamontology.org/format_3475 # TSV @@ -70,13 +67,10 @@ output: type: map description: | Groovy Map containing sample information - pattern: "*.tsv" - ontologies: - - edam: http://edamontology.org/format_3475 # TSV - "*fusionreport_filtered.tsv": - type: map + type: file description: | - Groovy Map containing sample information + Filtered fusion report pattern: "*.tsv" ontologies: - edam: http://edamontology.org/format_3475 # TSV @@ -85,13 +79,10 @@ output: type: map description: | Groovy Map containing sample information - pattern: "*.index.html" - ontologies: - - edam: "http://edamontology.org/format_2331" # HTML - "*index.html": - type: map + type: file description: | - Groovy Map containing sample information + Interactive HTML report pattern: "*.index.html" ontologies: - edam: "http://edamontology.org/format_2331" # HTML @@ -100,13 +91,10 @@ output: type: map description: | Groovy Map containing sample information - pattern: "*_*.html" - ontologies: - - edam: "http://edamontology.org/format_2331" # HTML - "*_*.html": type: map description: | - Groovy Map containing sample information + All HTML report files pattern: "*_*.html" ontologies: - edam: "http://edamontology.org/format_2331" # HTML @@ -115,13 +103,10 @@ output: type: map description: | Groovy Map containing sample information - pattern: "*.csv" - ontologies: - - edam: "http://edamontology.org/format_3752" # CSV - "*.csv": - type: map + type: file description: | - Groovy Map containing sample information + Report in CSV format pattern: "*.csv" ontologies: - edam: "http://edamontology.org/format_3752" # CSV @@ -130,22 +115,34 @@ output: type: map description: | Groovy Map containing sample information - pattern: "*.json" - ontologies: - - edam: "http://edamontology.org/format_3464" # JSON - "*.json": - type: map + type: file description: | - Groovy Map containing sample information + Report in JSON format pattern: "*.json" ontologies: - - edam: "http://edamontology.org/format_3464" # JSON + - edam: "http://edamontology.org/format_3464" + versions_fusionreport: + - - ${task.process}: + type: string + description: The name of the process + - fusion_report: + type: string + description: The name of the tool + - fusion_report --version |& sed 's/fusion-report //': + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - fusion_report: + type: string + description: The name of the tool + - fusion_report --version |& sed 's/fusion-report //': + type: eval + description: The expression to obtain the version of the tool authors: - - "@praveenraj2018, @rannick" + - "@praveenraj2018" + - "@rannick" diff --git a/modules/nf-core/fusionreport/detect/tests/main.nf.test b/modules/nf-core/fusionreport/detect/tests/main.nf.test index baf1ce12..c208266b 100644 --- a/modules/nf-core/fusionreport/detect/tests/main.nf.test +++ b/modules/nf-core/fusionreport/detect/tests/main.nf.test @@ -2,7 +2,9 @@ nextflow_process { name "Test Process FUSIONREPORT_DETECT" script "../main.nf" + config './nextflow.config' process "FUSIONREPORT_DETECT" + tag "modules" tag "modules_local" tag "fusionreport" @@ -10,25 +12,29 @@ nextflow_process { tag "modules_nfcore" tag "fusionreport/download" - - test("FUSIONREPORT - arriba - starfusion - fusioncatcher") { - config './nextflow.config' - - setup { - run("FUSIONREPORT_DOWNLOAD") { - script "../../../fusionreport/download/main.nf" - process { - """ - """ - } + setup { + run("FUSIONREPORT_DOWNLOAD") { + script "../../../fusionreport/download/main.nf" + process { + """ + input[0] = [id: 'fusion_report_db'] + """ } } + } + + test("FUSIONREPORT - arriba - starfusion - fusioncatcher") { when { + params { + fusionreport_download_args = "--no-cosmic" + fusionreport_detect_args = "--no-cosmic" + fusionreport_detect_args2 = "--export csv" + } process { """ input[0] = [ - [ id:'test_sample' ], // meta map + [ id:'test_sample' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/arriba.tsv', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/starfusion.tsv', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/fusioncatcher.txt', checkIfExists: true) @@ -37,55 +43,30 @@ nextflow_process { input[2] = 1 """ } - params { - arriba = true - starfusion = true - fusioncatcher = true - no_cosmic = true - outdir = "$outputDir" - fusionreport_download_args = '--no-cosmic' - fusionreport_detect_args = {params.no_cosmic} ? "--no-cosmic" : "" - fusionreport_detect_args2 = "--export csv" - } } then { assertAll( { assert process.success }, - { assert snapshot( - process.out.fusion_list, - process.out.fusion_list_filtered, - process.out.csv, - file(process.out.report[0][1]).name, - process.out.html[0][1].collect { file(it).name }, - process.out.json, - process.out.versions.flatten().first().toString().split('/')[-1] // md5sum not stable as versions contains DB timestamp - ).match() } + { assert snapshot(sanitizeOutput(process.out, unstableKeys: ["report", "html"])).match() } ) } } test("FUSIONREPORT - arriba - starfusion - fusioncatcher - stub") { - config './nextflow.config' - - setup { - run("FUSIONREPORT_DOWNLOAD") { - script "../../../fusionreport/download/main.nf" - process { - """ - """ - } - } - } - options "-stub" when { + params { + fusionreport_download_args = "--no-cosmic" + fusionreport_detect_args = "--no-cosmic" + fusionreport_detect_args2 = "--export csv" + } process { """ input[0] = [ - [ id:'test_sample' ], // meta map + [ id:'test_sample' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/arriba.tsv', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/starfusion.tsv', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/fusioncatcher.txt', checkIfExists: true) @@ -94,23 +75,13 @@ nextflow_process { input[2] = 1 """ } - params { - arriba = true - starfusion = true - fusioncatcher = true - no_cosmic = true - outdir = "$outputDir" - fusionreport_download_args = '--no-cosmic' - fusionreport_detect_args = {params.no_cosmic} ? "--no-cosmic" : "" - fusionreport_detect_args2 = "--export csv" - } } then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/fusionreport/detect/tests/main.nf.test.snap b/modules/nf-core/fusionreport/detect/tests/main.nf.test.snap index 7b71aa35..784eb57b 100644 --- a/modules/nf-core/fusionreport/detect/tests/main.nf.test.snap +++ b/modules/nf-core/fusionreport/detect/tests/main.nf.test.snap @@ -1,126 +1,94 @@ { "FUSIONREPORT - arriba - starfusion - fusioncatcher": { - "content": [ - [ - [ - { - "id": "test_sample" - }, - "test_sample.fusionreport.tsv:md5,3593b7021f26cc5427fdc96f0d1c72f0" - ] - ], - [ - [ - { - "id": "test_sample" - }, - "test_sample.fusionreport_filtered.tsv:md5,3593b7021f26cc5427fdc96f0d1c72f0" - ] - ], - [ - [ - { - "id": "test_sample" - }, - "test_sample.fusions.csv:md5,ee6c6838110d68bc75a13c19dca0a321" - ] - ], - "test_sample_fusionreport_index.html", - [ - "AKAP9_BRAF.html", - "BRD4-1_NUTM1.html", - "BRD4_NUTM1.html", - "CD74_AL132671.2.html", - "CD74_ROS1.html", - "CIC_DUX4.html", - "DUX4_IGH@.html", - "EML4_ALK.html", - "ETV6_NTRK3.html", - "EWSR1_ATF1.html", - "EWSR1_FLI1.html", - "FGFR3_TACC3.html", - "FIP1L1_PDGFRA.html", - "GOPC_ROS1.html", - "HOOK3_RET.html", - "IGH@_CRLF2.html", - "MALT1_IGH@.html", - "NPM1_ALK.html", - "TMPRSS2_ETV1.html", - "test_sample_fusionreport_index.html" - ], - [ - [ - { - "id": "test_sample" - }, - "fusion_genes_mqc.json:md5,b196dc8d064a47d17fd3a032b8fbed4f" - ] - ], - "versions.yml" - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.4" - }, - "timestamp": "2025-06-26T16:15:03.892288278" - }, - "FUSIONREPORT - arriba - starfusion - fusioncatcher - stub": { "content": [ { - "0": [ + "csv": [ [ { "id": "test_sample" }, - "test_sample.fusionreport.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_sample.fusions.csv:md5,ee6c6838110d68bc75a13c19dca0a321" ] ], - "1": [ + "fusion_list": [ [ { "id": "test_sample" }, - "test_sample.fusionreport_filtered.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_sample.fusionreport.tsv:md5,3593b7021f26cc5427fdc96f0d1c72f0" ] ], - "2": [ + "fusion_list_filtered": [ [ { "id": "test_sample" }, - "test_sample_fusionreport_index.html:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_sample.fusionreport_filtered.tsv:md5,3593b7021f26cc5427fdc96f0d1c72f0" ] ], - "3": [ + "html": [ [ { "id": "test_sample" }, [ - "AAA_BBB.html:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_sample_fusionreport_index.html:md5,d41d8cd98f00b204e9800998ecf8427e" + "AKAP9_BRAF.html", + "BRD4-1_NUTM1.html", + "BRD4_NUTM1.html", + "CD74_AL132671.2.html", + "CD74_ROS1.html", + "CIC_DUX4.html", + "DUX4_IGH@.html", + "EML4_ALK.html", + "ETV6_NTRK3.html", + "EWSR1_ATF1.html", + "EWSR1_FLI1.html", + "FGFR3_TACC3.html", + "FIP1L1_PDGFRA.html", + "GOPC_ROS1.html", + "HOOK3_RET.html", + "IGH@_CRLF2.html", + "MALT1_IGH@.html", + "NPM1_ALK.html", + "TMPRSS2_ETV1.html", + "test_sample_fusionreport_index.html" ] ] ], - "4": [ + "json": [ [ { "id": "test_sample" }, - "test_sample.fusions.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + "fusion_genes_mqc.json:md5,b196dc8d064a47d17fd3a032b8fbed4f" ] ], - "5": [ + "report": [ [ { "id": "test_sample" }, - "test_sample.fusions.json:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_sample_fusionreport_index.html" ] ], - "6": [ - "versions.yml:md5,947ac2c0ed1623930f951f4f4ee3501e" - ], + "versions_fusionreport": [ + [ + "FUSIONREPORT_DETECT", + "fusion_report", + "4.1.1" + ] + ] + } + ], + "timestamp": "2026-05-27T14:07:24.513061495", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.2" + } + }, + "FUSIONREPORT - arriba - starfusion - fusioncatcher - stub": { + "content": [ + { "csv": [ [ { @@ -172,15 +140,19 @@ "test_sample_fusionreport_index.html:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "versions": [ - "versions.yml:md5,947ac2c0ed1623930f951f4f4ee3501e" + "versions_fusionreport": [ + [ + "FUSIONREPORT_DETECT", + "fusion_report", + "4.1.1" + ] ] } ], + "timestamp": "2026-05-27T14:08:24.497257039", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.4" - }, - "timestamp": "2025-07-01T14:42:59.809164059" + "nf-test": "0.9.5", + "nextflow": "26.04.2" + } } } \ No newline at end of file diff --git a/modules/nf-core/fusionreport/download/environment.yml b/modules/nf-core/fusionreport/download/environment.yml index ae86909d..31736531 100644 --- a/modules/nf-core/fusionreport/download/environment.yml +++ b/modules/nf-core/fusionreport/download/environment.yml @@ -2,17 +2,17 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::fusion-report=4.0.1 - - conda-forge::beautifulsoup4=4.13.4 - - conda-forge::click=8.2.1 - - conda-forge::colorlog=6.9.0 + - bioconda::fusion-report=4.1.1 + - conda-forge::beautifulsoup4=4.14.3 + - conda-forge::click=8.4.0 + - conda-forge::colorlog=6.10.1 - conda-forge::jinja2=3.1.6 - - conda-forge::markupsafe=3.0.2 - - conda-forge::numpy=2.3.0 + - conda-forge::markupsafe=3.0.3 + - conda-forge::numpy=2.4.6 - conda-forge::openpyxl=3.1.5 - - conda-forge::pandas=2.3.0 - - conda-forge::pyyaml=6.0.2 - - conda-forge::requests=2.32.4 - - conda-forge::tabulate=0.9.0 - - conda-forge::tqdm=4.67.1 - - conda-forge::xlrd=2.0.1 + - conda-forge::pandas=3.0.1 + - conda-forge::pyyaml=6.0.3 + - conda-forge::requests=2.34.2 + - conda-forge::tabulate=0.10.0 + - conda-forge::tqdm=4.67.3 + - conda-forge::xlrd=2.0.2 diff --git a/modules/nf-core/fusionreport/download/main.nf b/modules/nf-core/fusionreport/download/main.nf index 3fd7ada4..6dddb781 100644 --- a/modules/nf-core/fusionreport/download/main.nf +++ b/modules/nf-core/fusionreport/download/main.nf @@ -3,44 +3,36 @@ process FUSIONREPORT_DOWNLOAD { label 'process_medium' 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/ed/ed32f46746a5b33a1b5d597cfe2f62d3b1cfa54638f57cadc5d5158d6a4959d2/data' : - 'community.wave.seqera.io/library/fusion-report_beautifulsoup4_click_colorlog_pruned:78488bd99166aa9a'}" + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a4/a41e89223340438d7cebca8af469cef9189d177bb44373b1bcb010c8e441a444/data' : + 'community.wave.seqera.io/library/fusion-report_beautifulsoup4_click_colorlog_pruned:4aeac839f8a4fc86'}" + + input: + val(meta) output: - tuple val(meta), path("fusion_report_db"), emit: fusionreport_ref - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}"), emit: fusionreport_ref + tuple val("${task.process}"), val('fusion_report'), eval("fusion_report --version |& sed 's/fusion-report //'"), topic: versions, emit: versions_fusionreport when: task.ext.when == null || task.ext.when script: - meta = [id: 'fusion_report_db'] def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" """ - fusion_report download $args ./ - mkdir fusion_report_db - mv *.txt *.log *.db fusion_report_db/ - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fusion_report: \$(fusion_report --version | sed 's/fusion-report //') - END_VERSIONS + mkdir -p ${prefix} + fusion_report download ${args} ${prefix} """ stub: - meta = [id: 'fusion_report_db'] + prefix = task.ext.prefix ?: "${meta.id}" """ - mkdir fusion_report_db - touch fusion_report_db/cosmic.db - touch fusion_report_db/fusiongdb2.db - touch fusion_report_db/mitelman.db - touch fusion_report_db/DB-timestamp.txt - touch fusion_report_db/fusion_report.log - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fusion_report: \$(fusion_report --version | sed 's/fusion-report //') - END_VERSIONS + mkdir ${prefix} + touch ${prefix}/cosmic.db + touch ${prefix}/fusiongdb2.db + touch ${prefix}/mitelman.db + touch ${prefix}/DB-timestamp.txt + touch ${prefix}/fusion_report.log """ } diff --git a/modules/nf-core/fusionreport/download/meta.yml b/modules/nf-core/fusionreport/download/meta.yml index 8922d754..3da15cb8 100644 --- a/modules/nf-core/fusionreport/download/meta.yml +++ b/modules/nf-core/fusionreport/download/meta.yml @@ -7,30 +7,50 @@ keywords: - download tools: - fusionreport: - description: Generate an interactive summary report from fusion detection tools. + description: Generate an interactive summary report from fusion detection + tools. homepage: https://github.com/Clinical-Genomics/fusion-report documentation: https://github.com/Clinical-Genomics/fusion-report/blob/master/README.md tool_dev_url: https://github.com/Clinical-Genomics/fusion-report - licence: ["GPL v3"] + licence: + - "GPL v3" identifier: "" - +input: + - meta: + type: map + description: | + Groovy Map containing database information output: fusionreport_ref: - - meta: - type: string - description: directory containing the genome resource files required for fusioncatcher - pattern: "fusion_report_db" - - fusion_report_db: + type: map + description: | + Groovy Map containing database information + - ${prefix}: type: directory - description: directory containing the genome resource files required for fusioncatcher - pattern: "fusion_report_db" - + description: directory containing the genome resource files required for + fusioncatcher + pattern: "${prefix}" + versions_fusionreport: + - - ${task.process}: + type: string + description: The name of the process + - fusion_report: + type: string + description: The name of the tool + - fusion_report --version |& sed 's/fusion-report //': + type: eval + description: The expression to obtain the version of the tool +topics: versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" - ontologies: - - edam: http://edamontology.org/format_3750 # YAML + - - ${task.process}: + type: string + description: The name of the process + - fusion_report: + type: string + description: The name of the tool + - fusion_report --version |& sed 's/fusion-report //': + type: eval + description: The expression to obtain the version of the tool authors: - "@praveenraj2018" diff --git a/modules/nf-core/fusionreport/download/tests/main.nf.test b/modules/nf-core/fusionreport/download/tests/main.nf.test index f0572893..f0d0160c 100644 --- a/modules/nf-core/fusionreport/download/tests/main.nf.test +++ b/modules/nf-core/fusionreport/download/tests/main.nf.test @@ -3,13 +3,14 @@ nextflow_process { name "Test Process FUSIONREPORT_DOWNLOAD" script "../main.nf" process "FUSIONREPORT_DOWNLOAD" + config './nextflow.config' + tag "modules" tag "modules_nfcore" tag "fusionreport" tag "fusionreport/download" test("Download fusionreport databases") { - config './nextflow.config' when { params { @@ -17,7 +18,7 @@ nextflow_process { } process { """ - // This process doesn't have any inputs + input[0] = [id: 'fusion_report_db'] """ } } @@ -25,13 +26,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot( - path(process.out.fusionreport_ref[0][1]).resolve("fusiongdb2.db"), - path(process.out.fusionreport_ref[0][1]).resolve("mitelman.db"), - path(process.out.fusionreport_ref[0][1]).resolve("DB-timestamp.txt").exists(), - path(process.out.fusionreport_ref[0][1]).resolve("fusion_report.log").exists(), - process.out.versions - ).match() } + { assert snapshot(sanitizeOutput(process.out, unstableKeys: ["fusionreport_ref"])).match() } ) } } @@ -46,7 +41,7 @@ nextflow_process { } process { """ - // This process doesn't have any inputs + input[0] = [id: 'fusion_report_db'] """ } } @@ -54,8 +49,8 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } -} \ No newline at end of file +} diff --git a/modules/nf-core/fusionreport/download/tests/main.nf.test.snap b/modules/nf-core/fusionreport/download/tests/main.nf.test.snap index ae2d0bc8..5e5ccd4a 100644 --- a/modules/nf-core/fusionreport/download/tests/main.nf.test.snap +++ b/modules/nf-core/fusionreport/download/tests/main.nf.test.snap @@ -1,40 +1,33 @@ { "Download fusionreport databases": { - "content": [ - "fusiongdb2.db:md5,9dec75bfc146f56b36e5a84358f9e515", - "mitelman.db:md5,c271894c1cd62ba2735a060411c16dea", - true, - true, - [ - "versions.yml:md5,620c6e01391800a7e7b717d7a3024003" - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-15T18:56:45.064154384" - }, - "Create stub files": { "content": [ { - "0": [ + "fusionreport_ref": [ [ { "id": "fusion_report_db" }, - [ - "DB-timestamp.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - "cosmic.db:md5,d41d8cd98f00b204e9800998ecf8427e", - "fusion_report.log:md5,d41d8cd98f00b204e9800998ecf8427e", - "fusiongdb2.db:md5,d41d8cd98f00b204e9800998ecf8427e", - "mitelman.db:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "fusion_report_db" ] ], - "1": [ - "versions.yml:md5,620c6e01391800a7e7b717d7a3024003" - ], + "versions_fusionreport": [ + [ + "FUSIONREPORT_DOWNLOAD", + "fusion_report", + "4.1.1" + ] + ] + } + ], + "timestamp": "2026-05-27T14:05:13.933196201", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.2" + } + }, + "Create stub files": { + "content": [ + { "fusionreport_ref": [ [ { @@ -49,15 +42,19 @@ ] ] ], - "versions": [ - "versions.yml:md5,620c6e01391800a7e7b717d7a3024003" + "versions_fusionreport": [ + [ + "FUSIONREPORT_DOWNLOAD", + "fusion_report", + "4.1.1" + ] ] } ], + "timestamp": "2026-05-27T14:05:51.666843744", "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.4" - }, - "timestamp": "2025-06-27T19:34:10.41756869" + "nf-test": "0.9.5", + "nextflow": "26.04.2" + } } } \ No newline at end of file diff --git a/modules/nf-core/fusionreport/download/tests/nextflow.config b/modules/nf-core/fusionreport/download/tests/nextflow.config index 50523332..ef35395c 100644 --- a/modules/nf-core/fusionreport/download/tests/nextflow.config +++ b/modules/nf-core/fusionreport/download/tests/nextflow.config @@ -1,5 +1,5 @@ process { withName: 'FUSIONREPORT_DOWNLOAD' { - ext.args = params.module_args + ext.args = params.module_args } } diff --git a/nextflow.config b/nextflow.config index 8b7408b0..78809a9e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -372,7 +372,7 @@ manifest { mainScript = 'main.nf' defaultBranch = 'master' nextflowVersion = '!>=25.10.4' - version = '4.1.2' + version = '4.1.3dev' doi = '10.5281/zenodo.17641566' } diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 8efd3e8e..eb15cc70 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -21,8 +21,8 @@ { "@id": "./", "@type": "Dataset", - "creativeWorkStatus": "Stable", - "datePublished": "2026-05-20T09:51:42+00:00", + "creativeWorkStatus": "InProgress", + "datePublished": "2026-05-28T09:25:34+00:00", "description": "

\n \n \n \"nf-core/rnafusion\"\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/rnafusion)\n[![GitHub Actions CI Status](https://github.com/nf-core/rnafusion/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/rnafusion/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/rnafusion/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/rnafusion/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/rnafusion/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.2565517-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.2565517)\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.10.4-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-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\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/rnafusion)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23rnafusion-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/rnafusion)[![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/rnafusion** is a bioinformatics best-practice analysis pipeline for RNA sequencing consisting of several tools designed for detecting and visualizing fusion genes. Results from fusion callers tools (STAR-Fusion, arriba and FusionCatcher) are created, and are also aggregated, most notably in a pdf visualisation document, a vcf data collection file, and html and tsv reports. In parallel StringTie and CTAT-Splicing collect additional information on splicing events.\n\nOn release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/rnafusion/results).\n\nIn rnafusion the full-sized test includes reference building and fusion detection. The test dataset is taken from [here](https://github.com/nf-core/test-datasets/tree/rnafusion/testdata/human).\n\n## Pipeline summary\n\n![nf-core/rnafusion metro map](docs/images/nf-core-rnafusion_metro_map.png)\n\n### References\n\nThe references for the pipeline can be downloaded from the nf-core AWS megatests S3 bucket using the following command for the [AWS CLI tool](https://github.com/aws/aws-cli):\n\n```bash\naws --no-sign-request s3 sync s3://nf-core-awsmegatests/rnafusion/references/ \n```\n\nThe path to the downloaded references can then be provided to the pipeline with the `--genomes_base` parameter.\n\n⚠️ **Please note that the references are large and can take a long time to download, so it is recommended to download them once and use them for all future runs of the pipeline.**\n\nThe pipeline is also able to build the references in case files from a specific gencode version are missing (Note: only gencode 46 is available for fusioncatcher). This is done automatically when the expected references are not found and these files will be automatically published in the directory specified by the `--genomes_base` parameter. Use the `--references_only` parameter to trigger the reference building workflow only, without running the rest of the pipeline.\n\n1. Download gencode fasta and gtf files\n2. Download the HGNC nomenclature file\n3. Create files needed for QC (Sequence Dictionary and RRNA intervals)\n4. Convert the gtf file to a refflat file\n5. Create the [Salmon](https://salmon.readthedocs.io/en/latest/) index\n6. Create [STAR](https://github.com/alexdobin/STAR) index\n7. Build [STAR-Fusion](https://github.com/STAR-Fusion/STAR-Fusion) and [CTAT-SPLICING](https://github.com/TrinityCTAT/CTAT-SPLICING) references\n8. Download [Fusion-report](https://github.com/Clinical-Genomics/fusion-report) DBs\n\n> [!WARNING]\n> References for Fusioncatcher and Arriba cannot be automatically created by the pipeline and should be downloaded from the S3 bucket or another source. See the [References](#references) section for more information.\n\n#### Main workflow\n\n1. Input samplesheet check\n2. Reads quality control ([FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))\n3. Optional trimming with [fastp](https://github.com/OpenGene/fastp)\n4. Align FASTQs to BAM with [STAR](https://github.com/alexdobin/STAR)\n5. Run fusion detection with [Arriba](https://github.com/suhrig/arriba)\n6. Run fusion detection with [STAR-Fusion](https://github.com/STAR-Fusion/STAR-Fusion)\n 7a. Optional trimming of 3' end with [fastp](https://github.com/OpenGene/fastp) to feed into fusioncatcher (other tools not affected)\n 7b. Run fusion detection with [FusionCatcher](https://github.com/ndaniel/fusioncatcher)\n7. Run transcript assembly and quantification with [StringTie](https://ccb.jhu.edu/software/stringtie/)\n8. Run cancer splicing aberrations detection with [CTAT-SPLICING](https://github.com/TrinityCTAT/CTAT-SPLICING)\n9. Merge all fusions detected by the selected tools with [Fusion-report](https://github.com/Clinical-Genomics/fusion-report)\n10. Post-processing and analysis of data\n - [FusionInspector](https://github.com/FusionInspector/FusionInspector)\n - Summarize information into a VCF file\n - [Arriba](https://github.com/suhrig/arriba) visualisation\n - Collect metrics ([`picard CollectRnaSeqMetrics`](https://gatk.broadinstitute.org/hc/en-us/articles/360037057492-CollectRnaSeqMetrics-Picard-)), [`picard CollectInsertSizeMetrics`](https://gatk.broadinstitute.org/hc/en-us/articles/360037055772-CollectInsertSizeMetrics-Picard-) and ([`GATK MarkDuplicates`](https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard-))\n11. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n12. Compress bam files to cram with [samtools view](http://www.htslib.org/)\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/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\nAs the reference building is computationally heavy (> 24h on HPC), we had to use dummy reference files in the test profile. Therefore, it is recommended to run the test profile with the `-stub` option.\n\n```bash\nnextflow run nf-core/rnafusion \\\n -profile test, \\\n --outdir \\\n -stub\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/running/run-pipelines#using-parameter-files).\n\n> **Notes:**\n>\n> - Conda is not currently supported; run with singularity or docker.\n> - Paths need to be absolute.\n> - GRCh38 is the only supported reference.\n> - Single-end reads are to be used as last-resort. Paired-end reads are recommended. FusionCatcher cannot be used with single-end reads shorter than 130 bp.\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/rnafusion/usage) and the [parameter documentation](https://nf-co.re/rnafusion/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/rnafusion/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/rnafusion/output).\n\n## Credits\n\nnf-core/rnafusion was written by Martin Proks ([@matq007](https://github.com/matq007)), Maxime Garcia ([@maxulysse](https://github.com/maxulysse)) and Annick Renevey ([@rannick](https://github.com/rannick))\n\n## We thank the following people for their help in the development of this pipeline\n\n- [Phil Ewels](https://github.com/ewels)\n- [Rickard Hammarén](https://github.com/Hammarn)\n- [Alexander Peltzer](https://github.com/apeltzer)\n- [Praveen Raj](https://github.com/praveenraj2018)\n- [Anabella Trigila](https://github.com/atrigila)\n- [Nicolas Vannieuwkerke](https://github.com/nvnieuwk)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#rnafusion` channel](https://nfcore.slack.com/channels/rnafusion) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use nf-core/rnafusion for your analysis, please cite it using the following doi: [10.5281/zenodo.3946477](https://doi.org/10.5281/zenodo.3946477)\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": [ { @@ -108,7 +108,7 @@ }, "mentions": [ { - "@id": "#1429fcfc-1ec1-46c5-a62e-70e97cf33a65" + "@id": "#381cc113-2e23-45dc-85ca-52bf6fe6fce9" } ], "name": "nf-core/rnafusion" @@ -148,17 +148,17 @@ ], "contributor": [ { - "@id": "#9bc3bf47-ed5c-4c58-9f16-2b13aca19964" + "@id": "#fb14b5cd-3ed7-488b-9707-00a2ee8d2124" }, { "@id": "https://orcid.org/0009-0003-5619-1555" }, { - "@id": "#e7f5e3cc-2b4a-4166-889f-e22a23249b85" + "@id": "#9594f5b3-6275-4d07-a50a-252010cf55e3" } ], "dateCreated": "", - "dateModified": "2026-05-20T09:51:42Z", + "dateModified": "2026-05-28T09:25:34Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "image": { "@id": "docs/images/nf-core-rnafusion_metro_map.png" @@ -180,7 +180,7 @@ "@id": "https://orcid.org/0000-0001-7411-6063" }, { - "@id": "#9bc3bf47-ed5c-4c58-9f16-2b13aca19964" + "@id": "#fb14b5cd-3ed7-488b-9707-00a2ee8d2124" }, { "@id": "https://orcid.org/0009-0003-5619-1555" @@ -197,10 +197,10 @@ }, "url": [ "https://github.com/nf-core/rnafusion", - "https://nf-co.re/rnafusion/4.1.2/" + "https://nf-co.re/rnafusion/dev/" ], "version": [ - "4.1.2" + "4.1.3dev" ] }, { @@ -224,11 +224,11 @@ "name": "Workflow diagram" }, { - "@id": "#1429fcfc-1ec1-46c5-a62e-70e97cf33a65", + "@id": "#381cc113-2e23-45dc-85ca-52bf6fe6fce9", "@type": "TestSuite", "instance": [ { - "@id": "#fc1d8484-5bef-4030-9514-052ffc0d4df2" + "@id": "#6bda36dc-bb78-4650-8253-ed1fe6ccae09" } ], "mainEntity": { @@ -237,7 +237,7 @@ "name": "Test suite for nf-core/rnafusion" }, { - "@id": "#fc1d8484-5bef-4030-9514-052ffc0d4df2", + "@id": "#6bda36dc-bb78-4650-8253-ed1fe6ccae09", "@type": "TestInstance", "name": "GitHub Actions workflow for testing nf-core/rnafusion", "resource": "repos/nf-core/rnafusion/actions/workflows/nf-test.yml", @@ -399,7 +399,7 @@ "url": "https://github.com/maxulysse" }, { - "@id": "#9bc3bf47-ed5c-4c58-9f16-2b13aca19964", + "@id": "#fb14b5cd-3ed7-488b-9707-00a2ee8d2124", "@type": "Person", "affiliation": "ZS Associates", "email": "18577080+atrigila@users.noreply.github.com", @@ -415,7 +415,7 @@ "url": "https://github.com/nvnieuwk" }, { - "@id": "#e7f5e3cc-2b4a-4166-889f-e22a23249b85", + "@id": "#9594f5b3-6275-4d07-a50a-252010cf55e3", "@type": "Person", "affiliation": "ZS Associates", "email": "155591053+delfiterradas@users.noreply.github.com", diff --git a/subworkflows/local/build_references/main.nf b/subworkflows/local/build_references/main.nf index f2b6d2cf..87182fc8 100644 --- a/subworkflows/local/build_references/main.nf +++ b/subworkflows/local/build_references/main.nf @@ -197,8 +197,7 @@ workflow BUILD_REFERENCES { if (!params.no_cosmic && (!params.cosmic_username || !params.cosmic_passwd)) { error('COSMIC username and/or password missing, this is needed to download the fusionreport reference') } - FUSIONREPORT_DOWNLOAD() - ch_versions = ch_versions.mix(FUSIONREPORT_DOWNLOAD.out.versions) + FUSIONREPORT_DOWNLOAD([id: 'fusionreport']) ch_fusionreport_ref = FUSIONREPORT_DOWNLOAD.out.fusionreport_ref } else { ch_fusionreport_ref = channel.fromPath(params.fusionreport_ref).map { that -> [[id:that.Name], that] } diff --git a/subworkflows/local/fusioninspector_workflow/tests/main.nf.test b/subworkflows/local/fusioninspector_workflow/tests/main.nf.test index 37034d57..205d27d6 100644 --- a/subworkflows/local/fusioninspector_workflow/tests/main.nf.test +++ b/subworkflows/local/fusioninspector_workflow/tests/main.nf.test @@ -50,6 +50,7 @@ nextflow_workflow { script "../../../../modules/nf-core/fusionreport/download/main.nf" process { """ + input[0] = [ id:'fusionreport' ] """ } } @@ -157,6 +158,7 @@ nextflow_workflow { script "../../../../modules/nf-core/fusionreport/download/main.nf" process { """ + input[0] = [ id:'fusionreport' ] """ } } diff --git a/tests/.nftignore b/tests/.nftignore index 6999cb96..040a4074 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -12,9 +12,10 @@ fastqc/*_fastqc.{html,zip} pipeline_info/*.{html,json,txt,yml} references/GRCh38/hgnc/HGNC-DB-timestamp.txt references/GRCh38/hgnc/hgnc_complete_set.txt -references/GRCh38/fusion_report_db/DB-timestamp.txt -references/GRCh38/fusion_report_db/fusiongdb2.db -references/GRCh38/fusion_report_db/mitelman.db +references/GRCh38/fusionreport/DB-timestamp.txt +references/GRCh38/fusionreport/fusiongdb2.db +references/GRCh38/fusionreport/cosmic.db +references/GRCh38/fusionreport/mitelman.db references/GRCh38/gencode_v*/salmon/ctable.bin references/GRCh38/gencode_v*/salmon/pos.bin references/GRCh38/gencode_v*/salmon/pre_indexing.log diff --git a/tests/test_build.nf.test.snap b/tests/test_build.nf.test.snap index 23836cbb..f0dbdf80 100644 --- a/tests/test_build.nf.test.snap +++ b/tests/test_build.nf.test.snap @@ -13,7 +13,7 @@ "ctatsplicing": "0.0.2" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -47,7 +47,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -59,11 +59,10 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/minigenome.dict", @@ -193,7 +192,6 @@ [ "minigenome.gtf.bed:md5,d41d8cd98f00b204e9800998ecf8427e", "minigenome.gtf_rrna.gtf.gz:md5,fb03ec66f68bc4becc71c299ed38b62d", - "fusion_report.log:md5,d41d8cd98f00b204e9800998ecf8427e", "minigenome.dict:md5,f2dfb8df1d1f860050fc0dba1399fd9e", "minigenome.fa.fai:md5,e3f74a27219b33ae80fd5de5cbeaf32b", "minigenome.gtf.fasta:md5,349d42b5dbd73e163cdbad3453d8cd3a", @@ -282,10 +280,10 @@ "trans.blast.dat.gz:md5,85ba5ea96c566f751ad83a3e4b8ab128" ] ], - "timestamp": "2026-05-08T22:13:25.423950839", + "timestamp": "2026-05-28T11:31:31.557285215", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } } -} +} \ No newline at end of file diff --git a/tests/test_stub.nf.test.snap b/tests/test_stub.nf.test.snap index 98eb14df..afb78fcc 100644 --- a/tests/test_stub.nf.test.snap +++ b/tests/test_stub.nf.test.snap @@ -71,7 +71,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -309,7 +309,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -470,7 +470,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -581,10 +581,10 @@ "fusion-inspector": "2.11.5" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -645,7 +645,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -695,12 +695,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -833,10 +833,10 @@ "star/testXd.out.bam" ] ], - "timestamp": "2026-05-08T16:45:16.799996263", + "timestamp": "2026-05-28T12:51:09.690773619", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } }, "stub test salmon": { @@ -877,7 +877,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1010,7 +1010,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1211,10 +1211,10 @@ "fusioncatcher": "1.35" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -1275,7 +1275,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1319,12 +1319,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -1458,10 +1458,10 @@ "starfusion/test.starfusion.fusion_predictions.tsv" ] ], - "timestamp": "2026-05-08T16:41:58.814907158", + "timestamp": "2026-05-28T12:49:47.138995156", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } }, "stub test fastp": { @@ -1499,7 +1499,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1577,7 +1577,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1653,7 +1653,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1735,10 +1735,10 @@ "fusion-inspector": "2.11.5" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -1817,7 +1817,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1892,12 +1892,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -2066,10 +2066,10 @@ "stringtie/test.transcripts.gtf" ] ], - "timestamp": "2026-05-08T16:33:02.735330651", + "timestamp": "2026-05-28T12:46:12.232737413", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } } -} +} \ No newline at end of file diff --git a/tests/test_stub_bam.nf.test.snap b/tests/test_stub_bam.nf.test.snap index 2df4f56b..03d30999 100644 --- a/tests/test_stub_bam.nf.test.snap +++ b/tests/test_stub_bam.nf.test.snap @@ -51,7 +51,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -244,7 +244,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -363,7 +363,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -449,10 +449,10 @@ "fusion-inspector": "2.11.5" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -493,7 +493,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -543,12 +543,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -659,10 +659,10 @@ "star/test.Aligned.sortedByCoord.out.bam.bai" ] ], - "timestamp": "2026-05-08T16:28:13.66983016", + "timestamp": "2026-05-28T13:14:08.761052855", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } }, "stub test salmon": { @@ -713,7 +713,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -835,7 +835,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1014,10 +1014,10 @@ "fusioncatcher": "1.35" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -1058,7 +1058,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1102,12 +1102,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -1216,10 +1216,10 @@ "starfusion/test.starfusion.fusion_predictions.tsv" ] ], - "timestamp": "2026-05-08T16:25:06.562473541", + "timestamp": "2026-05-28T13:12:37.307869713", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } }, "stub test fastp": { @@ -1267,7 +1267,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1364,7 +1364,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1449,10 +1449,10 @@ "fusion-inspector": "2.11.5" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -1511,7 +1511,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1586,12 +1586,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -1738,10 +1738,10 @@ "stringtie/test.transcripts.gtf" ] ], - "timestamp": "2026-05-08T16:18:58.733461494", + "timestamp": "2026-05-28T13:08:58.515306208", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } }, "default no fastqs provided": { @@ -1779,10 +1779,10 @@ "fusion-inspector": "2.11.5" }, "FUSIONREPORT_DETECT": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "FUSIONREPORT_DOWNLOAD": { - "fusion_report": "4.0.1" + "fusion_report": "4.1.1" }, "GATK4_BEDTOINTERVALLIST": { "gatk4": "4.6.1.0" @@ -1844,7 +1844,7 @@ "ucsc": 447 }, "Workflow": { - "nf-core/rnafusion": "v4.1.2" + "nf-core/rnafusion": "v4.1.3dev" } }, [ @@ -1919,12 +1919,12 @@ "pipeline_info/nf_core_rnafusion_software_mqc_versions.yml", "references", "references/GRCh38", - "references/GRCh38/fusion_report_db", - "references/GRCh38/fusion_report_db/DB-timestamp.txt", - "references/GRCh38/fusion_report_db/cosmic.db", - "references/GRCh38/fusion_report_db/fusion_report.log", - "references/GRCh38/fusion_report_db/fusiongdb2.db", - "references/GRCh38/fusion_report_db/mitelman.db", + "references/GRCh38/fusionreport", + "references/GRCh38/fusionreport/DB-timestamp.txt", + "references/GRCh38/fusionreport/cosmic.db", + "references/GRCh38/fusionreport/fusion_report.log", + "references/GRCh38/fusionreport/fusiongdb2.db", + "references/GRCh38/fusionreport/mitelman.db", "references/GRCh38/gencode_v46", "references/GRCh38/gencode_v46/gencode", "references/GRCh38/gencode_v46/gencode/Homo_sapiens.GRCh38.46.gtf", @@ -2076,10 +2076,10 @@ "stringtie/test.transcripts.gtf" ] ], - "timestamp": "2026-05-08T16:29:18.231193476", + "timestamp": "2026-05-28T13:14:52.675623227", "meta": { "nf-test": "0.9.5", - "nextflow": "25.10.4" + "nextflow": "26.04.2" } } -} +} \ No newline at end of file diff --git a/workflows/rnafusion.nf b/workflows/rnafusion.nf index b4ff6217..c4de7c5d 100644 --- a/workflows/rnafusion.nf +++ b/workflows/rnafusion.nf @@ -355,7 +355,6 @@ workflow RNAFUSION { params.tools_cutoff ) - ch_versions = ch_versions.mix(FUSIONREPORT_DETECT.out.versions) ch_fusion_list = FUSIONREPORT_DETECT.out.fusion_list ch_fusion_list_filtered = FUSIONREPORT_DETECT.out.fusion_list_filtered ch_fusionreport_report = FUSIONREPORT_DETECT.out.report