Skip to content

Conversation

@pinin4fjords
Copy link
Member

nf-core/rnaseq 3.22.0 Release

This release focuses on bug fixes, performance improvements, enhanced ARM64 support, and better parameter validation.


Bug Fixes

Bigwig Strand Labeling (#1620)

BBSplit Index Staging (#1617, #1631)

  • Completely rewrote the BBSplit index handling to fix timestamp issues when reusing pre-built indices
  • Now uses symlinks for index files (except summary.txt which must be modified) instead of copying the entire index
  • Creates a writable index structure that properly handles BBMap's timestamp validation
  • Fixes the atomic rename pattern for newly built indices

Sample Name Mangling (#1622)

  • Updated tximeta/tximport module to prevent R's check.names from mangling sample names (e.g., converting dashes to dots)

GTF Extra Attributes (#1635)

Parameter Validation (#1632)

  • Added validation error when using both --transcript_fasta and --additional_fasta without a pre-built pseudo-aligner index
  • This combination is invalid because transcript FASTA bypasses the genome FASTA where additional sequences would be added
  • Only errors when actually building an index (allows pre-built indices that already contain spike-ins)
  • Reported in Warn user if both transcript_fasta and additional_fasta are provided. #1450

Performance Improvements

Qualimap Optimization (#1621)

  • Added multi-threaded name sorting before Qualimap to significantly improve performance
  • Qualimap operates more efficiently on name-sorted BAM files
  • Uses a dedicated SAMTOOLS_SORT_QUALIMAP process with -n flag

ARM64 Support

ARM Container Fixes (#1630)

  • Fixed arm64 profile to use pre-built ARM containers from community.wave.seqera.io
  • Added ARM containers for FQ_LINT and UMICOLLAPSE
  • Removed outdated ARM limitation notes for hisat2 and kraken2 (now have ARM support)
  • Updated documentation for ARM architecture usage

Documentation


Template Updates


Contributors

Special thanks to: @ahwanpandey, @ctuni, @EladH1, @emilymiyoshi, @pinin4fjords, @pontushojer, @siddharthab


Full Changelog

See CHANGELOG.md for complete details.

pinin4fjords and others added 30 commits September 18, 2025 15:50
Merged dev branch into nf-core-template-merge-3.4.1, resolving conflicts
by keeping pipeline-specific features while adopting template improvements.

## Conflict resolutions:

### Infrastructure improvements (adopted from template):
- Update nf-test to v0.9.3
- Update minimum Nextflow version to 25.04.0
- Add new help system parameters (--help, --help_full, --show_hidden)
- Update utility subworkflow git_sha values
- Adopt `removeNextflowVersion` function for test snapshots
- Use vars.AWS_S3_BUCKET instead of secrets for non-sensitive config

### Pipeline-specific features (retained):
- Keep aligner matrix testing (star_salmon, star_rsem) in AWS full tests
- Retain Sentieon authentication environment variables
- Keep commit-pinned test data URL for reproducibility
- Preserve pipeline metadata and real Zenodo DOI
- Maintain existing CHANGELOG format

### Merged additions:
- Combined test ignore patterns (both pipeline-specific and template)
- Added both fastqc pattern variants for compatibility

All changes follow the principle of preserving pipeline functionality while
adopting template infrastructure improvements for better maintainability.

Follows merge patterns from nf-core/sarek#2031 and guidance from
https://nf-co.re/docs/tutorials/sync/merging_automated_prs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Important! Template update for nf-core/tools v3.4.1
- Add entry for PR #1613: Fix broken link and add latest kit version for Takara UMI prep
- Add entry for PR #1614: Template update for nf-core/tools v3.4.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
This updates the bbmap/bbsplit module to address staging issues
reported in the original PR.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The nf-test workflow used paths-ignore at the workflow level, which prevented the entire workflow (including the confirm-pass job) from running when only docs/markdown files were changed. This caused PRs with only documentation changes to fail merge requirements if confirm-pass was configured as a required status check.

Changes:
- Remove paths-ignore from workflow trigger to ensure workflow always runs
- Add dorny/paths-filter action to detect docs/markdown-only changes
- Make nf-test job conditional on skip_tests output
- Update confirm-pass job to always run and pass when tests are skipped
- Add skip_tests output to nf-test-changes job

This ensures the confirm-pass required check is always present while still skipping expensive test execution for documentation-only changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The default 'some' quantifier returns true if ANY file matches ANY pattern,
which incorrectly skips tests when a PR has mixed changes (e.g., both
README.md and src/main.nf). Using 'every' ensures ALL files must match
at least one pattern for tests to be skipped.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
pinin4fjords and others added 22 commits November 25, 2025 20:28
Add validation error for incompatible transcript_fasta and additional_fasta params
Add validation error for incompatible transcript_fasta and additional_fasta params
- Update custom/tx2gene module to parse comma-separated extra attributes
- Fix deprecated parameter name in docs (`--gtf_group_features_type` → `--featurecounts_group_type`)

Fixes #1626

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The test profile's transcript_fasta already contains spike-in sequences
(GFP) from when it was generated. Setting only additional_fasta = null
prevents GFP from being added to the GTF, but Kallisto still builds its
index from the existing transcript_fasta (which has GFP). This causes a
mismatch where Kallisto outputs GFP counts but the GTF-based metadata
doesn't include GFP, causing SE_GENE_UNIFIED to fail.

The fix is to also set transcript_fasta = null so the pipeline
regenerates the transcriptome from the GTF (consistently without
spike-ins).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…le-values

Fix `--gtf_extra_attributes` to support multiple comma-separated values
Updated both real and stub test snapshots to reflect changes from
disabling additional_fasta and transcript_fasta:

Real test:
- Task count: 48 → 47
- Removed CUSTOM_CATADDITIONALFASTA and GUNZIP_ADDITIONAL_FASTA
- Added MAKE_TRANSCRIPTS_FASTA (pipeline now generates transcriptome)
- Removed custom/out/genome_gfp.* from output files
- Updated tx2gene.tsv hash (different without spike-ins)

Stub test:
- Task count: 22 → 21
- Same process changes as real test
- Removed custom/out/genome_transcriptome.* from output files
- Empty stable_path array

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Simplify boolean logic in SAMTOOLS_SORT/INDEX publishDir conditions
- Merge duplicate DESeq2 QC blocks for star_salmon and star_rsem
- Fix bitwise & to logical && operators in conditional checks
- Consolidate enabled:false publishDir blocks into single regex pattern
- Merge TX2GENE/TXIMPORT, SE_GENE_UNIFIED, SE_TRANSCRIPT_UNIFIED configs
- Merge SAMTOOLS_SORT/INDEX publishDir for general and UMI alignments
- Consolidate BAM_STATS_SAMTOOLS publishDir for GENOME/TRANSCRIPTOME
- Remove dead HISAT2 patterns from star_salmon-only block

Reduces config from ~490 to ~423 lines while maintaining identical behavior.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The TRANSCRIPTOME BAM_STATS_SAMTOOLS publishDir was incorrectly merged
into the general UMI block (which applies to both star_salmon and hisat2).

This restores the original behavior where:
- GENOME BAM_STATS publishDir is in the general UMI block (for both aligners)
- TRANSCRIPTOME BAM_STATS publishDir is only in the star_salmon+UMI block

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Simplify workflow nextflow.config by consolidating redundant patterns
…-fasta-validation

Add validation error for incompatible transcript_fasta and additional_fasta params
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Bump version to 3.22.0 ahead of release
@pinin4fjords pinin4fjords changed the title nf-core/rnaseq 3.22.0 Dev -> master for nf-core/rnaseq 3.22.0 Nov 26, 2025
@github-actions
Copy link

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit 4c6bdce

+| ✅ 286 tests passed       |+
#| ❔   8 tests were ignored |#
!| ❗   9 tests had warnings |!

❗ Test warnings:

  • files_exist - File not found: assets/multiqc_config.yml
  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required
  • pipeline_todos - TODO string in methods_description_template.yml: #Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline
  • pipeline_todos - TODO string in main.nf: Optionally add in-text citation tools to this list.
  • pipeline_todos - TODO string in main.nf: Optionally add bibliographic entries to this list.
  • pipeline_todos - TODO string in main.nf: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled!
  • pipeline_todos - TODO string in nextflow.config: Specify any additional parameters here
  • pipeline_if_empty_null - ifEmpty(null) found in /home/runner/work/rnaseq/rnaseq/subworkflows/local/prepare_genome/main.nf: _ versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ]
    _

❔ Tests ignored:

✅ Tests passed:

Run details

  • nf-core/tools version 3.5.1
  • Run at 2025-11-26 10:32:36

Copy link
Contributor

@FriederikeHanssen FriederikeHanssen left a comment

Choose a reason for hiding this comment

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

looks good. thanks

@FriederikeHanssen
Copy link
Contributor

Pending failing tests and this one passing: https://cloud.seqera.io/orgs/nf-core/workspaces/AWSmegatests/watch/54JcBOUFII7GYf/v2/tasks

@@ -1,4 +1,5 @@
lint:
actions_nf_test: false
Copy link
Member

Choose a reason for hiding this comment

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

you shouldn't need that

Copy link
Member Author

Choose a reason for hiding this comment

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

Think I did need it, as part of #1618

.DS_Store
bbsplit/*.stats.txt
fastqc/*/*.{html,zip}
fastqc/*_fastqc.{html,zip}
Copy link
Member

Choose a reason for hiding this comment

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

why this new file to ignore, is this coming from TEMPLATE?

Copy link
Member Author

Choose a reason for hiding this comment

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

It was there before, just further down

Comment on lines +12 to +20
multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt
multiqc/multiqc_data/multiqc.parquet
multiqc/multiqc_data/multiqc.log
multiqc/multiqc_data/multiqc_data.json
multiqc/multiqc_data/multiqc_sources.txt
multiqc/multiqc_data/multiqc_software_versions.txt
multiqc/multiqc_data/llms-full.txt
multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png}
multiqc/multiqc_report.html
Copy link
Member

Choose a reason for hiding this comment

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

I don't think this reflect the actual multiQC outpur we currently have, as it's a duplicate of what is already around line 55-60

Copy link
Member

@maxulysse maxulysse left a comment

Choose a reason for hiding this comment

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

nitpick
All good to me, just minor comments

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.

8 participants