Laboratory for Molecular Programming


Molecular programming, also known as DNA nanotechnology, exploits the information-processing capabilities of nucleic acids to design self-assembling, programmable structures and devices at the nanoscale.  Our research is devoted to understanding the power and limitations of this “programming of matter” and using this understanding to make DNA nanotechnology more productive, predictable, and safe.  Our specific interests include the development and analysis of mathematical models of self-assembly, biochemical chemical reaction networks, molecular robotics, and other aspects of DNA nanotechnology; and the adaptation of methods that computer scientists and software engineers have developed for creating, controlling, and reasoning about systems of immense complexity (requirements engineering, programming languages, formal verification, software safety, …) to the even greater challenges that nanotechnology will confront.  Our group and our work are thus diverse, with students and faculty from several fields working together on modeling and analysis, software tools, and wet-lab molecular devices.