Eduard Casas
11/03/2026, 11:32 PM--taps / --aligner bwamem). Before we open PRs, we'd like to agree on the approach. The one thing that needs your input is the rastair2 license (see below).
1. bwa-mem3 in TAPS mode as the default TAPS aligner
• We'd replace BWA-MEM in FASTQ_ALIGN_DEDUP_BWAMEM with bwa-mem3 running in its TAPS-aware mode (--meth=taps).
• bwa-mem3 is on bioconda (v0.14.1), so the container and conda setup is standard.
• We've been running it internally on TAPS data with good results.
• Things to be aware of:
◦ It needs its own index (bwa-mem3 index --meth), so existing pre-built --bwamem_index directories won't work with it. The pipeline can build the new index from --fasta as it does today.
◦ It uses more memory than BWA-MEM: about 80 GB plus about 1.2 GB per thread on hg38 in TAPS mode in our runs.
• Question: are you OK with this becoming the default? Should we keep BWA-MEM selectable for users with existing indexes or tighter memory limits?
_2. rastair2 as an alternative caller in `BAM_TAPS_CONVERSION`_
• rastair 0.8.x stays the default. A flag (e.g. --taps_caller rastair2) switches to rastair2 instead, and the two never run together.
• rastair2 calls methylation, SNVs, and optionally indels together and writes a VCF.
• The new modules would go to nf-core/modules first, then be installed into methylseq.
• Parameters we'd expose (names open to discussion):
◦ SNV calling: always on with rastair2
◦ `--rastair_indels`: experimental indel calling, opt-in
◦ `--rastair_single_end`: opt-in
◦ Strand guessing: opt-in. Could this reuse the existing --non_directional flag instead of a new parameter?
◦ `--rastair_skip_ml`: the ML model is on by default, and this turns it off
Licensing
How rastair2 is licensed and distributed: @Benjamin Schuster-Boeckler
• It is free for non-commercial use, but commercial use requires a license from the University of Oxford.
• There is no license key or runtime check, so it runs like any other tool.
• A public image is already on Docker Hub.
• Ben (the author) has spoken with the bioconda folks, who were OK with it being published there. That would give it a standard biocontainers / Seqera community container.
What we'd add to the pipeline documentation:
• A clear note in the methylseq docs, and in the module meta.yml, saying that commercial users must contact Oxford for a license.
Questions
1. Is a tool with these terms acceptable in nf-core/modules and methylseq, given it's opt-in and the default TAPS path stays fully open source?
2. Is a docs note enough? Or would you also want a warning in the run log when --taps_caller rastair2 is set?
3. Should we wait for the bioconda package before submitting the nf-core/modules PR, or is the Docker Hub image acceptable in the meantime?
4. Would you prefer the bwa-mem3 change and the rastair2 change as separate PRs?
We're happy to jump on a call if that's easier. Thanks!Benjamin Schuster-Boeckler
11/04/2026, 9:15 AMBenjamin Schuster-Boeckler
11/04/2026, 9:15 AMBenjamin Schuster-Boeckler
11/04/2026, 9:16 AMBenjamin Schuster-Boeckler
11/04/2026, 9:18 AMtaps mode has a definitive advantage in high-CpG density regions. bwa-mem3 is really fast, so it might also make a good alternative for bisulfite-seq. It has a mode for that, too.Benjamin Schuster-Boeckler
11/04/2026, 9:19 AMPhil Ewels
11/04/2026, 12:03 PM--rastair-licence-compliant or something?
◦ Side note @Benjamin Schuster-Boeckler as you're on the thread: it'd be good if the license was much more obvious in the docs. I see a note in the homepage but only when I went looking for it. It'd be nice if it were more obvious and maybe had a dedicated page?
◦ Related: it'd be nice if it were a standard license type, and if some of the terms were less broad (what does "commercial" cover? according to Claude "It covers any research aimed at a product, software or not, so pharma and biotech R&D is out. It also covers paid services to external organisations, which catches core facilities and CROs that charge for analysis."). But I assume this is probably out of your hands..
◦ Homepage has two broken links with what looks like a placeholder for the repo name in the license info. There are other placeholders too, eg. mastodon
So to your questions:
1. Yes it's acceptable
2. Warning in the log please, and maybe an explicit opt-in flag as above
3. Bioconda, but it's already there ✅
4. Yes, separate PRs please.Phil Ewels
11/04/2026, 12:04 PMBenjamin Schuster-Boeckler
11/04/2026, 12:59 PMBenjamin Schuster-Boeckler
11/04/2026, 1:03 PMlicense subcommandPhil Ewels
11/04/2026, 1:05 PMBenjamin Schuster-Boeckler
11/04/2026, 1:06 PMPhil Ewels
11/04/2026, 1:08 PMPhil Ewels
11/04/2026, 1:09 PMPhil Ewels
11/04/2026, 1:09 PMPhil Ewels
11/04/2026, 1:10 PMPhil Ewels
11/04/2026, 1:12 PMBenjamin Schuster-Boeckler
11/04/2026, 1:13 PMBenjamin Schuster-Boeckler
11/04/2026, 1:15 PMPhil Ewels
11/04/2026, 1:16 PMBenjamin Schuster-Boeckler
11/04/2026, 1:36 PMBenjamin Schuster-Boeckler
11/04/2026, 1:36 PMPhil Ewels
11/04/2026, 1:57 PMEduard Casas
11/04/2026, 4:54 PMPhil Ewels
11/04/2026, 6:45 PMMichael Heuer
11/05/2026, 2:18 PMMichael Heuer
11/05/2026, 2:29 PMTrue but companies are very scared of these kinds of licenses. It's the number 1 blocker for adoption of OSS tooling (getting better over time, but still). Investors and auditors are super hot on checking this kind of thing.Agree 💯 %, as a startup we won't get anywhere near rastair2, negotiating any non-standard OSS license terms for us and downstream collaborations is not worth the effort
Benjamin Schuster-Boeckler
11/05/2026, 3:10 PMEduard Casas
11/05/2026, 5:21 PMMichael Heuer
11/05/2026, 7:13 PM[bwa-mem3:--meth] original reference bns/pac loaded for extension (1 contig(s)).
[bwa-mem3:--meth] pac-fetch: original reference unpacked from .pac on demand (.0123 not loaded).
* [--meth] seed reference `.0123` not loaded (extension uses the original reference)
I'm also getting this on docker
$ cat .command.err
[W::hts_set_opt] Cannot change block size for this format
samtools sort: failed to read header from "-"
Investigating 👀Eduard Casas
11/05/2026, 10:14 PMindex help says this is by design: 0.16.0 no longer writes .0123 unless you pass --emit-unpacked-ref, and mem reads bases from .pac as it needs them, so it “never reads” .0123. As a check, I built a plain index into the same folder and realigned, and the SAM output was byte-identical.
2. Those two samtools lines mean bwa-mem3 exited before writing a header. I get exactly that .command.err when bwa-mem3 is OOM-killed (exit 137). Could you share .exitcode, the full .command.err and .command.log, the reference, and Docker’s memory limit? A human --meth index needs roughly 30 GB at alignment time.