Skip to content

Dev -> master for nf-core/rnaseq 3.23.0#1717

Merged
pinin4fjords merged 394 commits into
masterfrom
dev
Feb 27, 2026
Merged

Dev -> master for nf-core/rnaseq 3.23.0#1717
pinin4fjords merged 394 commits into
masterfrom
dev

Conversation

@pinin4fjords
Copy link
Copy Markdown
Member

@pinin4fjords pinin4fjords commented Feb 26, 2026

Release 3.23.0

330 commits, 546 files changed since 3.22.2.

This is a major feature release with new alignment/quantification pathways, prokaryotic support, improved preprocessing options, and many quality-of-life fixes.

Review guide

This is a large release. Rather than reviewing all 330 commits, the component PRs below are grouped by theme. Each was individually reviewed before merging to dev.

New features

PR Summary Key files
#1685 Parabricks GPU-accelerated STAR (--use_parabricks_star) workflows/rnaseq/main.nf, conf/modules/parabricks_star.config
#1688 Prokaryotic RNA-seq support (-profile prokaryotic): Bowtie2+Salmon, GFFREAD transcript extraction, STAR CDS config workflows/rnaseq/main.nf, conf/prokaryotic.config, subworkflows/local/prepare_genome/
#1616 Sylph contamination detection workflows/rnaseq/main.nf, nextflow_schema.json
#1664 Multiple rRNA removal tools (--ribo_removal_tool): SortMeRNA, Bowtie2, RiboDetector; BBSplit MultiQC reporting subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/, workflows/rnaseq/main.nf
#1697 tximport for RSEM outputs: length-scaled counts, SummarizedExperiment, DESeq2 QC workflows/rnaseq/main.nf, subworkflows/local/quantify_rsem/
#1700 Post-filtering FastQC step after BBSplit/rRNA filtering (#1276) workflows/rnaseq/main.nf
#1713 Per-sample seq_platform/seq_center samplesheet columns for BAM read groups workflows/rnaseq/nextflow.config, assets/schema_input.json
#1718 --seq_platform global parameter for default PL read group tag (per-sample samplesheet values take priority) workflows/rnaseq/nextflow.config

Bug fixes and improvements

PR Summary
#1686 Support uncompressed FASTQ input files (#1343)
#1696 Fix offline mode (NXF_OFFLINE=true) by skipping igenomes_base validation (#1690)
#1704 Include single-library samples in merged fastq output with --save_merged_fastq (#748)
#1707 Enable UMI deduplication with --aligner star_rsem (#829)
#1708 Allow --skip_alignment with pre-built pseudo-aligner index without --fasta (#1706)
#1711 Scope GPU container flags to process_gpu only, fixing CPU-only node failures (#1710)
#1716 Informative error when Salmon strandedness inference fails for auto samples
#1738 Fix iGenomes STAR conda: use bioconda channel for x86_64, reserve seqera channel for ARM only

Refactoring and maintenance

PR Summary
#1665 Bulk module/subworkflow updates; replace CUSTOM_GETCHROMSIZES with SAMTOOLS_FAIDX; ARM containers
#1667 Enhance RSEM output exports
#1669 Enable SeqKit stats MultiQC module for RiboDetector
#1677 Nextflow 25 strict syntax fixes
#1687 Fix PREPARE_GENOME tests, file-names-only snapshots
#1689 Migrate to topic-based version reporting
#1694 Replace local iGenomes STAR modules with nf-core aliases
#1724 Update umitools modules: remove patches, add conda channel prefixes, update Wave containers
#1725 Refine .nftignore patterns to reinstate tx2gene MD5 checking, remove redundant UNTAR version collection
#1735 Code quality improvements: named destructuring, rename ch_dummy_file, align GPU CI workflow

Documentation

PR Summary
#1672 Document star_rsem STAR aligner settings
#1709 Update metro map with nf-metro v0.4.7
#1714 Re-render metro map with nf-metro v0.5.2
#1719 Docs and changelog cleanup: move descriptions above <details> blocks, add missing deps
#1728 Re-render metro map with nf-metro v0.5.4

CI fixes

