Our group is conducting research to uncover fundamental principles of biological computation: what biological systems compute, and how this computation is performed. We are also developing methods for programming computation in biological systems. Our research currently focuses on fundamentals of Biological Computation, with applications in Immunology and Development, together with principles of Programming Life, with applications in DNA Computing and Synthetic Biology.

Current projects include designing molecular circuits made of DNA, and programming synthetic biological devices to perform complex functions over time and space. We also aim to understand the computation performed by cells during organ development, and how the adaptive immune system detects viruses and cancers, focusing on mechanism and function. We are tackling these questions through the development of computational models and domain-specific computational tools, in close collaboration with leading scientific research groups. The tools we develop are being integrated into a common software environment, which supports simulation and analysis across multiple scales and domains. This environment will serve as the foundation for a common language runtime for biological computation.