Hey guys, this is my github repo. Glad it's received some interest - I figured HN might be the culprit when it suddenly jumped ~100 stars despite not working on the code base since last year. I prototyped this out of personal curiosity last year and moved on abruptly so there's a lot of gaps I still need to close and knobs that need to be optimized. But if people genuinely find "deterministic genomics workloads on edge devices" proposal useful, I'll begin refining the code tonight and try to make it as useful as possible. If you have any particular bioinformatics tasks or use cases that you want to be feasible on edge devices, lmk and I'll work on integrating new capabilities. Always happy to be helpful
Your website bio and LinkedIn don't match at all. Is the LinkedIn link on your website wrong? Update: yes it is. This is the correct one: https://www.linkedin.com/in/logan-nye
You're doing too much vibe coding and not enough checking/testing.
they weren't expecting to receive attention out of the blue today. it seems rude to attack someone's engineering skills because an online profile is out of date.
There has been a bit of a 'trend' to rewrite common bioinformatics/comp-bio into faster languages (Rust) via LLMs, OP's repo seems to be an early example.
IMHO it's... OK? Bioinformatics code quality is generally poor, untrained biologists writing functioning code that is poor in scoping, but works. (Unguided) LLMs write on that level, too, so not much harm done.
How well tested would you say these libraries are? It doesn't sound promising, sadly. If there are comprehensive test suites, that would go a long way to ensuring new, faster tools arent producing subtly wrong answers. That's a pretty big deal, just because the code compiles or there is no exception thrown doesnt mean the analysis was correct.
It's very context-dependent - the seqera rewrites so far seem to be pretty reliable, most of the work was spent merging the functions of multiple data QC tools into a single program (previously, there was a lot of redundancy that wasted compute). The success of other rewrites that I've seen tends to depend on the author's care/experience and usefulness. In my experience, bioinformaticians are fairly slow on the uptake of new software which might actually be an advantage here :-)
In defense of a lot of these bioinformatics-specific rewrites, there are some really dodgy coding practices and bugs that exist in well used tools, so there is scope for genuine improvement. The most recent release of minimap2 fixed some bugs identified in a rewrite, for example: https://github.com/lh3/minimap2/releases/tag/v2.31
Realistically, without data from a large testset that compares this thoroughly to Samtools (and others?), I wouldn't touch this.
Note to the OP: specify a focus please? short, long, mega-long read and bacterial, human, small plant or large plant genome? Alignment heuristics and performance differ significantly across those axes.
I work with genomics pipelines in my day job.
This repo does not seem quite ready for serious usage until a comparison is made with existing tools such as Bowtie 2/samtools/Strelka or similar.
For cancer genomes, it's also a bit limiting that it does not call structural variants instead of just SNVs/indels.
I shared this since it seems to address a somewhat similar niche that I have had hopes to one day develop, based on FlowBase [1]; A library of streaming processing components based on basic operations, that can be easily stitched together into larger pipelines in a compiled language that can run on smaller hardware too.
FlowBase or I didn't have much of ideas about how to keep data structures compact, as the linked library does, and I was mostly aiming to make it really easy to build streaming pipelines.
I haven't yet got my head around how the composability story is in rosalind though, so would be interested in any pointers or examples on how this would be done using it.
Well the √t stuff looks like nonsense or way overblown, existing tools already do similar things, there’s pretty much a single commit with no follow up commits etc etc.
Hate to agree, but it is true. For a while, I think, the main sequencing framework was in perl (Bioperl). Not sure what was best for structures - possibly Biojava?
It is very tempting, though - 'just' make a nice, clean API in your favourite language (eg Haskell, Ruby, ...) and everyone will flock to use it! Maybe.
I'm not familiar with Margaret Oakley Dayhoff, but I am aware that Rosalind Franklin [1] was extremely important for our understanding of DNA, comparable to Watson/Crick, with whom she co-discovered the structure of DNA. So it seems "Rosalind" is at least very appropriate as a name for a genomics tool such as this.
Not to say the other names mentioned aren't also deserving of similar honors
Rosalind Franklin was the team lead of the research team that photographed DNA.
The actual team member that took the key photo[0] was Raymond Gosling.
That team didn't interpret the double helix structure of DNA that the photograph had captured - that was Watson and Crick working it out from the photograph.
It's not quite that clear-cut. Franklin was pretty clear on the helical structure in both research notes and papers, but she didn't quite nail the overall structure (2 strands with opposing winding, complementing bases).
Fundamentally, she suffered the curse of the experimental scientist - waiting for actual data before being willing to build a model. Watson & Crick postulated ahead based on partial data.
> Franklin was pretty clear on the helical structure
the type of diffraction her lab was doing only makes sense on helical structures. it being helical was already kind of? established -- linus pauling was contemporaneously working on some sort of alpha-helix inspired single helix model.
watson and crick immediately recognized the position of the diffraction spots fit the distances suggested by their chemical modeling of a, t, c, g, which franklin was not able to do since she hadn't made a structural prediction.
> postulated ahead based on partial data
not quite. if you know that a t c and g are the raw chemicals made, you can make a (possibly even literal) model and say, "this ball and stick model predicts diffractions here".
this is arguably better science than waiting for data and fitting a model to the data, falsifiability and all that.
> So it seems "Rosalind" is at least very appropriate as a name for a genomics tool such as this.
Indeed. The only argument against it might be that Rosalind is already a pretty well-known website for doing bioinformatics exercises and have them automatically graded:
I guess the author refers to the fact that many well-known tools have some randomness built-in. The most obvious one is differences due to the order of parallel processing. But these differences are often small and have no significant downstream effects. They are mostly inconvenient for regression testing.
Awesome piece of software! Quick side question... does anyone have a recommendation for a DNA genotyping service that prioritizes privacy? I'm looking for a company that provides private results and doesn't add them to any sort of database (dystopian or otherwise). I'd love to get my DNA profile, but I'm concerned about privacy issues. :\
Ultimately you're not going to find a service that can guarantee privacy, but your best bet might be to extract DNA at home (though tricky without a centrifuge etc...) and submit it to a standard sequencing provider novogene, plasmidsaurus etc. Realistically, they'll hold onto the data for a couple of months as part of the order, then delete it to clear up space. A bunch of discordant sets of DNA sequence without metadata isn't exactly useful for nefarious purposes! I wouldn't recommend sequencing at home unless you are very enthusiastic...
This is interesting; thanks for sharing! I have been curious about the adoption of Rust in computational biology. I know that the folks at Saint Jude's [1] are also using Rust for their 'omics research.
They mention the Rust-Bio [1] project by well known Snakemake author Johannes Köster & co, and there are some other widely used libraries like needletail [2] and noodles [3].
A cool smaller tool developed by performance wiz Ragnar Groot Koerkamp which was just published is Sassy [4] [5]. He has also been involved in developing some high performance SIMD based stuff (minimizers) [6].
There is a relatively widely adopted tool (100+ citations, >500k invocations collected via telemetry) for mass spectrometry-based proteomics written in Rust, and quite a few others in the works.
I'm building a structural bio crate system in rust (na_seq, bio_files, bio_apis, dynamics and some more specialized). No one is using it AFAIK other than myself. I am using it to build a GUI multi-purpose structural bio GUI program called Molchanica.
Note that this doesn't have much overlap with the traditional bioinformatics workflows like the OP (Rosland), or the one you linked to seem to be focused on.