PR Summary
#1730 Bump Nextflow to 25.04.3 to fix conda --mkdir bug (nextflow-io/nextflow#5947)
#1734 Compose test_prokaryotic profile on prokaryotic to remove duplicated settings
#1736 Fix prokaryotic nf-tests to use the prokaryotic profile instead of duplicating params

New parameters

Parameter Description
--ribo_removal_tool Choice of rRNA removal tool (sortmerna, bowtie2, ribodetector)
--sylph_db Sylph database for contamination detection
--sylph_taxonomy Sylph taxonomy metadata
--gffread_transcript_fasta Use GFFREAD to extract transcript FASTA from genome
--extra_bowtie2_align_args Extra arguments for Bowtie2 alignment
--use_parabricks_star Use NVIDIA Parabricks for GPU-accelerated STAR alignment
--seq_platform Default sequencing platform for BAM read group PL tag

New profiles

Profile Description
prokaryotic Settings optimized for bacterial/archaeal RNA-seq data

Test plan

  • CI nf-test passes
  • Linting passes

🤖 Generated with Claude Code

gburnett-nvidia and others added 30 commits February 4, 2026 08:20
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The .ifEmpty(null) caused null values to flow through to
processVersionsFromYAML when the versions channel was empty,
causing 'Cannot invoke Path.getFileSystem() because path is null' error.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove workflow.out.versions from test assertions in align_star and
  quantify_rsem subworkflows (versions now emitted via topics)
- Update snapshots to remove versions.yml entries and null placeholders
- Fix sentieon_default fq version (0.12.0) and picard version (3.4.0)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…s entries

- Remove trailing null entries from align_star sentieon snapshots
- Add BEDTOOLS_GENOMECOV_REV, FQ_LINT_AFTER_BBSPLIT, FQ_LINT_AFTER_TRIMMING
  to sentieon_default snapshot

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Simplify Bowtie2 description in docs/output.md
- Add note clarifying transcript/gene-level output for prokaryotes
- Add --skip_qualimap and --skip_bigwig to manual config table
- Update profile description to include "or analyses"
- Add --alignIntronMax 1 for STAR prokaryotic alignment
- Enable params.save_unaligned for Bowtie2 (was hardcoded false)
- Remove --no-mixed flag from Bowtie2 (valid for operon reads)
- Change 'transcriptome' to 'transcripts' for consistency
- Change "recommended" to "alternative" for star_salmon option
- Add credits and --extra_bowtie2_align_args to CHANGELOG

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove .out.versions references for modules that were updated to
topic-based version reporting:
- KRAKEN2
- BRACKEN
- SYLPH_PROFILE
- SYLPHTAX_TAXPROF

These modules now emit versions via channel.topic('versions') and
no longer have the .out.versions channel.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: Migrate to topic-based version reporting
Resolves merge conflicts, keeping prokaryotic support refactoring:
- Maintains single BAM_DEDUP_UMI import (vs aliased versions on dev)
- Keeps ALIGN_BOWTIE2 for prokaryotic support
- Accepts dev's module/subworkflow updates and topic-based version reporting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
After merging origin/dev with topic-based version reporting, remove
incompatible .out.versions calls from:
- workflows/rnaseq/main.nf (ALIGN_STAR, FASTQ_ALIGN_HISAT2, BAM_DEDUP_UMI,
  QUANTIFY_RSEM, ALIGN_BOWTIE2)
- subworkflows/local/align_bowtie2/main.nf (remove versions emit)
- subworkflows/local/prepare_genome/main.nf (BOWTIE2_BUILD.out.versions)

All underlying modules now use topic-based version reporting.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add --rg-id flag to Bowtie2 alignment to include read group information
in BAM output. This is required by Picard MarkDuplicates (3.4.0) which
validates read groups before processing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update snapshot after topic-based version reporting migration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: Add prokaryotic RNA-seq support with -profile prokaryotic
…g ignore approach

Instead of adding `tag "cpu"` to every existing test file (20+ files changed),
use SKIP_PARABRICKS env var in nf-test.config to conditionally ignore GPU tests
on CPU runners - consistent with existing SKIP_SENTIEON pattern.

