bebop / poly

A Go package for engineering organisms.
https://pkg.go.dev/github.com/bebop/poly
MIT License
663 stars 70 forks source link

Implement LinearFold for prediction of RNA secondary structure #361

Open carreter opened 11 months ago

carreter commented 11 months ago

@TimothyStiles can you elaborate on what exactly it is we need here and triage the issue here + in the roadmap?

Koeng101 commented 11 months ago

Some context:

Linearfold is an RNA folding algorithm that works (basically) in linear time, which is pretty huge, because most algorithms are cubic. It is a newer algorithm and performs quite well, and can be implemented in code - unlike the (unfortunately better algorithms) which are implemented mostly using big ole AI models.

We were originally using it for RBS calculating - which I have more about here - https://github.com/TimothyStiles/poly/issues/145#issue-879401334

As far as I know, we actually have linearfold working (and passing tests)- https://github.com/allyourbasepair/rbscalculator/blob/main/linearfold/linearfold.go

Unlike back then, I finally have the actual capacity to do testing, so we can get some in-vivo data.

abondrn commented 10 months ago

So I know, what is there left to do for this issue?

Koeng101 commented 10 months ago

So I know, what is there left to do for this issue?

Actually getting it committed into Poly proper. We haven't done any work to make sure it all still works, that it is inside this package, or comment it up better

TimothyStiles commented 10 months ago

I have some opinions on it. Essentially what's made implementing linear fold difficult is the source code doesn't really break down the algo into composable parts. If I remember correctly linear fold has a beam search component along with 3 other composable parts that when broken down may be easy to write and maintain.

github-actions[bot] commented 8 months ago

This issue has had no activity in the past 2 months. Marking as stale.