-
Notifications
You must be signed in to change notification settings - Fork 953
fix: Nextflow 25 strict syntax compliance for rnaseq modules and subworkflows #9688
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
pinin4fjords
wants to merge
15
commits into
master
Choose a base branch
from
strict-syntax-fixes-subworkflows
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
592911c to
278a5b8
Compare
278a5b8 to
851a304
Compare
4a2cb06 to
9fb7df5
Compare
…orkflows
Modules:
- bbmap/bbsplit: Rename closure variable `index` to `idx` to avoid shadowing
- bracken, gunzip, catadditionalfasta, hisat2/extractsplicesites,
rseqc/readdistribution, rseqc/tin, sentieon/*, sortmerna, sylph/profile:
Prefix unused variables with `_` or remove them in stubs
- cat/fastq, gffread, rsem/preparereference, salmon/quant,
sentieon/rsempreparereference, sentieon/staralign, sortmerna,
trimgalore: Replace implicit `it` with explicit parameter names
- ucsc/bedclip, ucsc/bedgraphtobigwig: Use args variable in command
- sentieon test configs: Replace env {} block with System.getenv()
Convert 16 modules to topics version output:
- bbmap/bbsplit, bracken/bracken, gffread, gunzip, hisat2/extractsplicesites
- kraken2/kraken2, rsem/preparereference, salmon/quant
- sentieon/rsemcalculateexpression, sentieon/rsempreparereference, sentieon/staralign
- sortmerna, sylph/profile, ucsc/bedclip, ucsc/bedgraphtobigwig
Subworkflows:
- All: Replace `Channel.` with `channel.` (lowercase)
- fastq_fastqc_umitools_trimgalore: Fix `reads` shadowing
- fastq_fastqc_umitools_fastp: Prefix unused closure params with `_`
- fastq_qc_trim_filter_setstrandedness: Replace implicit `it`
- fastq_remove_rrna: Replace implicit `it`, prefix unused params
- bam_dedup_umi: Replace implicit `it`
- quantify_pseudo_alignment: Replace implicit `it`
- Remove .out.versions refs for modules now using topics
Co-Authored-By: Claude Opus 4.5 <[email protected]>
52e289b to
ca2d733
Compare
Master already has proper versions.yml creation. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Stubs should just create expected output files without input validation. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Co-Authored-By: Claude Opus 4.5 <[email protected]>
GATK3's multithreading causes JMX errors in container environments. Setting cpus=1 avoids the issue. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- gunzip: Add head -1 to extract first line before sed parsing - kraken2: Add head -1 to extract first line before sed parsing - sortmerna: Use grep pattern to extract version line directly (tool outputs verbose debug info before version number) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Fix meta.yml to use single backslashes to match what Groovy produces after parsing the main.nf eval command. Co-Authored-By: Claude Opus 4.5 <[email protected]>
The validation logic is needed for the no_files tests. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Template was reset to master which uses different versions format. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Didn't fix the underlying Java/cgroups v2 compatibility issue. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Co-Authored-By: Claude Opus 4.5 <[email protected]>
…nce script branches Co-Authored-By: Claude Opus 4.5 <[email protected]>
Helps prevent disk space exhaustion when multiple large container images (e.g., Sentieon modules) land on the same runner. Co-Authored-By: Claude Opus 4.5 <[email protected]>
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.
Summary
This PR fixes Nextflow 25 strict syntax compliance issues and converts modules to topics version output.
Strict Syntax Fixes:
Variable shadowing fixes:
bbmap/bbsplit/main.nf: Rename closure variableindex→idxto avoid shadowing input parameterImplicit closure parameter
it→ explicit names:cat/fastq/main.nf:v, ix→val, idxgffread/main.nf:it→flagin.any { }closurersem/preparereference/main.nf:it→argin.removeIf { }salmon/quant/main.nf:it→rin.each { }sentieon/rsempreparereference/main.nf:it→argin.removeIf { }sentieon/staralign/main.nf:it→rin.each { }trimgalore/main.nf: implicititfixitin.map { },.join { },.branch { }operationsSentieon env block fixes (5 test configs):
env { VAR = "$VAR" }syntax withenv.VAR = System.getenv('VAR')syntaxSentieon license variable usage:
sentieon/rsemcalculateexpression/main.nf: Add$sentieonLicenseto script (was defined but never used)sentieon/staralign/main.nf: Add$sentieonLicenseto script (was defined but never used)Unused variable removal in stubs:
Topics Version Output Conversion (16 modules):
Converted from
path "versions.yml", emit: versionstotuple val("${task.process}"), val('tool'), eval('version_cmd'), topic: versions, emit: versions_tool:Subworkflows fixed (14 files):
These changes ensure compliance with Nextflow 25 strict syntax.
Snapshot Updates (unrelated to strict syntax):
Some test snapshots were updated due to minor output changes in tools - these tests likely haven't run in a while and the snapshots were stale:
antismash/antismash: Updatedantismash.jsmd5 hashemboss/seqret: Updatedtest.gffmd5 hashkofamscan: Updatedtest.kofamscan.txtmd5 hashultra/pipeline: Added newsortedfield to JSON outputAdditional Fixes:
custom/catadditionalfasta: Fixed missingversions.ymlcreation in Python template after topics revertsentieon/rsemcalculateexpression&sentieon/rsempreparereference: Added STAR symlink to stub blocks to enable version detection.out.versionsreferences for modules converted to topics, and removed empty version channels where applicableTest plan
nextflow linton modified files (verified locally - all pass)🤖 Generated with Claude Code