- Reset all non-GPU test files to dev state (remove tag "cpu" additions)
- Extract parabricks tests from prepare_genome/main.nf.test to separate file
- Add SKIP_PARABRICKS env var to nf-test.config ignore logic
- Add SKIP_PARABRICKS=true to CPU CI workflow
- Fix nf-core/methylseq typo in GPU workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
#	subworkflows/local/prepare_genome/main.nf
Consolidate ext.args for STAR and Parabricks rnafq2bam into a unified
closure in align_star/nextflow.config, with isPbrun branching, read
group injection, and zcat flag. Fix process name prefix in
prepare_genome config and remove debug echo from rnafq2bam module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite pipeline-level and prepare_genome subworkflow tests for the
Parabricks path using the standard eukaryotic test dataset instead of
the full-size data. Add SKIP_PARABRICKS env var to tests/nextflow.config,
update align_star test config and snapshots from GPU CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the --use_parabricks_star flag in the usage guide, covering
requirements, expected behaviour, and known limitations versus
CPU STAR.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Nextflow linter does not allow `def` variable declarations mixed
with config statements in a config block.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pinin4fjords and others added 2 commits February 27, 2026 11:42
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pinin4fjords and others added 2 commits February 27, 2026 11:46
ci: bump Nextflow to 25.04.3 to fix conda --mkdir bug
Make test_prokaryotic include prokaryotic.config first, then layer
test-specific settings on top. This removes duplicated prokaryotic
params from test_prokaryotic.config (prokaryotic flag, aligner,
gffread, featurecounts_feature_type, skip_bigwig, skip_rseqc,
skip_dupradar, skip_qualimap) since they are now inherited.

The nf-test params blocks in tests/prokaryotic.nf.test are kept
as-is since CI runs those tests with -profile test,docker (not
test_prokaryotic), so the params block is the mechanism that
sets prokaryotic behavior in CI.

Addresses review feedback from @adamrtalbot in PR #1717.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pinin4fjords and others added 10 commits February 27, 2026 12:02
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GPU runners are expensive - just test minimum version.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
refactor: code quality improvements from PR #1717 review
…bility

refactor: compose test_prokaryotic profile on prokaryotic
Add config "../conf/prokaryotic.config" to the prokaryotic test suite
so that prokaryotic-specific settings (prokaryotic flag, aligner,
gffread, featurecounts_feature_type, skip_bigwig, skip_rseqc,
skip_dupradar, skip_qualimap) come from the profile config rather
than being duplicated in each test's params block.

Tests now only set:
- Test data paths (input, fasta, gff, gtf=null, etc.)
- Aligner override for star_salmon tests
- Test-specific skips (bbsplit, preseq, biotype_qc, deseq2_qc)
- min_trimmed_reads = 0

Addresses review feedback from @adamrtalbot in PR #1717.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment thread docs/usage.md
pinin4fjords and others added 3 commits February 27, 2026 13:11
The prokaryotic config now applies skip_bigwig = true to all
prokaryotic tests (including star_salmon), which is correct
behavior but changes the expected output. Removing snapshots
so CI regenerates them.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove bigwig-related entries (BEDTOOLS_GENOMECOV_FW/REV,
UCSC_BEDCLIP/BEDGRAPHTOBIGWIG, bigwig file paths) from the
star_salmon prokaryotic snapshot since skip_bigwig=true is now
applied via the prokaryotic config. Task count 58 -> 46.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
test: load prokaryotic config in nf-test instead of duplicating params
Copy link
Copy Markdown
Contributor

@adamrtalbot adamrtalbot left a comment

Choose a reason for hiding this comment

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

lgtm

pinin4fjords and others added 3 commits February 27, 2026 13:56
The seqera conda channel only has ARM builds of STAR 2.6.1d. The
default (non-ARM) configs were incorrectly using seqera::star=2.6.1d,
which fails conda environment creation on x86_64 CI runners. Switch
to bioconda::star=2.6.1d for the default configs, keeping the seqera
channel override in conf/arm.config for ARM builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix iGenomes STAR conda channel for x86_64
@pinin4fjords pinin4fjords merged commit 13328f7 into master Feb 27, 2026
170 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.

7 participants