the second half
of the last century was completely
defined
by a technological revolution the
software revolution
the ability to program electrons on a
material called silicon
made possible technologies companies and
industries that were at one point
unimaginable to many of us but which
have now
fundamentally changed the way the world
works
the first half of this century though is
going to be transformed
by a new software revolution the living
software
revolution and this will be powered by
the ability to program biochemistry
on a material called biology and doing
so will enable us to harness the
properties of biology
to generate new kinds of therapies to
repair damaged tissue
to reprogram faulty cells or even build
programmable
operating systems out of biochemistry
if we can realize this and we do need to
realize it
its impact will be so enormous that it
will make the first software revolution
pale in comparison
and that's because living software would
transform the entirety of medicine
agriculture and energy and these are
sectors that dwarf those dominated by
i.t
imagine programmable plants that fix
nitrogen more effectively
or resist emerging fungal pathogens or
even programming crops to be perennial
rather than annual so you could double
your crop yields each year
that would transform agriculture and how
we'll keep our
growing and global population fed
or imagine programmable immunity
designing and harnessing molecular
devices that guide your immune system
to detect eradicate or even prevent
disease
this would transform medicine and how
we'll keep our growing and aging
population healthy
we already have many of the tools that
will make living software a reality
we can precisely edit genes with crispr
we can rewrite the genetic code
one base at a time we can even build
functioning synthetic
circuits out of dna but figuring out how
and when to wield these tools is still a
process of trial and error
it needs deep expertise years of
specialization
and experimental protocols are difficult
to discover
and all too often difficult to reproduce
and you know we have a tendency in
biology to focus a lot on the parts
but we all know that something like
flying wouldn't be understood by only
studying feathers
so programming biology not yet as simple
as programming your computer and then
to make matters worse living systems
largely bear no resemblance to the
engineered systems that you and i
program
every day in contrast to engineered
systems
living systems self-generate they
self-organize
they operate at molecular scales and
these molecular level interactions
lead generally to robust macro scale
output but you know they can even
self-repair consider for example
the humble household plant like that one
sat on your mantelpiece at home that you
keep forgetting to water
every day despite your neglect that
plant has to wake up
and figure out how to allocate its
resources will it grow
photosynthesize produce seeds or flower
and that's a decision that has to be
made at the level of the whole
organism but a plant doesn't have a
brain to figure all of that out
it has to make do with the cells on its
leaves they have to respond to the
environment and make the decisions that
affect the whole plant
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 will
do
and then those programs must operate in
a distributed way
across individual cells so that they can
coordinate and that plant can grow
and flourish if we could understand
these biological programs if we could
understand biological computation
it would transform our ability to
understand how
and why cells do what they do because if
we understood these programs we could
debug them
when things go wrong or we could learn
from them how to design the kind of
synthetic circuits
that truly exploit the computational
power
of biochemistry my passion about this
idea led me to a career in research
at the interface of maths computer
science and biology and in my work i
focus on the concept of biology
as computation and that means asking
what do cells compute
and how can we uncover these biological
programs
and i started to ask these questions
together with some brilliant
collaborators
at microsoft research and the university
of cambridge where together
we wanted to understand the biological
program running
inside a unique type of cell an
embryonic
stem cell these cells are unique because
they're totally naive
they can become anything they want brain
cell a heart cell a bone cell a lung
cell
any adult cell type this naivety it sets
them apart but it also ignited the
imagination of the scientific community
who realized
if we could tap into that potential we
would have a powerful tool for medicine
if we could figure out how these cells
make the decision to become one cell
type or another
we might be able to harness them to
generate cells that we need to repair
diseased or damaged tissue but realizing
that vision
is not without its challenges not least
because these particular cells
they emerge just six days after
conception
and then within a day or so they're gone
they have set off down the different
paths
that form all the structures and organs
of your adult body
but it turns out that cell fates are a
lot more plastic
than we might have imagined about 13
years ago some scientists showed
something
truly revolutionary by inserting just a
handful of genes
into an adult cell like one of your skin
cells you can transform that cell
back to the naive state and it's a
process that's actually known as
reprogramming
and it allows us to imagine a kind of
stem cell utopia right the ability
to take a sample of a patient's own
cells transform them back to the naive
state
and use those cells to make whatever
that patient might need whether it's
brain cells or heart cells
but over the last decade or so figuring
out how to change cell fate
it's still a process of trial and error
even in cases where we've uncovered
successful experimental protocols
they're still inefficient and we lack a
fundamental understanding of how
and why they work if you figured out how
to change a stem cell into a heart cell
that hasn't
got any way of telling you how to change
a stem cell into a brain cell
so we wanted to understand the
biological program running inside an
embryonic stem cell
and understanding the computation
performed by a living system
starts with asking a devastatingly
simple question
what is it that system actually has to
do
now computer science actually has a set
of strategies for dealing with what it
is
the software and hardware meant to do
when you write a program you code a
piece of software
you want that software to run correctly
you want performance functionality
you want to prevent bugs they can cost
you a lot
so when a developer writes a program
they can write down a set of
specifications
these are what your program should do
maybe it should compare the size of two
numbers or
order numbers by increasing size
technology
exists that allows us automatically
to check whether our specifications are
satisfied whether that program
does what it should do and so our idea
was that in the same way experimental
observations things we measure in the
lab
they correspond to specifications of
what the biological program
should do so we just needed to figure
out a way
to encode this new type of specification
so let's say you've been busy in the lab
and you've been measuring your genes and
you've found
that if gene a is active then gene b
or gene c seems to be active
we can write that observation down as a
mathematical expression if we can use
the language of logic if a then b
or c now this is a very simple example
okay it's just to illustrate the point
we can encode
truly rich expressions that actually
capture the behavior
of multiple genes or proteins over time
across
multiple different experiments and so by
translating our observations
into mathematical expressions in this
way it becomes possible
to test whether or not those
observations can emerge
from a program of genetic interactions
and we developed a tool to do just this
we were able to use this tool to
encode observations as mathematical
expressions and then that tool would
allow us to uncover
the genetic program that could explain
them all
and we then apply this approach to
uncover
the genetic program running inside
embryonic stem cells to see if we could
understand
how to induce that naive state and this
tool was actually built
on a solver that's deployed routinely
around the world for conventional
software verification so we started with
a set
of nearly 50 different specifications
that we generated
from experimental observations of
embryonic stem cells
and by encoding these observations in
this tool we were able to uncover
the first molecular program that could
explain all of them
now that's kind of a feat in and of
itself right being able to reconcile
all of these different observations is
not the kind of thing you can do
on the back of an envelope even if you
have a really big envelope
because we've got this kind of
understanding we could go one step
further we could use this program
to predict what this cell might do in
conditions we hadn't yet
tested we could probe the program in
silico
and so we did just that we generated
predictions that we tested in the lab
and we found that this program was
highly predictive
it told us how we could accelerate
progress back to the naive state
quickly and efficiently it told us which
genes to target to do
that which genes might even hinder that
process
we even found the program predicted the
order in which genes
would switch on so this this approach
really allowed us to uncover the
dynamics of what
the cells are doing now what we've
developed it's not a method that's
specific to stem cell biology rather
it allows us to make sense of the
computation being carried out by the
cell
in the context of genetic interactions
so really it's just one building block
the field urgently needs to develop new
approaches to understand biological
computation more broadly and at
different levels
from dna right through to the flow of
information between
cells only this kind of transformative
understanding
will enable us to harness biology in
ways that are predictable
and reliable but to program biology we
will also need to develop
the kinds of tools and languages that
allow both experimentalists and
computational scientists to design
biological function
and have those designs compile down to
the machine code of the cell its
biochemistry
so that we could then build those
structures now that's something akin to
a living software compiler
and i'm proud to be part of a team at
microsoft that's working to develop one
though to say it's a grand challenge is
kind of an understatement but if it's
realized
it would be the final bridge between
software and
wet wear more broadly though programming
biology is only going to be possible if
we can transform the field
into being truly interdisciplinary it
needs us to bridge the physical
and the life sciences and scientists
from each of these disciplines
need to be able to work together with
common languages and have shared
scientific questions in the long term
it's worth remembering that many of the
giant software companies and the
technology that you and i work with
every day
could hardly have been imagined at the
time we first started programming
on silicon microchips and if we start
now to think about the potential for
technology enabled by computational
biology
we'll see some of the steps that we need
to take along the way to make that a
reality
now there is the sobering thought that
this kind of technology could be open to
misuse
if we're willing to talk about the
potential for programming immune cells
we should also be thinking about the
potential of bacteria
engineered to evade them there might be
people willing to do that
now one reassuring thought in this is
that well let's say for the scientists
is that biology is a fragile thing to
work with
so programming biology is not going to
be something you'll be doing in your
garden shed
but because we're at the outset of this
we can move forward with our eyes
wide open we can ask the difficult
questions up front
we can put in place the necessary
safeguards
and as part of that we'll have to think
about our ethics we'll have to think
about putting bounds
on the implementation of biological
function
so as part of this research in bioethics
will have to be priority
it can't be relegated to second place in
the excitement
of scientific innovation but the
ultimate prize
the ultimate destination on this journey
would be breakthrough applications
and breakthrough industries in areas
from agriculture and medicine
to energy materials and even computing
itself
imagine one day we could be powering the
planet sustainably
on the ultimate green energy if we could
mimic something that plants figured out
millennia ago how to harness the sun's
energy with an efficiency that is
unparalleled by our current solar cells
if we understood that program of quantum
interactions that allow plants to absorb
sunlight so efficiently
we might be able to translate that into
building synthetic dna circuits that
offer the material
for better solar cells there are teams
and scientists working on the
fundamentals of this right now so
perhaps if it got the right attention
and the right investment
it could be realized in 10 or 15 years
so we are at the beginning of a
technological revolution
understanding this ancient type of
biological computation is the critical
first step
and if we can realize this we would
enter into the era of an operating
system
that runs living software thank you very
much
[Music]