r/bioinformaticstools

Salmon 2 (rewrite of my popular RNA-seq quantification tool in Rust)
▲ 33 r/bioinformaticstools+2 crossposts

Salmon 2 (rewrite of my popular RNA-seq quantification tool in Rust)

I'm one of the creators of a bioinformatics tool called salmon. We published the salmon paper many years ago now.

I wrote the first version of salmon in modern C++ (11/14 at that time), as I have ~20 years of C++ experience. However, a few years after this (and with much of the maintenance burden weighing on me), after starting my own lab, I became very interested in Rust for scientific software development (particularly in bioinformatics and computational biology). In that time, I've also been a very outspoken advocate for Rust in this space, as I believe it gives us many concrete benefits over C and C++ which are otherwise the standard bearers (at least for high performance tools).

We subsequently wrote many of our other tools (such as alevin-fry and oarfish in Rust).

Finally, after many years, I undertook the task of rewriting salmon (which is still widely-used) in Rust. As full disclosure, I did this rewrite with the aid of an agent, as I've done several software ports from C++ to Rust with lesser-used tools and libraries before this; though I'd argue that none of this was "vibe coded". In particular, as I have the original C++ implementation as a point of comparison, there was a strong source of behavior truth, which greatly accelerated the rewrite. Further, in the course of building and testing this re-write, I uncovered (and fixed) several latent bugs in the C++ implementation! Most importantly, having a new, clean, fast, and easy to modify and maintain code base for this long standing tool from my lab has reinvigorated development, and we are already adding exciting new features. If this sounds like it might be interesting, please check it out in our lab's GitHub repository.

u/nomad42184 — 6 days ago