Phil Ewels
04/02/2026, 4:44 PMππ» TLDR: I'm trying to get this to go viral on HackerNews! Please give us a helping hand if you like what you see! π hacker news https://news.ycombinator.com/item?id=47616595This story started about a month ago, when I jokingly said (not for the first time) that I should just rewrite dupRadar in Rust after seeing it break some #CE8SSJV3N runs again. I kicked off Claude together with Seqera AI, and this time itβ¦ worked! Fast forward a weekendβs worth of building, then several weeks of validation and incremental fixes, and #C0AQYAFSSV7 was born. It replaces the entire #CE8SSJV3N QC subworkflow (dupRadar, featureCounts, 8 RSeQC modules, preseq, samtools stats, and Qualimap) - which together account for over 15 hours of run time. RustQC finishes in around 15 minutes, over 60x faster. Iβve designed RustQC to be a drop-in replacement for those tools, so itβs totally optional. Output files are near-identical, so MultiQC works out of the box. Thereβs a dedicated Nextflow validation pipeline that uses #C049MBCEW06 to compare outputs against the upstream tools to ensure parity. I released it on Bioconda earlier this afternoon and@Jonathan Manning is quick off the mark, there's already a PR to #CJRH30T6V to add it (a PR to #CE8SSJV3N shouldn't be far behind). Whatβs interesting is that my Rust rewrite story is far from unique. Three days into my effort, @Rob Patro independently published about doing the same thing with piscem. Then @Nils Homer at Fulcrum just released fgumi earlier this week.. Something has clearly shifted. Iβm both extremely excited and a little bit terrified at what I expect to be a wave of tool rewrites in bioinformatics. After a lot of discussion, we decided that these AI-assisted rewrites are coming whether we like it or not. The best thing we can do is to try to get ahead of them and establish some best practices to avoid what we see as the worst risks. To that end, we are also announcing https://rewrites.bio - a set of best practice guidelines for anyone else wanting to use AI to improve on bioinformatics tooling. Itβs common sense stuff: Credit the original authors, emulate output exactly, don't file AI-generated bug reports, that kind of thing. Hopefully it starts a discussion around this topic for some community consensus. Anyway - I hope folks like what weβve made. Looking forward to the discussion that comes around it π β’ hacker news Hacker News post! https://news.ycombinator.com/item?id=47616595 β’ seqera RustQC blog: https://seqera.io/blog/rustqc/ β’ seqera rewrites.bio blog: https://seqera.io/blog/rewrites-bio/ β’ https://rewrites.bio β’ https://seqeralabs.github.io/RustQC/
chase mateusiak
04/02/2026, 4:48 PMNever use AI-generated test cases as evidencesigh...never never?
Tarun karthik kumar Mamidi
04/02/2026, 4:53 PMPhil Ewels
04/02/2026, 4:57 PMsigh...never never?Well, at least take with a large pinch of salt π That one came from a "bug" that Claude found in preseq. It wrote up a full GitHub issue for me to post, was super confident etc etc. I refused and eventually figured out it was an artefact of the test data I was working with and actually it was a RustQC bug this is fine fire LLMs can be very persuasive / convincing...
Maxime Garcia
04/02/2026, 5:05 PMDavid Carlson
04/02/2026, 5:05 PMKinley
04/02/2026, 5:05 PMDavid Carlson
04/02/2026, 5:05 PMMaxime Garcia
04/02/2026, 5:05 PMJonathan Manning
04/02/2026, 5:07 PMJonathan Manning
04/02/2026, 5:08 PMPhil Ewels
04/02/2026, 5:13 PMMatthias De Smet
04/02/2026, 5:25 PMMatthias De Smet
04/02/2026, 5:26 PMTrevor Freeman
04/02/2026, 5:34 PMMatthias Zepper
04/02/2026, 5:35 PMumitransfer in a faster way and it created a quite inefficient string conversion loop, so was clearly not yet capable of doing this without babysitting and I had already forgotten too much to fix it quickly. As far as I know, Rust was so far also not part of your skillset?
PS:
@David Carlson Faster duplicate marking is already being worked on.Jonathan Manning
04/02/2026, 5:41 PMMohammed Kanchwala
04/02/2026, 6:54 PMMatthias De Smet
04/02/2026, 6:55 PMMaxime Garcia
04/02/2026, 6:56 PMchase mateusiak
04/02/2026, 6:57 PMMohammed Kanchwala
04/02/2026, 6:57 PMMatthias De Smet
04/02/2026, 6:58 PMMatthias De Smet
04/02/2026, 6:58 PMMohammed Kanchwala
04/02/2026, 7:03 PMTarun karthik kumar Mamidi
04/02/2026, 7:03 PMOliver Hofmann
04/02/2026, 7:46 PMDRAGEN is limited to FPGAβs so useless for folks without dedicated hardwareNot anymore, or at least not much longer (GPU and commodity CPU support is en route). Still limited to just Illumina data, though, and now with a per-GB license fee so still a good argument to consider alternatives.
Phil Ewels
04/02/2026, 8:56 PMWhy not default to forking the original project?This was my original intention with dupRadar. But in the course of the rewrite I immediately encompassed both dupRadar and featurecounts. Then rseqc. Then qualimap, preseq, etc etc. Contributing the rewrite back upstream only works if it's a 1:1 tool rewrite. And one of the primary gains of RustQC is the architectural choice to combine multiple tools. This means that the rewrite isn't a fork, it's a completely different beast. But in other cases a 1:1 rewrite of a tool may make more sense, in which case I totally agree that this path should be considered (after discussion with the original authors, ideally)
Jared Andrews
04/02/2026, 8:56 PMThis work (along with edgePython, etc) have generated a lot of internal discussion. https://rewrites.bio/ spurred some passionate debate, particularly the 3.1 "think big" point, which was generally felt to encourage "shortcuts" rather than holistic ports that are more easily maintained and/or rolled in upstream in the original implementation.
We agreed it'd be better to avoid combinatorial merging of features, keeping a port a full reimplementation (perhaps with optional streamlining capabilities), and then building any additional tooling as a separate entity on top as needed. E.g., rewrites of dupRadar, featureCounts, etc, with RustQC then using those ports as it pleases. This would generally simplify maintenance and be more broadly useful in our opinion, though we recognize this is more work and a less direct route to the ultimate goal in this case. That said, we feel the rewrites.bio guidelines should consider reflecting a more holistic approach like that for the good of the community at large.
Jared Andrews
04/02/2026, 8:56 PMTrevor Freeman
04/02/2026, 8:57 PMPhil Ewels
04/02/2026, 9:03 PMPhil Ewels
04/02/2026, 9:05 PMPhil Ewels
04/02/2026, 9:07 PMJared Andrews
04/02/2026, 9:07 PMJared Andrews
04/02/2026, 9:08 PMJared Andrews
04/02/2026, 9:08 PMPhil Ewels
04/02/2026, 9:22 PMPhil Ewels
04/02/2026, 9:23 PMAGENTS.md in another thread - similar idea. I'll make an issue ππ»Phil Ewels
04/02/2026, 9:23 PMThomas Danhorn
04/03/2026, 12:28 AMThe shared parsing code would have to be virtually identical across the different rewrites, ...If this leads to a dedicated, efficient, well-maintained (and tested) parsing library that would be used by all projects with a need for it, I would count that as a win. Of course, whether you can convince all project maintainers to actually use it is another question.
..., but when LLMs can generate and regenerate quality code so fast, the question of maintainance changes.I see the temptation, but LLMs are a blackbox and can change their mind on a whim. I think they do their best work when they use (and recombine) ready-made and tested libraries, so at least some things will have to stay stable, or it will be very hard to figure out what went wrong when things inevitably break ...
Oliver Hofmann
04/03/2026, 5:23 AMMatthias De Smet
04/03/2026, 5:26 AMPhil Ewels
04/03/2026, 5:59 AMPieter Moris
04/03/2026, 6:33 AMPieter Moris
04/03/2026, 6:36 AMWhy not tackle GATK while weβre at itRe-writing the docs for consistency (I've encountered several cases of, seemingly, conflicting information) and ease of access might actually be an AI-use case I can get behind, if the alternative is that it won't ever happen otherwise π₯²
Pieter Moris
04/03/2026, 6:40 AMThis kind of breaks my brain a bit, but when LLMs can generate and regenerate quality code so fast, the question of maintainance changes.But they can also generate completely idiosyncratic code; which might only be picked up by someone with relevant experience... Shipping something that works and passes a suite of test is all well and good, but if it is a pain to re-write or maintain, you're now locked in a system that's largely entirely dependent on AI for future maintenance as well.
Pieter Moris
04/03/2026, 6:42 AMMatthias De Smet
04/03/2026, 6:48 AMPhil Ewels
04/03/2026, 7:09 AMDanilo Tatoni
04/03/2026, 7:29 AMPieter Moris
04/03/2026, 7:38 AMDanilo Tatoni
04/03/2026, 8:13 AMPhil Ewels
04/03/2026, 8:39 AMPeter Kneale
04/03/2026, 11:40 AMPhil Ewels
04/03/2026, 4:20 PMnextflow run nf-core/rnaseq -profile test - that gives you all the upstream tool output files, from versioned containerised reproducible point in time. Then you can use nf-test to snapshot them for comparison. That's what makes it such a tractable problem.Andrew Stewart
04/04/2026, 12:54 AMAdrien Coulier
04/07/2026, 8:28 AMVenkat Malladi
04/07/2026, 3:35 PMPhil Ewels
04/07/2026, 3:56 PMPhil Ewels
04/07/2026, 3:57 PMVenkat Malladi
04/07/2026, 4:03 PMDavid Carlson
04/07/2026, 4:04 PMfastp is already pretty fast, so to me FastQC replacements are of somewhat less interest than the tools covered by rustqc.Trevor Freeman
04/07/2026, 4:08 PMPhil Ewels
04/07/2026, 4:10 PMVenkat Malladi
04/07/2026, 5:33 PMMaxime Garcia
04/07/2026, 5:38 PMOliver Hofmann
04/07/2026, 5:49 PMMohammed Kanchwala
04/07/2026, 5:53 PMPhil Ewels
04/07/2026, 6:41 PMoliviercoen
04/08/2026, 4:50 PMMatthias De Smet
04/18/2026, 5:42 AMCan you rewrite VEP in rust/C as well? I hate debugging in perlNot quite an exact rewrite, but itβs something https://github.com/Huang-lab/fastVEP
Matthias De Smet
04/22/2026, 7:07 PMMaxime Garcia
04/22/2026, 7:12 PMVenkat Malladi
04/22/2026, 8:12 PMVenkat Malladi
04/22/2026, 8:12 PMMatthias Zepper
04/23/2026, 9:51 AMPhil Ewels
04/23/2026, 10:01 AMdupRadar (the tool) is simply an implementation of the method we devised during my PhD. A lot has happened since then, and as you'll appreciate, aside from a few bug fixes the tool has not evolved further. For that reason, I'm genuinely glad to see the method reimplemented within a unified QC framework for sequencing data.
The idea of running all these QC steps in a single pass through the BAM file is absolutely genius. It-s something that bothered me for years when looking at the running times of hundreds of pipelines with tens of gigabytes of BAM files read back and forth just to get past those QC. Cheers!
Phil Ewels
04/23/2026, 10:01 AMMatthias De Smet
04/23/2026, 10:02 AMMatthias De Smet
04/23/2026, 10:03 AMMatthias De Smet
04/23/2026, 10:03 AM<http://github.com/nf-core/allthethings-rs|github.com/nf-core/allthethings-rs>Maxime Garcia
04/23/2026, 10:10 AMDavid Carlson
04/23/2026, 12:12 PM<http://github.com/nf-core/allthethings-rs|github.com/nf-core/allthethings-rs>
Jonathan Manning
04/23/2026, 12:52 PMBut yes, future maintenance is absolutely a valid concern. I'm not sure it's new, but it is arguably going to be amplified along with other problems of scale (eg. knowing which tool to use, for example).Yeah, I think it's about 'sunk costs'. If I spend 6 months writing a utility I'm unlikely to consign it to oblivion after the first release. A weekend of vibe coding? Not sure I care as much. Especially since I'll probably end up with dozens of such things.
Bhagwan Yadav
07/16/2026, 7:08 AMJonathan Manning
07/16/2026, 8:46 AMPhil Ewels
07/17/2026, 8:01 PMThomas Danhorn
07/17/2026, 10:26 PM