From 93a473b9f3b72bbc1f86c2d7b24c8dd15d01f3a5 Mon Sep 17 00:00:00 2001 From: alejandrogzi Date: Thu, 22 Oct 2026 23:33:50 +0200 Subject: [PATCH 1/2] fix(xorf): restore 19-input XORF call for v0.2.0 xorf v0.1.2 added skip_transaid (after skip_netstart) and strip_truncations (after do_polishing) to the XORF take block. The submodule bump to v0.2.0 therefore failed before execution with 'declares 19 input channels but 17 were given'. Pass both from xasm params, defaulting to upstream behavior (skip_transaid=false, strip_truncations=true), mirror --no-transaid in PREDICT when skip_transaid is enabled, and document both in nextflow.config/params.json. --- nextflow.config | 7 +++++++ params.json | 2 ++ subworkflows/xorf/main.nf | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/nextflow.config b/nextflow.config index f7ebe5c..265800b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -206,11 +206,13 @@ params { xorf_custom_database = null // custom protein db: .dmnd/.dmnd.gz replaces default; .fa/.fasta/.fa.gz appended to SwissProt and reindexed xorf_chunk_size = 20 // chunk size for XORF parallel processing xorf_skip_netstart = true // skip netstart + xorf_skip_transaid = false // skip TransAID; PREDICT scores with its no-TransAID model xorf_predict_min_score_max_predictions = 0.50 // min score for ORF predictions xorf_predict_max_predictions = 3 // max ORF predictions per region xorf_predict_threshold = 0.03 // prediction threshold xorf_predict_keep_raw = false // keep raw predictions xorf_do_polishing = true // polish ORFs (duplicates, truncations) + xorf_strip_truncations = true // drop predictions flagged as 5' truncations xorf_skip_joined_concat = false // skip joined concatenation of chunks xorf_rename_deactivate = false // disable ORF renaming xorf_rename_rebase = false // rebase names to short hashes @@ -940,6 +942,11 @@ process { base_args = base_args + ' --keep-raw' } + // Without TransAID scores, score with the bundled model trained without them. + if (params.xorf_skip_transaid) { + base_args = base_args + ' --no-transaid' + } + if (base_args.size() > 0) { return base_args.join(' ') } else { diff --git a/params.json b/params.json index af10c23..a4fbe88 100644 --- a/params.json +++ b/params.json @@ -88,11 +88,13 @@ "xorf_custom_database": null, "xorf_chunk_size": 20, "xorf_skip_netstart": true, + "xorf_skip_transaid": false, "xorf_predict_min_score_max_predictions": 0.50, "xorf_predict_max_predictions": 3, "xorf_predict_threshold": 0.03, "xorf_predict_keep_raw": false, "xorf_do_polishing": true, + "xorf_strip_truncations": true, "xorf_skip_joined_concat": false, "xorf_rename_deactivate": false, "xorf_rename_rebase": true, diff --git a/subworkflows/xorf/main.nf b/subworkflows/xorf/main.nf index f1a4d25..4dd4bcc 100644 --- a/subworkflows/xorf/main.nf +++ b/subworkflows/xorf/main.nf @@ -169,9 +169,14 @@ workflow XORF_RUN { ch_esm_weights, params.xorf_predict_keep_raw, params.xorf_selenocysteine_sites, + // Keep this positional order in sync with modules/xorf/src/subworkflows/xorf/main.nf. + // v0.1.2 added skip_transaid after skip_netstart and strip_truncations after + // do_polishing; v0.2.0 keeps the same 19-input signature. params.xorf_skip_netstart, + params.xorf_skip_transaid, params.xorf_rename_deactivate, params.xorf_do_polishing, + params.xorf_strip_truncations, params.xorf_skip_joined_concat, false, null, null, // run_only_on / run_only_mode / run_only_target — masking not ported ch_database_versions.mix(ch_esm_versions) From b98fb4168c4dc0bbaadd981ce66b1385dba1b58c Mon Sep 17 00:00:00 2001 From: alejandrogzi Date: Thu, 22 Oct 2026 23:37:05 +0200 Subject: [PATCH 2/2] fix(xorf): use the v3.2 model cutoffs xorf v0.2.0 ships the v3.2 classifier with its cutoff in the model bundle (0.29; 0.33 for the no-TransAID model). The old 0.50 / 0.03 overrides retained fewer annotated CDSs (0.55-0.85% fewer coding transcripts upstream). Set predict_min_score_max_predictions and predict_threshold to -1 so both come from the bundle. --- nextflow.config | 4 ++-- params.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nextflow.config b/nextflow.config index 265800b..add4067 100644 --- a/nextflow.config +++ b/nextflow.config @@ -207,9 +207,9 @@ params { xorf_chunk_size = 20 // chunk size for XORF parallel processing xorf_skip_netstart = true // skip netstart xorf_skip_transaid = false // skip TransAID; PREDICT scores with its no-TransAID model - xorf_predict_min_score_max_predictions = 0.50 // min score for ORF predictions + xorf_predict_min_score_max_predictions = -1 // negative: model bundle cutoff (0.29; 0.33 with skip_transaid) xorf_predict_max_predictions = 3 // max ORF predictions per region - xorf_predict_threshold = 0.03 // prediction threshold + xorf_predict_threshold = -1 // negative: model bundle cutoff; only sets predicted_class xorf_predict_keep_raw = false // keep raw predictions xorf_do_polishing = true // polish ORFs (duplicates, truncations) xorf_strip_truncations = true // drop predictions flagged as 5' truncations diff --git a/params.json b/params.json index a4fbe88..d26bdbd 100644 --- a/params.json +++ b/params.json @@ -89,9 +89,9 @@ "xorf_chunk_size": 20, "xorf_skip_netstart": true, "xorf_skip_transaid": false, - "xorf_predict_min_score_max_predictions": 0.50, + "xorf_predict_min_score_max_predictions": -1, "xorf_predict_max_predictions": 3, - "xorf_predict_threshold": 0.03, + "xorf_predict_threshold": -1, "xorf_predict_keep_raw": false, "xorf_do_polishing": true, "xorf_strip_truncations": true,