Programmable Control of Nucleation for Algorithmic Self-Assembly
  Algorithmic self-assembly, a generalization of crystal growth processes, has been proposed as a mechanism for autonomous DNA computation and for bottom-up fabrication of complex nanostructures. A `program' for growing a desired structure consists of a set of molecular `tiles' designed to have specific binding interactions. A key challenge to making algorithmic self-assembly practical is designing tile set programs that make assembly robust to errors that occur during initiation and growth. One method for the controlled initiation of assembly, often seen in biology, is the use of a seed or catalyst molecule that reduces an otherwise large kinetic barrier to nucleation. Here we show how to program algorithmic self-assembly similarly, such that seeded assembly proceeds quickly but there is an arbitrarily large kinetic barrier to unseeded growth. We demonstrate this technique by introducing a family of tile sets for which we rigorously prove that, under the right physical conditions, linearly increasing the size of the tile set exponentially reduces the rate of spurious nucleation. Simulations of these `zig-zag' tile sets suggest that under plausible experimental conditions, it is possible to grow large seeded crystals in just a few hours such that less than 1 percent of crystals are spuriously nucleated. Simulation results also suggest that zig-zag tile sets could be used for detection of single DNA strands. Together with prior work showing that tile sets can be made robust to errors during properly initiated growth, this work demonstrates that growth of objects via algorithmic self-assembly can proceed both efficiently and with an arbitrarily low error rate, even in a model where local growth rules are probabilistic. 
Rebecca Schulman and Erik Winfree