Meet the Molecular Programmer

Damien Woods

Questions? Ask them on our slack or anonymously through our form!

Having trouble listening to the podcast above, or want to take it on the go? Try downloading it here.

Show Notes

Today we’re talking with Damien Woods, a professor and molecular programmer at the Hamilton Institute, Maynooth University, Ireland. We first began by talking about how his early interests in dynamics and optical computers (the subject of his PhD thesis) led him to the field of molecular programming.

We then move on to talking about one of Damien’s well known papers, Diverse and robust molecular algorithms using reprogrammable DNA self-assembly. In this paper, Damien describes the implementation of 21 algorithms using a 6-bit boolean circuit built out of a DNA tile-set. Damien and his team built a set of DNA tiles which could implement any algorithm allowable by that 6-bit computer (the tiles are 6-bit universal). Damien describes how this allows anyone to wake up in the morning, design an algorithm, retrieve the appropriate tiles from the fridge, mix them and begin running the algorithm in a test tube on the very same day. This clearly has its advantages over other systems, which may require someone to wait for the DNA synthesis of their system before an implementation can be made. The readout of these circuits is by AFM to see a tape-recording of the computation, and so this paper generated a lot of pretty pictures!

We then moved on to talk about potential implementations of more complex computers, how Damien et al.’s 6-bit boolean circuit might be scaled up, and how the number of required tiles scales with the computational complexity (it’s linear!). This led us on to an extended discussion about universal tile-sets, their existence, and their ability to be implemented in DNA.

Finally we moved on to Damien’s experience in academia. He’s been to quite a few places, and has worked on many different things. He explains how his experience running a lab in two different countries differed, and how this shaped the way he runs his research group.


Damien Woods is at the Hamilton Institute, Maynooth University, Ireland, where his group conducts research on molecular computers: collections of carefully engineered DNA molecules that bump into each other and interact in a test tube to solve some computational problem. His focus is on both the underlying computational theory and implementation in the lab. The work is funded by the European Research Council (ERC) and Science foundation Ireland (SFI).

He traveled for a bit, doing research in Inria (France, 2016-2018), a long stint at Caltech (USA, 2009-2016), as well as University of Seville (Spain) and University College Cork (Ireland). His PhD is from Maynooth University (Ireland).

He enjoys whiteboarding, pipetting, AFMing and other scientific sports.

Gory Details

Damien provided some gory details to Georgeos’ question at 17:42. Check it out below! You may find Figure 1 from the paper helpful.

Figure 1b shows 4 tile types; consider their two input bits (on their left hand side) to be fixed. The two outputs can vary: for each of the 4 tile types there are 4 possibilities \( \{00,01,10,11\} \), that gives \(4 \times 4 = 16\) tile types. Then we use the error-reduction trick of proofreading (inset) which causes a further factor 4 blowup in the tile set giving \( 4 \times 16 = 64 \). These 64 tile types can simulate any gate at circuit position 2 in Fig 1a. There are five 2-in-2-out positions in the 6-bit circuit in Fig 1a, hence we get \( 5 \times 64 = 320 \) tile types. (We're almost at the total of 355.) The remaining \( 35 = 355 - 320 \) tile types are used to simulate the 1-in-1-out gates at gate positions 1 and 7 (i.e. 35 is derived from: 16 for gate 1, +16 for gate 7, then +3 tile types to “wrap” the tube up—actually, you can see 4 gray tiles/strands in Fig 1c, but for technical reasons two of these gray strands are actually the same tile type/DNA sequence, hence \( 4 - 1 = 3 \), … and thus it all works out, phew!).

Coming back to Georgeos’ question: If you add another bit to our 6-bit circuit, you'll need \( 355 + 64 \) tiles; and, in general if you have an \( n \)-bit circuit (for even \( n \)) you'll need \( (n-1) \cdot 64 + 35 \) tile types.