Lattice-Automation / seqviz

a JavaScript DNA, RNA, and protein sequence viewer
https://tools.latticeautomation.com/seqviz
MIT License
246 stars 53 forks source link

Added primer design feature (WIP) #240

Closed digithed closed 1 year ago

digithed commented 1 year ago

I was exploring SeqViz and thought that a feature where a user could design primers easily based on a selected sequence region might be useful. This is just a proof of concept, but it provides an easy way to provide primers for a region based on the ideal melting temp, length, gc content, etc. There are a lot of primer design tools but having this would have it already integrated into the viewer.

This is WIP because it's a basic implementation and it is more of an exploratory feature, users can only design one primer set/target at a time, so if this is something we might want I can work on it further.

jjti commented 1 year ago

I really like the idea of adding primer visualizing to SeqViz. There's an open feature request for that: https://github.com/Lattice-Automation/seqviz/issues/232. It's also a standard feature in a lot of visualizers.

SeqViz used to have it awhile ago, but I removed it from circular/linear viewers because it was pretty bugged and the code was difficult to maintain.

Regarding this PR in particular though, I'm not sure we want to add design into SeqViz. Or modals. As much as possible my hope is that SeqViz remains strictly visualization/presentation focused. That's for a couple reasons but mainly:

What we could add though is something like:

interface Primer extends NameRange {
}

interface SeqVizProps {
  primers?: []Primer;
}
digithed commented 1 year ago

I didn't realize there was already an issue open relating to primers! Since we don't want design in SeqViz at the moment and since Isaac is working on the other issue, I'll close this PR.