Skip to content

feat(#4): versions.yml + conf/base.config + conf/modules.config#18

Merged
hyphaltip merged 1 commit into
mainfrom
refactor/versions-and-configs
Jun 29, 2026
Merged

feat(#4): versions.yml + conf/base.config + conf/modules.config#18
hyphaltip merged 1 commit into
mainfrom
refactor/versions-and-configs

Conversation

@hyphaltip

Copy link
Copy Markdown
Member

Summary

Establishes the conventions every future module extraction (Issues #5#10) must copy. One commit.

What changed

conf/base.config (new)

Portable label-based resource tiers applied to every run before profiles kick in:

Label CPUs Memory Time
process_single 1 6 GB 4 h
process_low 2 12 GB 8 h
process_medium 8 32 GB 24 h
process_high 16 64 GB 72 h
process_long 8 32 GB 120 h

UCR HPCC withName: blocks in conf/profile_annotate.config still override these per-process. Config load order: base.configmodules.config → profile configs → withName: wins.

conf/modules.config (new)

Extracts publishDir out of modules/local/ process definitions. ANTISMASH_RUN, INTERPROSCAN_RUN, SIGNALP_RUN no longer hard-code publishDir "${params.target}" inline.

modules/local/*.nf — all four extracted modules updated

  • Removed inline cpus/memory/time → replaced by label 'process_low' / label 'process_medium'
  • Removed inline publishDir → moved to conf/modules.config
  • Added path 'versions.yml', emit: versions output with real version capture in script: and pinned stub versions in stub:
  • Added emit: results to primary output so .out.results / .out.versions are always unambiguous

funannotate.nf

  • ch_versions channel accumulates versions.yml from ASM_STATS, ANTISMASH_RUN, INTERPROSCAN_RUN, SIGNALP_RUN whenever those processes run
  • ch_versions.unique().collectFile() writes logs/nextflow/software_versions.yml
  • Call sites updated to .out.results / .out.versions

Test plan

  • nextflow run . -profile test -stub-run15 completed, 0 failed
  • versions.yml emitted and collected in stub output

🤖 Generated with Claude Code

https://claude.ai/code/session_01AbWwmm9v6dJn13sgAJn3Sa

Establishes the conventions every future module extraction copies.

conf/base.config
  Label-based portable resource tiers (process_single/low/medium/high/long).
  Wired into nextflow.config before profiles so withName: in profile_annotate.config
  still overrides for UCR HPCC. Decouples module definitions from infrastructure.

conf/modules.config
  Extracts publishDir from modules/local/ into config. The three annotation
  modules (ANTISMASH_RUN, INTERPROSCAN_RUN, SIGNALP_RUN) no longer hard-code
  publishDir "${params.target}" inline.

modules/local/*.nf
  All four extracted modules updated:
  - Remove inline cpus/memory/time (replaced by resource-tier label)
  - Remove inline publishDir (moved to conf/modules.config)
  - Add second label 'process_low' / 'process_medium' alongside existing
    provisioning label (antismash / interproscan / signalp / setup)
  - Add 'versions.yml' output (emit: versions) with real version capture in
    script: and stub versions in stub:
  - Add emit: name to primary output so .out.results / .out.versions are
    unambiguous

funannotate.nf
  - ch_versions channel accumulates versions.yml from ASM_STATS, ANTISMASH_RUN,
    INTERPROSCAN_RUN, SIGNALP_RUN whenever those processes run
  - ch_versions.unique().collectFile() writes logs/nextflow/software_versions.yml
  - Call sites updated to use .out.results / .out.versions

Stub-run gate: 15 completed, 0 failed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbWwmm9v6dJn13sgAJn3Sa
@hyphaltip
hyphaltip merged commit edae051 into main Jun 29, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant