Nature is full of algorithms melding deterministic and random processes. For example, pine trees grow following the same underlying genetic rules, yet no two in a forest are exactly the same. In the paper on page 251 we asked ourselves, could these stochastic algorithms provide simple programming rules to make complex structural patterns in a molecular system? Initially, we wanted to build diverse testing grounds for DNA robots, but soon realized that the ability to efficiently construct nanoscale patterns with combinatorial diversity and programmable features was of great interest on its own.

We took inspiration from the theory of Truchet tiling, generalized it to a set of rules for programming random tilings, and implemented these rules using DNA origami tiles. A Truchet tile has a rotationally asymmetric pattern designed to continue into neighbouring tiles. Complex patterns result from randomly rotating tiles at each location in the array (like the pattern on the lab floor shown in the photo). To create a square tile that can freely rotate and bind to adjacent tiles on all four sides, we designed it to be made of four isosceles triangles. To hold the triangles together, we applied 'bridge staples': DNA bound to either side of the chasm holding both sides together, similar to stitches sealing a wound.

As the bridge staples have delicate geometry, we first anchored the binding strongly on one side and weakly on the other. In doing so, we wanted to separate the two binding processes into different time points during assembly and thus avoid a situation where the competing bridge staples tangle themselves into a mess. But when we went to image our tiles, we found sickly, shrivelled structures. Clearly, our bridges were a weak point. Therefore, we redesigned our bridges so that they would tightly bind both sides with equal strength. At this point, mostly flat, healthy square tiles greeted us on imaging. It turns out DNA molecules are 'smarter' than we thought — when properly designed, complex stitching is not a problem.

With these healthy square DNA origami tiles in hand, we now needed to encode the tile–tile interactions through 'edge staples' to create large DNA origami arrays. We knew how to control both the geometric layout of the edge staples and their base pair (AT, GC) specificity, but we had little understanding of how a particular edge layout would manifest itself experimentally. This is central to avoid irregular tile aggregation and encourage regular, crystal-like array growth.

Credit: Philip Petersen, California Institute of Technology

Our naive first approach was to allow our tiles to interact non-specifically along their entire edge. As we reasoned, tiles would be smart enough to freely attach into a growing crystal from any edge and simply slide into a perfect lattice to maximize their tile–tile binding energy. Results showed otherwise: tiles stuck wherever they touched each other with misaligned segments and branches as the norm. Evidently, the binding between tiles was too strong and the lack of specificity allowed imperfect tile attachment. And so we began an iterative series of experiments changing geometry, strength, and specificity, with each iteration leading to further refinement. In the end, we did achieve beautiful crystal lattices of tiles.

With this platform to build upon, we began the step of actually programming the patterns on a tile to make a few representative nanoscale testing grounds for DNA robots. Along the surface of a tile we placed DNA strands forming a designed pattern, representing tracks upon which our DNA robot could eventually walk. We were expecting to see sheets of tiles carrying the designed pattern, but instead we found DNA ribbons everywhere. We tried removing segments of our patterns, probing for the exact change that broke the system. Then came a strange clue: with an asymmetric surface pattern we noticed the unwanted ribbons were all face down on our imaging surface (probability would dictate a fifty per cent chance of a ribbon landing face up or down). Finally a key clue appeared: a double-thick ribbon, indicating an unbroken flattened tube. Indeed, a tube unfurling on a surface would have its exterior face down one hundred per cent of the time. Knowing that DNA strands on a surface cause curvature of the tile, leading to the formation of tubes, we countered by implementing the rotation of tiles to prevent the curvature from propagating. This led to large flat arrays, now with a variety of surface patterns. It was amazing to see how, at each stage, DNA molecules cooperate with each other in a complex self-assembly process. But we finally had our tool to begin programming various stochastic algorithms for creating complex patterns with controlled properties.

The principles behind programming the molecular patterns are the heart of our paper. But it took years of mystery solving before we understood our system well enough to develop the tools necessary to put us even on the starting line for demonstrating these principles.