The DNA and Natural Algorithms Group

Sticky End Design Software Packages (StickyDesign)

We currently have a collection of software packages for designing sticky end sequences for DNA tile assembly systems, that may eventually be combined into one integrated system. They are all maintained by Constantine Evans (cge (at), who should be contacted with bug reports, feedback, questions and suggestions.

The algorithms behind these packages are described in our paper presented at DNA 19, C. Evans and E. Winfree, “DNA Sticky End Design and Assignment for Robust Algorithmic Self-assembly,” in DNA19, LNCS 8141, D. Soloveichik and B. Yurke, Eds. Springer, 2013, pp. 61–75.

StickyDesign sequence designer

Our sticky end design software implements an algorithm designed to find sticky end sequences with as uniform of complementary binding energies as possible, while keeping non-orthogonal interactions between non-complementary ends below a user-specified strength.

The package is implemented as a Python 2 library built off of Numpy and Scipy. Inline documentation is provided for all functions, though stickydesign.easyends is the most commonly used function for designing ends. It uses a small C extension to speed up energetics calculations, and so additionally requires a C compiler and the Python development headers.


End Sensitivity and Assignment

Our software for end pair sensitivity calculation and assignment is implemented as a series of Python libraries. These use tile systems described in a simple YAML-based tile format, and end sequences either generated by StickyDesign or input manually. We also have scripts that translate between these more thorough descriptions of tile sets and formats suitable for simulation in Xgrow, taking into account sequence-dependent end energetics and complementary rather than identical bonds. These packages are currently not as documented or polished as our sequence design code, but we are working on making them easier to use, possibly in conjunction with updates to Xgrow.