Python libraries for synthetic biology
Researchers today are empowered with the ability to devise DNA sequences and order these designs for fabrication. Starting with known pieces from biological systems, variations can be conceptualized and explored with increasing ease. As a result, the field of synthetic biology has expanded along with techniques used to provide larger pieces of synthesized DNA. Companies such as DNA 2.0 and GENEART provide on-demand synthesis services. Additionally, many researchers design, optimize and generate custom DNA sequences in their own lab.
My previous job was at a synthetic biology start up working on the software side of their fabrication and design services. The company was unfortunately a recent victim of the economy. The learning from five years of in the trenches synthesis work will be very useful to others tackling similar projects. With that in mind, the Python libraries used for construction, sequencing verification, and many other synthetic biology related tasks are being made available on Bitbucket.
Some highlights of the library:
- Oligo synthesis — assemble sequences from oligo sized pieces, ordered from a vendor such as IDT; this includes PCR and ligation based assembly methods.
- Cloning synthesis — combine synthesized pieces into larger assemblies.
- Codon optimization — optimize coding sequences using a codon sampling strategy.
- Sequencing analysis — verify synthesized constructs match the expected sequence.
- Calculation of melting temperatures
- Blackwatch — check sequences for known pathogens
The code in this library was integrated as part of an automated synthesis platform. As a result, it does not feature ready to run scripts. Rather, the code can serve as a source for developing these type of tools. I would love to see the most useful parts refactored and integrated into existing software communities like Biopython. Please drop a note if you have any interest in collaborating on such a project.

Once again, a great post. I’m currently working on a bioinformatics app that is related to synthetic biology and this code will definitely come in handy.
I’m not a proficient coder like yourself and have never contributed code to biopython (or any other community, to be honest) but will be glad to help in any way possible.
Ricardo Vidal
June 1, 2009 at 7:54 am
Hi Brad,
I’ve only read your blog post, but perhaps some of the “Calculation of melting temperatures” code would fit into Biopython’s existing (minimal) Bio.SeqUtils.MeltingTemp module?
Peter
Peter
June 1, 2009 at 8:18 am
I applaud the effort.
But I wish there was more documentation and lots of examples. For most people time is the most valuable resource and not being able to understand what type of functionality a library offers makes it difficult to really get it.
Istvan Albert
June 1, 2009 at 8:35 am
Ricardo;
Glad to hear this will be useful for your work. I was hoping to release this in a more ready to go phase, but came to realize that if I waited until everything was refactored nicely I would never get it out. Hopefully you or others will be interested in picking up useful bits.
Peter;
Yes, the melting temperature code there is a bit more up to date than what Sebastian has in Biopython right now. Many of the parameters overlap, but it incorporates data from a 2004 SantaLucia paper and handles non-exact alignments with stem loops. For identical matches, like finding primer melting temperatures, the results should be identical. If you are looking at potential cross-hybridizations, you need the non-exact additions.
Istvan;
Agreed completely. I hope to be able to spend time to extract useful parts, generalize and document them. I wanted to make it available in this initial raw state so others could help, or pull things they need right away.
Brad Chapman
June 1, 2009 at 10:13 am
Sorry to hear your company went under, Brad, but this is great you’re releasing the code into the wild.
Chris Lasher
June 1, 2009 at 10:24 pm
Brad,
My name is Cesar Rodriguez, I’m a postdoc in Drew Endy’s lab at Stanford. Raik Gruenberg, Drew, and I are developing Python libraries for Synthetic Biology:
http://code.google.com/p/synbiopython/
We’re interested in working with you on this effort. Please drop me a line if you’re interested:
cesarr@stanford.edu
Cesar
Cesar A. Rodriguez
August 14, 2009 at 3:31 am
Cesar;
I am absolutely interested. You are free to utilize whatever code in there that you find useful. If there are specific things it would be useful to generalize, I can help with abstracting those out. It’s great to see y’all spearheading this effort.
Brad
Brad Chapman
August 14, 2009 at 3:59 pm
Greet library,but i hope we can see a more documentation on it some where.
I’m working on simple programming algorithm (linear programming) check my blog :
http://bioticcomputer.blogspot.com/
that make understanding easy but cost a lot of time so i think using library such biopython should be easier to program.
http://bioticcomputer.blogspot.com/
November 29, 2009 at 6:31 am