United States Change | All Microsoft Sites
Programming Life
Science at Microsoft

Programming Life

Each one of the 10(17) cells that make up you, each cell that makes up a plant, each stem cell, and even a “simple” bacterium or a white blood cell, is a remarkable biological “machine.” At the heart of these biological machines is a molecular “program” governing sophisticated biological computation, information-processing, and decision-making—from energy production and consumption, to effective response to attack and malfunction, to what actions need to be taken in response to changes in the environment. It’s a program that determines, for example, plant growth and agricultural yield, which in turn affects global carbon cycling. When this program malfunctions, it can lead to auto-immune disease, cancer, and viral infections.

What if we could program cells? We could address some of the greatest challenges facing humanity. For instance, it might be possible to program human cells or even the entire immune system to prevent or tackle disease in new ways that would transform medicine. Plant cells could be programmed to improve crop yields, to solve a problem for which there is currently no viable solution: how to feed a global population of 9 billion people. We might even be able to design and program artificial cells to cheaply generate sustainable, global sources of energy, for example, by artificial photosynthesis.

This isn’t science fiction, but, until very recently, nor has it been “science fact.” While the current state-of-the-art has shown how bacteria can be modified to attack specific types of cancer cells, how yeast can be modified to make the world’s most effective anti-malarial drug, and how bacteria can be engineered to convert sunlight into electricity, there is a major barrier to making progress: designing cellular behaviour currently involves complex, laborious, and highly error-prone methods, often based on trial-and-error.

This work has not only pushed the boundaries of biological computing, it has also helped Microsoft refine Microsoft Visual Studio products. In the process of building a visual tool for scientists, the research team used Microsoft Automatic Graph Layout (MSAGL), which provides an essential part of the tool’s user interface, and is part of Visual Studio. With scenarios that pushed the limits of MSAGL’s capabilities, the researchers helped the Visual Studio team expand its capabilities—and also provided direct input into making it more robust. This teamwork between Microsoft researchers and product development groups simultaneously helps advance science and improvements to Visual Studio technology.

Primary Researchers

Andrew Phillips

Andrew Phillips is head of the Biological Computation Group in the Computational Sciences Laboratory at Microsoft Research Cambridge. His research is in developing visual programming languages and tools for simulating and analysing complex models of biological systems. He was recipient of a prestigious MIT Technology Review TR35 award in 2011.

Jim Haseloff

Jim Haseloff is a plant biologist working at the Department of Plant Sciences, University of Cambridge, where he leads a synthetic biology lab. His scientific interests are focused on the engineering of plant morphogenesis by using microscopy, molecular genetics, and computational and synthetic biology techniques.