Molecular devices made of nucleic acids show great potential for applications ranging from bio-sensing to intelligent nanomedicine. They allow computation to be performed at the molecular scale, while also interfacing directly with the molecular components of living systems. They form structures that are stable inside cells, and their interactions can be precisely controlled by modifying their nucleotide sequences.
However, designing correct and robust nucleic acid devices is a major challenge, due to high system complexity and the potential for unwanted interference between molecules in the system. To help address these challenges we have developed the DNA Strand Displacement tool (DSD), a programming language for designing and simulating computational devices made of DNA. The language uses DNA strand displacement as the main computational mechanism, which allows devices to be designed solely in terms of nucleic acids, without the need for additional components. DSD is a first step towards the design of modelling and simulation tools for DNA strand displacement, which complements the emergence of novel implementation strategies for DNA computing.
- Boyan Yordanov, Jongmin Kim, Rasmus L. Petersen, Angelina Shudy, Vishwesh V. Kulkarni, and Andrew Phillips, Computational design of nucleic acid feedback control circuits, in ACS Synthetic Biology, American Chemical Society (In Press), July 2014.
- Neil Dalchau, Georg Seelig, and Andrew Phillips, Computational design of reaction-diffusion patterns using DNA-based chemical reaction networks, in International Conference on DNA Computing and Molecular Programming, Springer, June 2014.
- Matthew R. Lakin, Rasmus Petersen, Kathryn E. Gray, and Andrew Phillips, Abstract modelling of tethered DNA circuits, in International Conference on DNA Computing and Molecular Programming, Springer, June 2014.
- Matthew R. Lakin and Andrew Phillips, Compiling DNA Strand Displacement Reactions Using a Functional Programming Language, in Practical Aspects of Declarative Languages - 16th International Symposium, Springer, January 2014.
- Yuan-Jyue Chen, Neil Dalchau, Niranjan Srnivas, Andrew Phillips, Luca Cardelli, David Soloveichik, and Georg Seelig, Programmable chemical controllers made from DNA, in Nature Nanotechnology, vol. 8, no. 10, pp. 755-762, Nature Publishing Group, 29 September 2013.
- Boyan Yordanov, Christoph Wintersteiger, Youssef Hamadi, Andrew Phillips, and Hillel Kugler, Functional Analysis of Large-scale DNA Strand Displacement Circuits, in International Conference on DNA Computing and Molecular Programming, vol. 8141, pp. 189-203, Springer, September 2013.
- Matthew R. Lakin, Andrew Phillips, and Darko Stefanovic, Modular verification of DNA strand displacement networks via serializability analysis, in International Conference on DNA Computing and Molecular Programming, vol. 8141, pp. 133-146, Springer Verlag, September 2013.
- Matthew Lakin, David Parker, Luca Cardelli, Marta Kwiatkowska, and Andrew Phillips, Design and Analysis of DNA Strand Displacement Devices using Probabilistic Model Checking, in Journal of the Royal Society Interface, vol. 9, no. 72, pp. 1470-1485 , The Royal Society, July 2012.
- Matthew Lakin, Loïc Paulevé, and Andrew Phillips, Stochastic Simulation of Multiple Process Calculi for Biology, in Theoretical Computer Science, vol. 431, pp. 181-206, Elsevier, May 2012.
- Matthew Lakin, Simon Youssef, Luca Cardelli, and Andrew Phillips, Abstractions for DNA circuit design, in Journal of the Royal Society Interface, vol. 9, no. 68, pp. 470-486, The Royal Society, March 2012.
- Matthew Lakin, Simon Youssef, Filippo Polo, Stephen Emmott, and Andrew Phillips, Visual DSD: a design and analysis tool for DNA strand displacement systems, in Bioinformatics, vol. 27, no. 22, pp. 3211–3213, Oxford University Press, November 2011.
- Harish Chandran, Nikhil Gopalkrishnan, Andrew Phillips, and John Reif, Localized Hybridization Circuits, in International Conference on DNA Computing and Molecular Programming, vol. 6937, pp. 64-83, Springer Verlag, September 2011.
- Matthew Lakin and Andrew Phillips, Modelling, simulating and verifying Turing-powerful strand displacement systems, in International Conference on DNA Computing and Molecular Programming , vol. 6937, pp. 130-144, Springer Verlag, September 2011.
- Andrew Phillips and Luca Cardelli, A programming language for composable DNA circuits, in Journal of the Royal Society Interface, 17 June 2009.
- BETA (latest beta v2014-0922) (Manual), Command-line version (Readme).
- MAIN (v2014-0219). Requires Silverlight 4.0 for Windows or Mac.
- Documentation: Tutorial, User Manual and Release Notes.
- Command-line simulator: Windows, OS X and OCaml Bytecode.
- Contact: Andrew Phillips (firstname.lastname@example.org).
- Archive: v2013-0214; v2012-0920; v2011-0721
- DSD was developed by Matthew Lakin, Filippo Polo, Simon Youssef, Kathryn Gray, Rasmus Petersen, Colin Gravill, Neil Dalchau and Andrew Phillips at Microsoft Research.
- Luca Cardelli assisted with the design of the DSD language and extensive testing of DSD.
- Erik Winfree and his group have provided valuable feedback on DSD, together with Georg Seelig and his group.
- The core DSD language was developed in F#.
- DSD uses Dynamic Data Display for visualising simulation plots.
- DSD uses Microsoft Automatic Graph Layout for visualising networks.
Selected Publications using DSD
- Amir et al., Universal computing by DNA origami robots in a living animal. Nature Nanotechnology 9: 353–357 (2014).
- Chen et al., Programmable chemical controllers made from DNA, in Nature Nanotechnology 8: 755-762 (2013).
- Qian, Winfree, Bruck. Neural network computation with DNA strand displacement cascades. Nature 475: 368–372 (2011).
- Qian, Winfree. Scaling Up Digital Circuit Computation with DNA Strand Displacement Cascades. Science 332: 1196-1201 (2011).