WIP: all hisat2 modules - #1913
Conversation
|
Warning Newer version of the nf-core template is available. Your pipeline is using an old version of the nf-core template: 4.0.3. For more documentation on how to update your pipeline, please see the Synchronisation documentation. |
|
pinin4fjords
left a comment
There was a problem hiding this comment.
AI-assisted review (Claude, on behalf of @pinin4fjords). This PR bumps HISAT2 (align/build/extractsplicesites) to 2.2.3, moves strandedness logic from HISAT2_ALIGN into ext.args, and rewires hisat2_build_memory through PREPARE_GENOME_INDICES as an explicit process input. Most of the diff is mechanical module-sync (containers, meta.yml, test refactors to sanitizeOutput()). One finding below is a real behavioral regression worth fixing before merge; the other is minor. Note the PR title is still "WIP" - flagging in case this isn't meant for review yet.
| process HISAT2_BUILD { | ||
| tag "${fasta}" | ||
| tag "${meta.id}" | ||
| label 'process_high' |
There was a problem hiding this comment.
Severity: high - This silently turns off HISAT2's splice-aware index building for normal pipeline runs.
HISAT2_BUILDused to carry bothprocess_highandprocess_high_memorylabels, giving it 200GB of memory by default (perconf/base.config).- The pipeline's threshold says "only use splice sites/exons in the index if you have at least 200GB" (
hisat2_build_memory = '200.GB'innextflow.config). - Since the process actually got exactly 200GB, that check always passed, so splice-aware indexing happened by default.
- This PR drops the
process_high_memorylabel (visible as the removed line just above this one in the diff), cutting the default allocation to 72GB (process_highalone). - Now the check (72GB >= 200GB) fails, so splice-aware indexing gets skipped by default - a real drop in alignment quality - with nothing to alert the user.
- No test catches this because the module and subworkflow tests separately override the threshold down to
3.GB, so they never exercise the real 200GB default.
Suggested fix: add a memory override for HISAT2_BUILD in conf/modules/prepare_genome.config (e.g. restore ~200GB), or lower hisat2_build_memory's default to match what process_high actually provides, and update the schema help text to match.
| | `hisat2/align` | 2.2.1 | 2.2.3 | | ||
| | --`samtools` | 1.20 | 1.24 | | ||
| | `hisat2/build` | 2.2.1 | 2.2.3 | | ||
| | --`samtools` | 1.20 | | | ||
| | `hisat2/extractsplicesites` | 2.2.1 | 2.2.3 | | ||
| | --`samtools` | 1.20 | 1.24 | |
There was a problem hiding this comment.
Severity: informational - The --samtools`` rows use a literal -- prefix to imply "sub-dependency of the row above," but Markdown tables don't support that kind of nesting - it'll just render as a literal double-hyphen in the cell. This convention doesn't appear elsewhere in `CHANGELOG.md`'s history, so it looks like a one-off formatting slip rather than an established pattern. Not blocking, just cosmetic.
Summary
Updates HISAT2 modules (build, extractsplicesites, align) to latest versions.
Changes
--rna-strandnessmapping toext.argsinconf/modules/align_hisat2.config, usingmeta.strandednessandmeta.single_end.params.hisat2_build_memorythroughPREPARE_GENOME_INDICESsubworkflow instead of reading it directly in the module.Generated via opencode
Verified by @maxulysse