Skip to content

feat: update hisat2 modules for strict syntax - #12838

Merged
maxulysse merged 16 commits into
nf-core:masterfrom
maxulysse:strict_syntax
Aug 31, 2026
Merged

feat: update hisat2 modules for strict syntax#12838
maxulysse merged 16 commits into
nf-core:masterfrom
maxulysse:strict_syntax

Conversation

@maxulysse

@maxulysse maxulysse commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

Update hisat2 modules to use strict Nextflow syntax, bump software versions, and refactor the build module's input signature.

Changes

hisat2/build input refactor

Combined three separate input tuples into a single tuple with an explicit memory parameter:

  • Before: tuple val(meta), path(fasta), tuple val(meta2), path(gtf), tuple val(meta3), path(splicesites)
  • After: tuple val(meta), path(fasta), path(gtf), path(splicesites) + val hisat2_memory_input

The hisat2_memory_input replaces the previous params.hisat2_build_memory reference, making the module self-contained.

Version bumps

Module Package Before After
hisat2/align hisat2 2.2.2 2.2.3
hisat2/align samtools 1.23 1.24
hisat2/build hisat2 2.2.2 2.2.3
hisat2/extractsplicesites hisat2 2.2.1 2.2.3
hisat2/extractsplicesites samtools 1.20 1.24

Container updates

All three modules now use community-cr-prod.seqera.io (singularity) and community.wave.seqera.io (docker) instead of the previous Galaxy/Seqera URLs.

Strict syntax compliance

  • $variable${variable} throughout all main.nf files
  • else { moved to its own line
  • optional:trueoptional: true

hisat2/align cleanup

Removed the built-in strandedness logic (--rna-strandness flags). Users can pass these via ext.args instead.

Test updates

  • All tests updated to use the new combined input tuple format
  • Added a test for splice-aware indexing with 3.GB memory threshold
  • Refactored all snapshot assertions to use sanitizeOutput() from nft-utils for cleaner, more readable snapshots
  • Removed unnecessary params { outdir } blocks from tests

Testing

  • hisat2/build tests pass
  • hisat2/align tests pass
  • hisat2/extractsplicesites tests pass
  • fastq_align_hisat2 tests pass
  • Linting passes

Generated by opencode
Verified by @maxulysse

- Combine separate input tuples into single tuple for hisat2/build
- Add val hisat2_memory_input to replace params.hisat2_build_memory
- Update meta.yml to document new input signature
- Update all tests to use new input format
- Add test for splice-aware indexing with 3.GB memory threshold

Generated by opencode
@maxulysse maxulysse changed the title feat: update hisat2 modules for strict syntax and record types feat: update hisat2 modules for strict syntax Aug 28, 2026
- hisat2 2.2.2 → 2.2.3, samtools 1.23 → 1.24 (align)
- hisat2 2.2.2 → 2.2.3 (build)
- hisat2 2.2.1 → 2.2.2, samtools 1.20 → 1.24 (extractsplicesites)
- Update container URLs to community-cr-prod.seqera.io
- Apply strict syntax: ${var} interpolation, else on new line

Generated by opencode
Strandedness can be passed via ext.args instead.
Also fixes missing def on ss variable.

Generated by opencode
@maxulysse maxulysse changed the title feat: update hisat2 modules for strict syntax feat: update hisat2 modules for strict syntax and record types Aug 31, 2026
@maxulysse maxulysse changed the title feat: update hisat2 modules for strict syntax and record types feat: update hisat2 modules for strict syntax Aug 31, 2026
Comment thread modules/nf-core/hisat2/align/environment.yml
Comment thread modules/nf-core/hisat2/align/main.nf Outdated
- Add .conda-lock files for amd64/arm64
- Add containers section to meta.yml for all 3 modules
- Update extractsplicesites hisat2 2.2.2 → 2.2.3
- Update container URLs from fresh patch

Generated by opencode
@maxulysse
maxulysse requested a review from matthdsm August 31, 2026 11:04

@matthdsm matthdsm left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 👍🏻

@maxulysse

Copy link
Copy Markdown
Member Author

LGTM! 👍🏻

No problem with the disappearances of the meta.strandeness?

@matthdsm

Copy link
Copy Markdown
Contributor

Not from me. can be set through ext.args AFAIK, and special stuff in meta isn't allowed anyways.
Feel free to ask opinions from @nf-core/maintainers

@mahesh-panchal mahesh-panchal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aside from what could be infrastructure issues, looks good to me.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no corresponding arm build even though align has one

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

scan_id: sc-734493ace7062424_1
linux/arm64:
name: community.wave.seqera.io/library/hisat2:2.2.3--0b83b24baf5a98d0
build_id: ""

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like it has missing values

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I used the nf-core command for this, I'll report failures to tools

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@maxulysse
maxulysse added this pull request to the merge queue Aug 31, 2026
Merged via the queue into nf-core:master with commit e7428ec Aug 31, 2026
67 checks passed
@maxulysse
maxulysse deleted the strict_syntax branch August 31, 2026 12:30
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.

3 participants