3 ms·
We’re building a Golang library designing DNA. Most synthetic biology tools are essentially crap Python scripts - we’re looking at building maintainable tools f
by koeng 5y ago
We’re building a Golang library designing DNA. Most synthetic biology tools are essentially crap Python scripts - we’re looking at building maintainable tools for the next 10-20 years
https://github.com/timothystiles/poly https://github.com/timothystiles/poly
- sabhiram 5y agoThis looks like a very fun thing to get into, and I love the idea of being able to help in this new (for me) field. However, thumbing through the issues listed in the GH repo leaves me realizing that there is a bunch of terminology that I would need to catch up on (15% of the stuff feels familiar). Any pointers on what stuff I could read / study that would serve as a nice primer into the terms and ideas being coded and modeled?
- koeng 5y agoCould you leave us a git issue on terminology you don't understand? We've tried to make the documentation in the code to make it clearer to non-biologists what is going on (for example, https://github.com/TimothyStiles/poly/blob/prime/seqhash/seqhash.go https://github.com/TimothyStiles/poly/blob/prime/seqhash/seq...), but we're honestly too deep to really understand what is not known and how to explain nicely what is going on. If you could help us with asking naive questions that'd help us write a nice primer (which is very useful, since we'd like to recruit more software engineers rather than biologists).
- sorokinvj 5y agoHave you guys ever considered frontend app for users to actually built am organism in the browser? I have no idea if its something that anybody needs in the world but this could be fun! I would be interested building that
- meadowo 5y ago
- kzuberi 5y agoThe choice of Go for this is interesting. Having worked with Python & BioPython for bioinformatics problems I've found that there was a good deal of complexity around eking out performance (Cython, C++ extensions, Numba and so on) and also around distributing the tools (e.g. conda packaging). I've been wondering if Go would provide a reasonable middle ground in performance and ease of use between Python and C++ here. I'm not actually convinced yet but think its worth exploring. Noticed there's a BioGo project that's been around for a while, not sure of its uptake. Probably figuring out how well Go works for this domain will be a hobby project for me this year.
- koeng 5y agoIt’s been worth it for me so far. Anyway, the language is easy, so you can learn it pretty quickly and evaluate for yourself
- lambdatronics 5y agoCool stuff! I'm curious if you considered Julia when choosing the language to work in, & if so, what were the pro's/con's vs Go.
- allyourbasepair 5y agoWhen I chose Go for Poly it pretty much came down to Go vs. Rust and the main criteria were. 1. Fast execution 2. Strong devops ecosystem 3. Easy to learn syntax 4. Ships binaries for as many systems as possible. Julia wasn't really considered because last time I used Julia (which granted was a while ago) there wasn't any support for binary compilation targets and it didn't have a strong devops ecosystem. Also, it's more of a scripting language than something you'd write stable, deployable code in. Rust beat out Go on speed and tied for shipping binaries but was, way, way harder to learn and Go was still leagues ahead when it came to packages and tooling. If I remember correctly C is typically 3x faster than Go and 2x faster than Rust. That small decrease in execution time doesn't matter in a majority of use cases but Go is way faster and easier to learn and develop in so it ultimately won.