The living software revolution

November 6, 2019

[MUSIC] We’re at the beginning of a
new technological revolution. It’s a revolution that should
allow us to program our body to fight diseases that
currently evade our defenses, to program crops to produce more
food to feed a hungry planet, and to develop new
strategies to power our world in sustainable
climate friendly ways. And the big news, it might be
possible sooner than you think. Innovation hinges on our ability
to see things differently, breaking boundaries, and
looking between the lines in an effort to solve some of the
world’s toughest challenges. [MUSIC] The last technological revolution,
the software revolution, was defined by our ability to
encode ones and zeros on silicon. But the next revolution won’t
be about ones and zeros, It will be about our
ability to encode As, Gs, Cs, and Ts, the building blocks of DNA. [MUSIC] As a scientist who studies
biological computation at Microsoft, I work at the intersection
of mathematics, computer science, and biology. Everywhere I look, I see cells
operating as little computers. For example, consider
the immune cells that patrol your body day in day out. These cells have to solve the
problem of fighting disease and infection without fighting
against the body itself, and that’s an information
processing problem. So somehow, there must be a program
running inside these cells, a program that responds to
input signals and cues, and shapes what that cell would do, a program of dynamic interactions
at a molecular scale. And these programs must operate in a distributed way across
your immune system, coordinating and sharing
information to protect your body. You can think of this
as living software. If we could figure out the biological programs
that run inside cells, like those in our immune system, it would transform our
ability to understand how and why cells do what they do. Because if we truly understood
these biological programs, then we could debug them
when things go wrong. And that means we could do
truly wonderful things. [MUSIC] For example, what if we could program ourselves to
detect, eradicate, or even prevent disease
better than we can now or even replace damaged tissue? That would mean living
longer healthier lives. Or what if we could
program crops to resist fungal pathogens or even
to bear fruit more often? That would enable us to
feed a hungry planet. Or what if we could
figure out how to harness quantum effects to capture energy from the sun in
truly efficient ways, more efficient than our
current solar panels? That would be the
ultimate green energy? It’s hard not to get excited about
potential outcomes like this. And while there are some
common misperceptions and genuine ethical concerns
about the science here, the reality is this, programming biology has the
potential to transform medicine, agriculture, and energy, and many other industries
on a global scale. Scientists have developed
CRISPR technology that allows us to precisely target
and edit problem genes. With base editing, we can rewrite
DNA strands one base at a time. We can even build functioning
synthetic circuits out of DNA. But figuring out how to use these tools is largely
driven by trial and error. Developing robust experimental
protocols is difficult, and reproducing consistent and
scalable results is a huge hurdle. [MUSIC] At Microsoft, I’m part of a
dedicated team called Station B, that’s working to develop
an integrated system that will allow us to program
biology more effectively. One promising area for programming biology is the
field of regenerative medicine. Thirteen years ago, scientists discovered something
truly revolutionary, that it’s possible to
take your adult cells, like your skin cells
and reprogram them back to this embryonic
stem-like state. That was an enormous Nobel
Prize winning discovery. [MUSIC] Because embryonic stem
cells are special. They are the starting point of all of the different cells
in your adult body, whether it’s your heart, your lungs, your brain, your muscles. All of your adult cells can be
traced back to this starting point. Now, we can access this
potency from your adult cells. That means, we might be able
to harness the potential of embryonic stem cells to make revolutionary kinds of treatments
to repair damaged tissue. What if we could help an Alzheimer’s patient
to grow new brain cells? To be able to realize this vision, we need to figure out how
to program these cells. And that means asking first, what do these cells compute? And how can we go about uncovering
these biological programs? Understanding the
computation performed by a living system starts with a
devastatingly simple question. What is it that system
actually has to do? [MUSIC] So our idea was this, observations of cellular behavior specify what it is the
biological program should do. So if we can translate
what we see happening in the lab into computational
and mathematical formulae, then we can test just as though
we were debugging software, whether it’s possible to explain how those observations emerge from a
program of genetic interactions. It’s raining. Okay, well, you
can’t program the weather. We developed a tool to do just this, one based on a Microsoft
design solver that’s used routinely around the world for
conventional software verification. And we used it to uncover the cell’s
internal genetic program. But we took it one step further. We use this program to
accurately predict how to accelerate progress back to that stem-like state
quickly and efficiently. We uncovered which
genes were critical, which might hinder it, how individual genes would
switch on and off over time. This is an important breakthrough. We developed a computer model of this system that could successfully tell us in advance what would otherwise have taken
years to discover. But this is only one step
towards programming biology. We need to develop new ways to uncover biological
computation more broadly. From how information is encoded
in the DNA molecules themselves, right through to how information
flows between cells. Ultimately, we will need
to develop tools that allow us to design
biological function, and then map those designs to structures that we can
assemble in the lab. [MUSIC] So let’s say that we could design
a genetic circuit that would allow a cell to respond
to a new kind of input, maybe to detect a toxin. Then the question is how you
would build that circuit. What pieces of DNA would
you need to assemble? This is where another analogy from conventional computing
comes in useful. High-level programming
languages allow humans to write code in a
language that they understand. Nobody actually codes
in ones and zeros. There are compilers that allow us to translate our high-level languages down to the machine code that the computer can interpret
to run that program. And we need the
biological equivalent. We need a living software compiler. And with that, we could compile
down to the Gs, Cs, As, and Ts of DNA that we would
use to assemble that circuit. Along with this, we need ways to insert these genetic
circuit into cells, to run lab experiments
reliably and automatically, and then learn from the
data that’s produced. We need an integrated system
for programming biology. In fact, this system is the
next big tool that we’re working on to develop at
Station B at Microsoft. We’re bringing decades
of experience in programming computational
systems to help us develop it. And in fact, we’ve already
made tremendous strides. We developed biological
programming languages that allow us to encode our
designs for genetic circuits. Our tools allow us to compile these
designs down to the DNA code, and then to automatically run
our experiments in the lab. The experiments around
our lab robots, then we pull the data from
those experiments and store it in a Microsoft
cloud knowledge base. As we perform new experiments, our knowledge base is continuously
updated by automated learning. [MUSIC] There’s still a lot
of work ahead of us. The biggest challenge
remains understanding yet to be sorted elements
of biology well enough, that we can condense the
processes we want to emulate into circuits that
we can design and build. [MUSIC] Now, every technology is a tool
that even when used for good, can have unintended consequences. And the same is true here. As I mentioned earlier, there are important ethical
concerns that must be confronted. And we are at the start of this
new software revolution. It’s going to require
deep consideration, and it’s not something that
we would ever relegate to second place in our ongoing
quest for scientific innovation. We can only move forward
with our eyes wide open and in partnership with
the scientific community. Every organization in this
collaboration is deeply committed to putting the
necessary safeguards in place, and asking the difficult
questions upfront. Once we have addressed
the ethical concerns, and once we fully understand
biological computation, that everything I said
earlier is possible and more. Rebuilding organs
for transplantation, self-organizing and
self-repairing materials, chemicals and fertilizers
that allow us to leave fossil fuels in the ground. A future made possible by the
living software revolution. [MUSIC]

No Comments

Leave a Reply