HomeNewsCase StudiesPeoplePublications
« Overview

DNA. More than a genetic blueprint.

Using just four bases (A,C,G and T), DNA — a molecule ubiquitous to life as we know it — acts as a storage device by encoding genes and other blueprint sequences that can be inherited by future generations. However, DNA is not limited to the role of information carrier. Its very mention elicits thoughts of its famous double helical structure. This structure is formed by two sequences that hybridize together by forming bonds between complementary bases. The A base will bond with a T base and, similarly, C will bond with G. Using this knowledge, researchers can design sets of sequences that will hybridize and self-assemble into shapes much more complex than the double helix. This is the foundation of DNA nanotechnology.

Beyond silicon. Computing with Soup.

In addition to self-assembly into static structures, DNA hybridization can be leveraged for creating dynamic systems that change over time. This has naturally led to the exploration of using DNA to perform computation. While the physical realization of today's computer programs is in silicon hardware, scientists are envisioning radically new ways of programming with bio-molecules such as DNA that run in an energy-efficient manner at staggeringly small scales. The advantage? A natural interface with biological systems that can be implemented within a living cell. Imagine a truly smart drug delivery system that only treats unhealthy cells. Such a system must reason and can be implemented with a so-called DNA Strand Displacement (DSD) system. In a DSD, DNA strands are conceptually composed of different domains —a particular sequence of bases. By a careful design of domains that can hybridize to other domains, entire reaction cascades can be implemented to perform complex logical computation within a solution. This has been aptly described as computing with soup.

Wetware Verification. Probabilistic Model Checking.

Correctly implementing traditional software or hardware is already a difficult and error-prone task. Consider the additional challenges when implementing a DNA based computer composed of millions or billions of strands. At once, the strands form the hardware of the system and their potential interactions comprise the software. In any particular configuration of strands, or state of the system, any potential binding of complementary domains leads to a new state. Programmers only have control over the design of the strands. Can they be certain strands interact in only desirable ways? As an end goal of these systems is to run within living cells, safety and correctness are of paramount concern. Yet, wet lab experimentation is both time consuming and expensive and the scale of these systems prohibits direct observation. Fortunately, quantitative verification of these highly concurrent, probabilistic systems is possible. The PRISM model checking tool has already been used to great effect in identifying bugs in these systems, and verifying their expected behaviour. Work continues in this project to improve the state-of-the-art for model checking these critical systems and the unique challenges they present.

Walker systems. Expressing logic gates.

Various walkers systems have been constructed through clever manipulation of DNA. These advanced motors can operate along a track made of DNA and can take directions at junctions. Their function mimics the natural proteins Kinesin and Dynein, which transport cargo along cytoskeletal microtubules inside the cell. Advances made in engineering these artificial systems clear the path towards mechanical designs with more complicated functions, such as logic gates or persistent memory made from DNA. Such DNA computers share natural interfaces with biological inputs and could one day function as advanced bio-sensors. As the complexity increases, so does the necessity of automated design tools for DNA systems. Model checking can analyse the reliability, detect bugs and predict the performance of future experiments.

18 publications:






« Overview