Skip to content

Add bwa-mem3 (TAPS and bisulfite/EM-seq) and rastair version 2 - #638

Open
eduard-watchmaker wants to merge 35 commits into
devfrom
taps_v2
Open

eduard-watchmaker wants to merge 35 commits into
devfrom
taps_v2

Conversation

@eduard-watchmaker

@eduard-watchmaker eduard-watchmaker commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds bwa-mem3 as a methylation-aware aligner for both TAPS and bisulfite/EM-seq data, and rastair version 2 as an optional TAPS caller. Both TAPS callers now estimate read-end trims from each sample's M-bias by default.

What's new

  • --aligner bwamem3. bwa-mem3 aligns directional libraries against a conversion-aware index (bwa-mem3 index --meth); --pbat, --non_directional, --zymo and --single_cell stop with an error. The data type picks the mode:

    • with --taps: TAPS mode (mem --meth=taps), then rastair calls methylation (--taps_caller).
    • without --taps: bisulfite/EM-seq mode (mem --meth), then MethylDackel extracts methylation, as with --aligner bwameth.

    Both modes use the same index. Alignment is followed by Picard MarkDuplicates and samtools stats/flagstat/idxstats.

  • --bwamem3_index. Pass a pre-built index as a directory, a .tar.gz or an index prefix (S3 works). Otherwise it's built from --fasta (keep it with --save_reference). docs/usage.md explains building it once for human-sized genomes, and the pipeline warns at launch when it would build one from a FASTA over 300 MB. iGenomes has no bwa-mem3 index; hosting one is proposed in Add bwa-mem3 index generation (plain and methylation --meth) references#171.

  • --taps_caller rastair2. rastair version 2 replaces the rastair 0.8 steps (rastair 0.8 stays the default). It jointly calls SNVs, indels and CpG methylation, writing a bgzipped VCF and a CpG BED. Single-end samples get --unpaired.

    • rastair version 2 is free for non-commercial use only (University of Oxford), so it requires --accept_rastair2_license and prints the license notice.
    • MultiQC gets bcftools stats of the VCF, General Statistics columns (CpG methylation, CpGs, depth), a methylation distribution, and a per-contig table that includes any spike-in controls. Spike-ins are not required.
  • M-bias read-end trims by default, for both callers.

    • rastair 0.8: rastair mbias + rastair/mbiasparser, as before.
    • rastair version 2: rastair2 mbias on --rastair2_mbias_region (default: the first 10 Mb of the longest contig; a methylated spike-in such as lambda is better, and needed for shallow libraries).
    • When the trims can't be estimated (for example single-end samples), nothing is trimmed. --trim_OT/--trim_OB (now unset by default; previously 0,0,10,0 for rastair version 2 only) replace the estimate for both callers.
  • rastair 0.8 single-end warning. rastair 0.8 only calls properly paired reads, so single-end samples get no calls with --taps_caller rastair. The pipeline warns at the start of the TAPS step and the docs point to rastair version 2.

  • -profile test_taps. Mouse TAPS reads from the TAPS paper (GEO GSE112520, via rastair's test data) against mm10 chr19 plus methylated and unmodified spike-ins (methylseq: add bwa-mem3 --meth index and TAPS test data test-datasets#2370).

  • New tests.

    • tests/bwamem3_taps.nf.test: rastair 0.8 (with the single-end warning), rastair version 2 with M-bias trims, rastair version 2 with --trim_OT/--trim_OB, and the licence-not-accepted error.
    • tests/bwamem3_bisulfite.nf.test: default, skip_deduplication, save_reference + save_align_intermeds.
    • A bwa-mem3 scenario in tests/index_downloads.nf.test.

Fixes picked up along the way

Fixes from review and a pipeline-wide audit

After @FelixKrueger's review I audited the whole pipeline (channel pairing, every parameter against every aligner, and a stub run of about 480 parameter combinations). Fixed here:

  • rastair 0.8 trims: bam_taps_conversion paired BAMs, BAIs and M-bias trims by arrival order, so a sample could be called with another sample's trims. They are now joined by sample (local patch; the upstream fix has a two-sample test that fails on every run without it).
  • --collecthsmetrics never ran CollectHsMetrics (an empty GZI channel emptied the input); it does now.
  • --aligner bwamem without GPU emitted no BAM index or samtools stats, so --skip_deduplication left TAPS calling without input (local patch of fastq_align_dedup_bwamem until the upstream fix merges).
  • --rrbs now skips deduplication for bwamem and bwamem3 too, as for bismark and bwameth.
  • --taps with bismark stops with an error instead of producing no calls; --methyl_kit with targeted sequencing (MethylDackel) errors, since it removes the bedGraphs the targeted step reads.
  • Strandedness: bwa-meth and rastair 0.8 warn that they ignore --pbat/--non_directional/--zymo/--single_cell; rastair version 2 guesses read orientation for all of them.
  • Warnings for options that have no effect in the run (TAPS trims outside TAPS, --collecthsmetrics without targeted sequencing, --bamqc_regions_file without Qualimap, --slamseq outside Bismark or with --bismark_index).
  • Publishing: bismark_hisat coverage2cytosine and targeted outputs go under bismark_hisat/; GPU bwamem no longer publishes raw Parabricks BAMs to parabricks/ or stray indexes to deduplicated/.
  • Smaller: --bwamem3_index genome.fa.gz prefixes work (only .tar.gz is untarred); BWAMEM3_INDEX gets 12 CPUs and 24 h; the --ignore_3prime_r1/r2 help texts were swapped; the HISAT2 index test never used a pre-built index; --trim_OT/--trim_OB now take effect for rastair 0.8, so old params files that set them change results.

Most of these were already on dev; they are fixed here so they land together.

nf-core components

Everything is installed from nf-core/modules master, with no local subworkflows or branch installs:

nf-core/modules#13699 (drop the plain .bwt.2bit.64 from --meth indexes) isn't needed here. With --bwamem3_index <prefix> the pipeline already stages only the files alignment reads.

Testing

  • nf-test: all 54 tests pass (everything except GPU) on native x86_64 with Docker and Nextflow 25.10.4. The bwa-mem3 snapshots were generated on x86_64. On Apple Silicon, MultiQC skips plot export under Rosetta, so snapshots made there lack multiqc_plots.

  • nf-core pipelines lint: 480 passed, 0 failed.

  • Human TAPS data on AWS Batch: two in-house NA12878 TAPS libraries (1 ng and 200 ng input, 250k read pairs each) on hg38 + lambda + an unmodified 2 kb control, with the bwa-mem3 index given as an S3 prefix. Pooled CpG methylation:

    caller, trims trims (1 ng / 200 ng) NA12878 lambda unmodified
    rastair 0.8, M-bias (default) OT 2,1,5,0 / 2,2,5,0; OB 2,1,11,0 / 2,1,4,0 0.496-0.498 0.980-0.982 0.004-0.005
    rastair 2, M-bias on lambda (--rastair2_mbias_region J02459.1) OT 2,0,5,0 / 2,0,6,0; OB 4,0,4,0 0.497 0.980-0.982 0.004-0.005
    rastair 2, M-bias on the default region none (too few reads in chr1:1-10 Mb at this depth) 0.492-0.493 0.961-0.964 0.004-0.005
    rastair 2, fixed 0,0,10,0 (previous default) 0.498-0.499 0.973-0.975 0.004-0.005
    • Mapping 99.7% and duplication 5.9% / 8.9% match our production TAPS pipeline, as do the controls (lambda 0.98, unmodified 0.004-0.005).
    • With M-bias trims from lambda, rastair 0.8 and rastair version 2 agree on all three. At this depth the default region holds about 3,000 CpG observations, too few for an estimate; at 30x WGS it holds roughly a thousand times more. The docs recommend a spike-in region for shallow libraries.
    • Aligning the same reads in bisulfite mode inverts the controls, as expected. On hg38, BWAMEM3_MEM peaked at 23 GB of RAM.

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
  • If necessary, also make a PR on the nf-core/methylseq branch on the nf-core/test-datasets repository. (methylseq: add bwa-mem3 --meth index and TAPS test data test-datasets#2370, merged)
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

Generated by Claude Code

🤖 Generated with Claude Code

eduard-watchmaker and others added 8 commits November 9, 2026 13:19
- --aligner bwamem3: bwa-mem3 mem --meth=taps against a bwa-mem3
  index --meth index (built from --fasta or given with --bwamem3_index),
  then Picard MarkDuplicates and samtools stats (local subworkflow
  FASTQ_ALIGN_DEDUP_BWAMEM3; FASTA_INDEX_METHYLSEQ patched for the index).
- --taps_caller rastair2: rastair version 2 call (VCF + CpG BED), opt-in
  via --accept_rastair2_licence because of its non-commercial licence.
  meta.single_end adds --unpaired; --non_directional adds
  --guess-read-orientation; --trim_OT/--trim_OB set clipping.
- Install bwamem3/index, bwamem3/mem and rastair2/call from nf-core/modules.
- Schema, docs, CITATIONS and CHANGELOG.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- --bwamem3_index accepts an index prefix (e.g. s3://bucket/hg38.fa) as
  well as a directory or .tar.gz, and can come from a genome config
  (`bwamem3` attribute).
- MultiQC for --taps_caller rastair2: bcftools stats of the VCF, and a
  local RASTAIR2_SUMMARY module (bin/rastair2_summary.sh) for genome-wide
  and per-contig CpG methylation and a methylation distribution. Works
  with or without spike-ins.
- test_taps profile, assets/samplesheet_taps.csv and
  tests/bwamem3_taps.nf.test (rastair, rastair2, licence check) on TAPS
  test data pending in nf-core/test-datasets#2370.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Without --taps, --aligner bwamem3 aligns with `bwa-mem3 mem --meth`
(unmethylated C->T) and MethylDackel extracts methylation, as for
bwameth; with --taps it stays in TAPS mode with rastair. Both modes use
the same `bwa-mem3 index --meth` index. Adds tests/bwamem3_bisulfite.nf.test.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rence

nf-core/test-datasets#2370 now ships rastair's full mm10 chr19 (plus spike-ins)
as reference/genome_taps.fa.gz instead of a 41 kb slice, so alignments are at
real chr19 coordinates. Methylation and mapping figures are unchanged.

Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Uses reference/Bwamem3_Index.tar.gz from nf-core/test-datasets (methylseq
branch, added in nf-core/test-datasets#2370).

Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- docs/usage.md + schema: build the bwa-mem3 --meth index once for human-sized
  genomes and pass it with --bwamem3_index (prefix incl. S3, directory or
  .tar.gz); measured hg38 figures (23 GB peak for BWAMEM3_MEM; the plain
  .bwt.2bit.64 and .meth.fa aren't needed for alignment).
- Warn at launch when --aligner bwamem3 has no --bwamem3_index and the FASTA
  is over 300 MB.
- fasta_index_methylseq: sync the local patch with nf-core/modules#13622
  (bwamem/bwamem3 share one branch; supplied tarballs unpack via UNTAR_BWAMEM).
- rastair2_summary.sh: per-contig MultiQC columns in natural order
  (chr1..22, X, Y, M, then spike-ins).
- CHANGELOG and test_taps profile description for the new TAPS test data.

Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Snapshots made on Apple Silicon lack MultiQC's exported plots (MultiQC skips
plot export under Rosetta), so regenerate them on x86_64 to match CI. Also picks
up the rastair2 per-contig column order and the UNTAR_BWAMEM alias.

Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 4.2.1.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

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

Posted for pipeline commit 7f1866b

+| ✅ 258 tests passed       |+
#| ❔   8 tests were ignored |#
!| ❗   2 tests had warnings |!
Details

❗ Test warnings:

  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required

❔ Tests ignored:

  • files_exist - File is ignored: lib/nfcore_external_java_deps.jar
  • files_exist - File is ignored: conf/modules.config
  • files_exist - File is ignored: .github/workflows/ci.yml
  • files_unchanged - File ignored due to lint config: assets/nf-core-methylseq_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-methylseq_logo_light.png
  • files_unchanged - File ignored due to lint config: docs/images/nf-core-methylseq_logo_dark.png
  • files_unchanged - File ignored due to lint config: .gitignore or .prettierignore
  • modules_config - modules_config

✅ Tests passed:

Run details

  • nf-core/tools version 4.2.2
  • Run at 2026-11-12 18:08:35

eduard-watchmaker and others added 4 commits November 9, 2026 13:41
The pipeline is on template 4.0.3, whose container_configs lint expects
'container =' entries; tools 4.2.1 had rewritten them as 'conda ='.

Generated by Claude Code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Regenerate conf/containers_conda_lock_files_*.config with nf-core tools 4.2.1 (conda = ...)
- Apply dev's MultiQC static-plot ignore to the bwamem3 pipeline tests and drop plot entries from their snapshots
- Sync ro-crate-metadata.json description with the README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nft-utils 1.2.1 (from the 4.2.1 template) returns removeNextflowVersion() as
sorted TreeMaps, so the bwamem3 and bwamem3-index snapshots need the same order.
Content unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Regenerate conf/containers_*.config with nf-core tools 4.2.1 (bwameth 0.2.10 + bwamem3/rastair2/bcftools)
- README: keep the bwa-mem3 column and take #633's methurator correction for the bwa-mem + TAPS column
- Sync ro-crate-metadata.json with the README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@eduard-watchmaker
eduard-watchmaker marked this pull request as ready for review November 10, 2026 02:25
@eduard-watchmaker
eduard-watchmaker requested a review from a team as a code owner November 10, 2026 02:25
@eduard-watchmaker eduard-watchmaker self-assigned this Nov 10, 2026
eduard-watchmaker and others added 3 commits November 10, 2026 12:08
- Install the nf-core subworkflow fastq_align_dedup_bwamem3 (nf-core/modules#13640)
  and drop the local copy. bwa-mem3 now writes the alignment BAI itself
  (bwamem3/mem updated for its index_format input).
- Update fasta_index_methylseq to nf-core/modules#13622. The patch now only adds
  methylseq's methurator input.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…verride

- Run both TAPS callers through BAM_TAPS_CONVERSION (nf-core/modules#13641,
  installed from its branch until it is merged). rastair version 2 now
  estimates trims with rastair2/mbias (#13678), like rastair 0.8 does with
  mbias + mbiasparser. When they can't be estimated, nothing is trimmed.
- --trim_OT/--trim_OB (default unset) replace the estimate for both callers.
- --rastair2_mbias_region: region for the rastair2 M-bias estimate, by
  default the first 10 Mb of the longest contig.
- Warn when rastair 0.8 gets single-end samples: it only calls properly
  paired reads, so they get no methylation calls.
- rastair 0.8 modules updated to nf-core master (version topics); the
  mbiasparser patch is no longer needed.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- bwamem3 TAPS: new test with --trim_OT/--trim_OB 0,0,10,0 (no rastair2
  M-bias step; reproduces the previous default BED exactly); the default
  rastair2 test now checks the M-bias outputs (paired-end only); the
  rastair 0.8 test checks the single-end warning.
- Snapshots regenerated on x86_64 (full suite, 53 tests): the bwa-mem3 BAI
  now comes from BWAMEM3_MEM (no SAMTOOLS_INDEX_ALIGN), rastair 0.8 reports
  version "0.8.2" through topics, and rastair2 outputs change with the
  estimated trims. All other snapshots are unchanged.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he patch

nf-core/modules#13643 added the bam_aligned emit upstream, so the local patch
is no longer needed. main.nf only gains the licence header; outputs are
unchanged.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Update parabricks/fq2bam and parabricks/fq2bammeth (4.8.0-1), the samtools
and Picard modules (1.25, 3.5.0), methyldackel and bwa/mem, and the
fastq_align_dedup_bwameth, fastq_align_dedup_bwamem, fastq_align_bwa,
bam_sort_stats_samtools, bam_stats_samtools and bam_methyldackel subworkflows
to nf-core/modules master. fq2bam now takes known sites with their index.

Add a GPU test for --aligner bwamem --taps (parabricks/fq2bam). Snapshots for
the CPU tests were regenerated on x86_64; the GPU snapshots were built from
AWS Batch GPU runs whose Parabricks 4.6 outputs reproduce the existing GPU
snapshot exactly.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eduard-watchmaker and others added 3 commits November 11, 2026 14:28
Ignore the Parabricks fq2bam BAMs (parabricks/*.bam, *.bai) in snapshots, as
for the other alignment BAMs: their headers hold run-specific paths, so the
md5 changes between runs. Their reads are still checked through
getReadsMD5, which drops leading zeros.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@heuermh

heuermh commented Nov 11, 2026

Copy link
Copy Markdown

A note that I'll be testing this pull request (on rastair 0.8) on internal datasets over the next couple days, sorry for taking a little while. For sequencing, should this be merged at bwa-mem3 version 0.16.0, or should we push version 0.17.0 up through modules first?

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@eduard-watchmaker

eduard-watchmaker commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor Author

A note that I'll be testing this pull request (on rastair 0.8) on internal datasets over the next couple days, sorry for taking a little while. For sequencing, should this be merged at bwa-mem3 version 0.16.0, or should we push version 0.17.0 up through modules first?

Thanks so much, much appreciated! Let me know how it goes and I will be very happy to add any suggestions.

I would love to upgrade to bwa mem3 0.17.0 but the builds fail to upload so I can't use these containers yet, I asked @nh13 to re-build/push and I can update this PR as soon as these images are out.

Actually they were just pushed but 0.17.0 do not carry any changes for TAPS, I think it's specific for EM/BS data.

@nh13

nh13 commented Nov 11, 2026

Copy link
Copy Markdown
Member

@eduard-watchmaker I think the CI runs completed for bioconda for 0.17.0. Let me know if you don't see them

@nh13

nh13 commented Nov 11, 2026

Copy link
Copy Markdown
Member

And I'll say, if you see any issues with bwa-mem3, I'd be glad to look into them and fix them!

@eduard-watchmaker

Copy link
Copy Markdown
Contributor Author

Thanks so much @nh13 , I actually edited my message when I saw them published. For now the new version 0.17.0 doesnt really change for TAPS, but I will reach out if we need anything. So far, bwamem3 has been a great addition in every single aspect, so kudos to you (and the team involved) on this work!

Update Parabricks to 4.8.0-1 (with samtools 1.25 and Picard 3.5.0)

@FelixKrueger FelixKrueger 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.

Main blocker is in the rastair 0.8 path: trims and BAMs reach RASTAIR_CALL unpaired, so samples can be called with each other's trims (inline). Also inline: RRBS dedup, non-directional libraries with bwamem3, .gz index prefixes and the CHANGELOG. Not in the diff: BWAMEM3_INDEX has no process label, so it gets 1 CPU and 4 h from conf/base.config, which won't build a human --meth index. The Parabricks/Picard bump and the nf-amazon fix would be easier to review as separate PRs.

This review was generated with Claude-assisted review and checked by me.

Comment thread tests/bwamem3_taps.nf.test Resolved
Comment thread workflows/methylseq/main.nf Resolved
Comment thread CHANGELOG.md Resolved
eduard-watchmaker and others added 2 commits November 12, 2026 08:25
- bam_taps_conversion (local patch): join BAM, BAI and M-bias trims by
  sample before RASTAIR_MBIAS and RASTAIR_CALL, which took them as separate
  channels and so paired them by arrival order
- --aligner bwamem3 skips deduplication with --rrbs, as bismark and bwameth do
- --aligner bwamem3 errors on --pbat and --non_directional: bwa-mem3 --meth
  seeds read 1 as C->T and read 2 as G->A
- --bwamem3_index: only .tar.gz goes to UNTAR, so a genome.fa.gz index prefix
  works
- BWAMEM3_INDEX gets 12 CPUs and 24 h (the module has no resource label)
- tests: rastair 0.8 call and methylKit output back in the snapshot, spike-in
  methylation checks for both callers, and a bwamem3 + --pbat error test
- CHANGELOG: one sentence per new entry; --trim_OT/--trim_OB now take effect

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dedness, publishing)

- CollectHsMetrics: pass an empty GZI tuple instead of an empty channel,
  which made the targeted subworkflow's combine() emit nothing
- fastq_align_dedup_bwamem (local patch): the CPU path now emits the BAM
  index and samtools stats, so --skip_deduplication gives TAPS calling its
  input and MultiQC its samtools sections
- bam_taps_conversion (local patch): rastair 0.8 uses the reference as a
  value channel, as the rastair2 path does
- --rrbs skips deduplication for bwamem too; bwamem publish selectors cover
  the GPU path, and PARABRICKS_FQ2BAM publishes only with
  --save_align_intermeds
- --taps with bismark errors; bwamem3 errors on --zymo/--single_cell as
  well; bwameth and rastair 0.8 warn that they ignore non-directional
  options; rastair2 guesses read orientation for all of them
- --methyl_kit with targeted sequencing (MethylDackel) errors; warn about
  options that have no effect in the run
- bismark_hisat coverage2cytosine and targeted outputs go under
  bismark_hisat/
- docs: output.md bwa-mem/bwa-mem3 alignments, usage.md TAPS advice, schema
  help for --ignore_3prime_r1/r2; index_downloads uses the HISAT2 index

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread nextflow_schema.json Resolved
Use the American spelling, as rastair's own `rastair license` subcommand
does, in the parameter name and the pipeline's text (review by heuermh).
The nf-core meta.yml `licence` key is left as the schema requires.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread nextflow.config Resolved
eduard-watchmaker and others added 3 commits November 12, 2026 10:10
Keep the plugin declared so S3 paths (the iGenomes default) resolve, without
the 2.15.0 pin. This matches #642 line for line, which
carries the CHANGELOG entry, so the two merge cleanly in either order.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… publishing

- targeted sequencing: CollectHsMetrics now runs (coverage metrics and the
  MultiQC HsMetrics tables)
- bwamem (CPU): samtools stats reach MultiQC
- index_downloads: the HISAT2 scenario uses the pre-built index, so no
  genome preparation
- bwamem TAPS GPU: no raw Parabricks BAMs in parabricks/ and no stray
  indexes in deduplicated/ (checked against a stub run with -profile gpu)

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ore lint

nf-core lint fails any plugin without a pinned version
(nextflow_config: "Plugin 'nf-amazon' does not have a pinned version"), and
pinning a newer release would break other Nextflow versions and Seqera
Platform. Like the nf-core template, declare no nf-amazon: Nextflow loads the
matching release for S3 paths, as the AWS Batch validation runs with
Nextflow 25.10.4 showed.

Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nh13

nh13 commented Nov 12, 2026

Copy link
Copy Markdown
Member

I’d suggest updating to 0.17.0 before merging: TAPS scoring is unchanged, but it includes performance and memory improvements. BS/EM-seq tests need revalidation because the default scoring changed to genomic; --meth-scoring collapsed retains the previous scoring.

@eduard-watchmaker

Copy link
Copy Markdown
Contributor Author

@nh13 thanks, agreed. I've opened nf-core/modules#13715 to bump bwamem3/index and bwamem3/mem to 0.17.0. Once it merges, I'll update both modules here and regenerate the bwa-mem3 snapshots before #638 is merged.

For bisulfite and EM-seq, methylseq will use the new genomic default rather than pinning --meth-scoring collapsed. No released methylseq version has bwa-mem3 yet, so there are no existing results to keep compatible with. I've already run the methylseq bwa-mem3 tests against the 0.17.0 modules:

  • TAPS output is unchanged.
  • On the small E. coli bisulfite test, mapped reads drop from 284 to 217 of 20,000, as the stricter mismatch penalty drops marginal hits.

🤖 Addressed by Claude Code

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.

4 participants