Add --save_domtblout option - #71
Merged
erikrikarddaniel merged 2 commits intoAug 24, 2026
Merged
Conversation
Picks up nf-core/modules#12772, which adds a save_domtblout take parameter and a domain_summary emit, so a calling pipeline can turn on hmmsearch's --domtblout output. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PDswY3eJxbJ9xnWSCQFVRG
hmmsearch's per-sequence hit table carries no alignment coordinates, so
there was no way to work out how much of a profile a hit covers, or to
find a gene split over several adjacent ORFs where no single ORF covers
enough of the profile to be classified on its own. Those coordinates only
exist in the per-domain table, which the pipeline never wrote and which
could not be turned on from a config either.
--save_domtblout passes save_domtblout through to
FASTA_HMMSEARCH_RANK_FASTAS, which hands it to HMMER_HMMSEARCH as its
write_domain flag. No publishing change is needed: the module already
declares path('*.domtbl.gz') and the default publishDir puts it in
results/hmmer/.
The test_phylosearch_input profile now sets the option so the existing
pipeline test covers it. The table's footer embeds the work directory
path and a run timestamp, so its content is never reproducible and it is
added to tests/.nftignore; the snapshot records the filenames only.
Also corrects docs/output.md, which listed hmmsearch's human-readable
output as *.tbl.gz, a duplicate of the line above it, rather than
*.txt.gz.
Closes nf-core#69
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PDswY3eJxbJ9xnWSCQFVRG
|
erikrikarddaniel
marked this pull request as ready for review
August 24, 2026 09:48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR checklist
nf-core pipelines lint).nextflow run . -profile test,docker --outdir <OUTDIR>).nextflow run . -profile debug,test,docker --outdir <OUTDIR>).docs/usage.mdis updated.docs/output.mdis updated.CHANGELOG.mdis updated.README.mdis updated (including new tool citations and authors/contributors).Description
Closes #69.
hmmsearch's per-sequence hit table carries no alignment coordinates, so there was no way to work out how much of a profile a hit covers, or to find a gene split over several adjacent ORFs where no single ORF covers enough of the profile to be classified on its own. Those coordinates only exist in the per-domain table, which the pipeline never wrote and which could not be turned on from a config either:ext.args = "--domtblout …"produces a file the module never gzips and no declared output pattern matches, and overridingpublishDirforHMMER_HMMSEARCHfrom a-cconfig disabled publishing for that process entirely.The blocker was upstream:
fasta_hmmsearch_rank_fastashardcodedwrite_domaintofalse. nf-core/modules#12772 added asave_domtblouttake:parameter and adomain_summaryemit, and is now merged, so this PR updates the vendored subworkflow and wires the option through.Changes
fasta_hmmsearch_rank_fastasto56521ad, the merge commit of Support save_domtblout in fasta_hmmsearch_rank_fastas modules#12772.--save_domtbloutparameter (defaultfalse), passed as an explicit value frommain.nfintoPHYLOPLACEand on toFASTA_HMMSEARCH_RANK_FASTAS, per the pipeline's existing convention of not readingparams.*belowmain.nf.HMMER_HMMSEARCHalready declarespath('*.domtbl.gz'), emit: domain_summaryand gzips it, so the defaultpublishDirinconf/modules.configlands it inresults/hmmer/.### Saving the per-domain hit tablesection indocs/usage.md, and the*.domtbl.gzoutput listed indocs/output.md. While there, correcteddocs/output.md, which listedhmmsearch's human-readable output as*.tbl.gz, a duplicate of the line above it, rather than*.txt.gz.Testing
conf/test_phylosearch_input.confignow setssave_domtblout = true, so the existing pipeline test covers the new path end to end rather than adding another full pipeline run to CI. The trade-off is that the phylosearch path no longer has a test with the option off.The table's footer embeds the work directory path and a run timestamp, so its content is never reproducible;
hmmer/*.domtbl.gzis therefore added totests/.nftignoreand the snapshot records the filenames only. Verified stable by re-running the suite without--update-snapshot, not just recorded once.Full
nf-test test --profile=+dockersuite passes (6/6).nf-core pipelines lintreports 0 failures.nextflow lint .is clean on 26.04.6; on the declared minimum 25.10.4 the one remaining error is pre-existing in the vendoredutils_nextflow_pipelinesubworkflow and untouched here.Not included
Issue #69 also mentions
SEQTK_SUBSEQoutput filenames missing a separator (domain_16s.fnaarc.fa.gz). That comes from the vendoredseqtk/subseqmodule building its output name as${sequences}${prefix}.${ext}.gz, so it cannot be fixed from this pipeline withext.prefix. It needs a fix in nf-core/modules and will be picked up in the next general module update here.