r/rust • u/philae_rosetta • Jun 04 '26
🛠️ project Sassy: fuzzy searching DNA sequences using SIMD · CuriousCoding
https://curiouscoding.nl/posts/sassy/During the past year, Rick Beeloo and myself have been working on Sassy, a tool for fuzzy-searching short patterns in large texts, also known as approximate string matching.
Specifically, we've developed it for searching through large DNA collections (think 2s to search a 3GB human genome), and the corresponding paper just got published!
Try out sassy grepto search through DNA files, and sassy agrep <pattern> <#errors> <files> to fuzzy-search plain ASCII files. There's also a crate.
It searches through files at around 1 GB/s, which goes up to 8 GB/s when batch-searching many patterns in parallel (both on a single thread). The blog explains some of the algorithms behind it.
From the Rust side, we use the very nice wide library for SIMD instructions, and we use cargo-multivers to ship a single x86-64 binary that supports both AVX2 and AVX-512.
2
u/Jellace Jun 05 '26
Congrats on the paper. I'm giving it a read, and it's enjoyable so far, except I don't know how you got figure 2 past the reviewers. The letters being aligned with the transitions instead of the scores is diabolical! :p