A technology and theory of computation that is based on information-bearing molecules of historically biological origin (DNA/RNA) not necessarily involving living matter is called molecular programming.
The goal of molecular programming research is to examine and develop chemical systems as an information technology. Starting with macromolecules defined by their information content such as DNA, RNA, and proteins with a particular sequence the first task is to design sequences that imbue the molecule with a target function, such as folding into a particular shape or acting as a molecular machine. When multiple such molecules are designed to interact, they can self-assemble into complex structures or behave as biochemical circuits for controlling molecular processes. Molecular programming demands formalizing models of molecular system behavior and developing systematic methods for their design and analysis.
Programmable bio-molecular systems will impact our lives just as dramatically as programmable electronics did. Programmed molecular self-assembly will be used for the massively parallel construction of nano-scale devices. “Smart drugs” that target drug activity to disease cells and activate in response to specific molecular clues will have minimal side effects and improve therapeutic outcomes. Such tasks need molecular systems that operate autonomously in complex environments, sensing and responding to molecular events.
In CMS, research focuses on models for molecular programming of folding, self-assembly, chemical reaction networks, and molecular robotics. This enables theoretical investigations of molecular information processing, molecular complexity theory, probabilistic computation, free energy landscapes, metastable systems, and fundamental limits. With a focus on nucleic acid nanotechnology and synthetic biology, we are also developing abstractions, programming languages, design algorithms, verification tools, and compilers that translate high-level specifications into molecular sequences that can be synthesized in the laboratory.
Computer science has its historical roots in mathematical logic and electrical engineering. However it quickly evolved into a separate discipline with its own methods for describing and controlling aspects of reality not addressed by its predecessors.
The current practice of Molecular Programming is in;
- DNA technology
- Molecular languages and tools
- Molecular algorithms
This Expeditions-in-Computing project aims to establish solid foundations for molecular programming. Building on advances in DNA nanotechnology, DNA computing, and synthetic biology, the project will develop methods for programmable self-assembly of DNA strands to create sophisticated 2D and 3D structures, dynamic biochemical circuitry based on programmable interactions between DNA, RNA, and proteins, and integrated behaviors within spatially organized molecular systems and living cells. These architectures will provide systematic building blocks for creating programmable molecular systems able to sense molecular input, compute decisions about those inputs, and act on their environment. To manage system complexity and to provide modularity, the project will establish abstraction hierarchies with associated high-level languages for programming structure and behavior, compilers that turn high-level code into lists of synthesizable DNA sequences, and analysis software that can predict the performance of the sequences. This will allow molecular programmers to specify, design, and verify the correctness of their systems before they are ever synthesized in the laboratory. In addition to these software tools, the project will study the theory of molecular algorithms in order to understand the potential and limitations of information-based molecular systems, what makes them efficient at the tasks they can perform, and how they can be effectively designed and analyzed.