Transcriber: Denise RQ
Reviewer: Carlos Arturo Morales
Hi.
So, I'm kind of a computer nerd.
I've been surrounded by computers
my whole life like most of you,
but I've also been
engineering them my whole life.
What I really like about computers
are the absolutely beautiful algorithms
that we've created
and the programming languages
that we represent these algorithms in.
I've always been fascinated
by biology as well
because living organisms are essentially
naturally-occurring computers.
The DNA in the living
organisms is the code,
and if you change that code
you change the behavior of the organism.
This combination of computer science
and biology is called synthetic biology.
I've been doing this for about six years,
and I've come to the conclusion
that really, eventually,
biology will be as easy to program
as computers are now.
You might use some programming language
that you're used to,
like Python or Java,
if you know these things,
and that language
will be compiled down into DNA,
we'll stick the DNA inside cells,
boot it up and off we go.
It sounds kind of crazy
and I think that eventually,
we're going to have to really change
our mindset in order to get there
because there are a lot of differences
between biology and computers as well,
as I'll get to.
So, today what I'm going to tell you
is how we're learning to program biology
by actually programming it indirectly.
What we're doing is
reprogramming the biology lab
and that allows us to turn the biology lab
into a programmable system
that you can use as a tool
to find new living cells
that do new and useful things.
So, how easy is it
to program a computer anyway?
You might not be
a computer savvy yourself,
you might think
computers are really mysterious,
but just remember,
everything that your computer does
was programmed by somebody.
This is my son Brendan. He is 9.
He's not actually playing
video games in this picture,
he's actually writing his own video game.
He learned how to write
video games in elementary school.
They teach programming
in elementary school,
which is mind-boggling to me,
it's so fantastic.
And what that probably means
is that programming
- even though these kids are smart -
is about as difficult to do
as doing fractions.
So, if you can do fractions,
you can program a computer.
Imagine if biology
would be that easy to program,
imagine if we could be
that creative with biology.
Why are computers so easy to program?
Well, it's because we figured out
where to put these abstraction barriers
so that you don't need to think about
all the stuff that's happening
inside the computer.
The thing about humans is
that they can really only keep a few ideas
in their head at any given time.
And if you have to know about everything
that's happening inside a computer,
from the transistor all the way up
to the programming language,
you'll just be completely paralyzed,
and you won't be able to be creative.
And so, the beauty of computers
and computer languages is
that you can write a few lines of code,
- it's almost like poetry -
and it will get compiled down
into behaviors for those transistors;
they can implement your code
and do what your code says.
But I think this idea of abstraction
can be applied to biology as well.
We just have to figure out
where that abstraction barrier is.
So, we've been hacking biology
for a long time.
Just as an example, insulin
is currently made in a transgenic yeast
where we've taken a gene
from humans that codes for insulin,
stuck it into the yeast,
and we grow the yeast;
and that's kind of like if you're making
bear and we skim the insulin off the top,
and that's where the world supply
of insulin comes from.
Making a molecule inside a cell
has become pretty standard.
Synthetic biology wants to go
a little bit further and say:
what if we could wrap
some logic around that?
What if we could say: only make
that molecule on specific situations?
Maybe we could do something
like make a gene circuit,
you take the gene circuit,
you put it into a patient,
and the gene circuit
recognizes, using some logic,
"Am I in a cancer cell
or am I in a normal cell?"
And in the normal cell,
it wouldn't make that molecule,
and in the cancer cell, it would,
and maybe that molecule kills cell.
It could be an incredible
specific cancer therapy.
That's the kind of stuff
that synthetic biologists like to work on.
But I actually think
that computer programming
applied to biology could do
even more amazing things than that.
I think the sky is the limit.
If you look at nature and all
of the amazing things that it does,
we could learn to do that too someday,
if we could figure out
how to program biology.
I want to talk a little bit about
what really drives me
to want to program biology.
It's graphs like this.
So, there's time on the X axis
and all sorts of alarming things
on the Y axis:
carbon dioxide, extinctions per year,
the population size, etc.
All of these things are indicators of
a biosphere that's essentially crashing.
From the computer science'
point of view that's alarming
because hundreds of millions of years
of code is just going poof!
It's a beautiful code and it's gone.
And more and more of it
is going away every day.
What are we going to replace it with?
Are we going to wait
another hundred million years
for more code to evolve?
Are we going to breath our way out of this
by breeding new crops and things like that
that take thousands of years
or are we going to learn
to program like nature does?
I think we owe to nature to figure out
how to learn to program biology.
I took these ideas of computer science
and hacking genetics and figure
I would go into the lab
and do some programming.
So I took a really simple program
- basically, turn on, turn off,
turn on, turn off;
it's like a while-loop,
it just goes on and on and on -
and I tried to get that
to work inside cells.
So, here's some yeast cells.
They're yellow right now,
and as I run this,
you'll see they turn off, the yellow,
and then they turn it back on,
and they turn it off, and they turn it on.
It's got some genes from plants in it,
it's got some genes from jellyfish in it,
It's a true transgenic program
where we learned how to program
a little one line of code,
but it's really cool and plant geneticists
and yeast geneticists think it's great.
But computer scientists
look at this and say:
"It's one line of code,
how long did that take you?"
And I say: "Well, it took us
about three years to get this to work."
Not only that, we had to know everything
from the program we wanted to write
all the way down to how
to wash dishes in the lab,
because if we washed them the wrong way,
there'd be stuff left on
and that would screw up our experiments.
I mean, it's literally
that complicated of a process.
In fact, this is what my lab looked like
and still does, more or less.
There's all sort of things
happening in there.
It's an incredibly complicated process
to engineer biology:
you've got test tubes,
you've got equipment,
you've got lab technicians.
you've got to train them,
you've got to figure out all the stuff.
You've got to keep track of thousands
and thousands of samples
and the information contained in them.
So, it's a very complicated process,
and as I'm down there
pipetting colloidal liquids
from one tube into the other,
I kept thinking to myself, "Any day now,
this is going to feel like programming."
(Laughter)
It never really felt like programming,
in fact there aren't any computers there,
and I spent years not programming at all
which for me actually kind of sucks.
So, I began to think:
"Well, maybe I'm thinking about
this programming biology
business the wrong way."
So I started looking at the differences
between computers and biology
because there obviously are some.
So, in computers, you got
a programming manual.
The programming manual tells you all
that's going on inside your computer,
from the hard drives to the monitor,
to the programming languages
and the meaning of all the statements
in your programming language.
You can really use that to write programs,
and you know what's going on.
In biology, you can look at the DNA
for a living organism all you want.
You're not going
to figure out what it does
until you go to the lab
and start doing experiments on it:
"If I change this little bit
of DNA what happens?
If I change that bit of DNA what happens?"
And in order to do
those experiments, you use recipes.
Those have handed down from generation
to generation of biologists,
and this is how you do it:
you learn those recipes
in a sort of master-apprentice way.
That's nothing like computers, where
my kid can learn to program at school.
And because there's no
computer programming manual,
you can't just write code, you can't say:
"I want to build therapy packs,"
and then you start coding it up,
and you have a debugger,
and an online simulator,
and it just allows you to write this code.
What you have to do instead,
is guess at a piece of DNA
that you think is going to work,
and do some experiments on it,
you find what it doesn't work,
- it almost always doesn't work -
and then you tweak it a little bit,
and you run it again,
you tweak it a little bit,
and run it again.
So, [for] every single thing in our lab,
that we got to work with
- and it's only a handful of things -
there's thousands of samples of strains
of yeast and bacteria in our freezer
with DNA, and that essentially,
does nothing.
And that's actually really discouraging
if you're a computer programmer
and you're used to typing a program,
hooking it OK, and seeing
all these things happen.
Here, you make some DNA,
and months later,
you still don't have anything working.
And then, one
of the biggest differences we saw
is that it's hard
to use other people's code.
In computers, if you write a program,
I can take it and run it
on my own computer, and it'll just work,
I can give it to you, and you can write it
on your computer, and it'll work too.
That's an amazing thing
about computer programs.
I took that idea into engineering biology;
I thought, "Well, I read this paper.
They said I could do such and such
a thing with this gene in yeast,
so I should be able to do that
in yeast too in my lab";
And I would try it and it wouldn't work.
"Well, I'm a computer scientist,
what do I know?
I'll just try it again with another paper
and I'll keep going... and it was amazing.
I could never get anybody else's results
to work and I almost quit,
because this seems just ridiculous.
It turned out that it wasn't
actually my problem.
So when a researcher tells you
what they did often in the biology lab,
this is what they give you,
they give you their lab notebook;
but what their lab notebook has in it
is a bunch of stuff that they use
to remember what they did yesterday,
so that they could do
similar things today.
But that doesn't contain
all sort of other information,
it doesn't contain information
that they just take for granted
about how they do these processes.
It doesn't certainly contain
information about things like
whether the refrigerator door
was open too long
and maybe that affected
the results of your experiment,
or what the humidity in the room was,
or what kind glass were you using, right?
All of these things
actually affect the experiments,
and if you don't know them,
you can't reproduce the experiments.
there is study done recently
by some researchers at Amgen
with very well equipped labs
and they have lots of expertise,
where they took 53 seminal results
in cancer biology.
They took all the information
that was published about them
and tried to reproduce those results.
And out of 53 results
they only got six to work.
Just really pathetic!
It's millions of dollars of research money
that has produced results
that nobody else can reproduce.
And it makes progress
in programming biology,
and medicine, and agriculture,
and bioremediation,
and everything else you want
to do with biotechnology,
really slow and prone to error.
So what do we do about this?
As I'm sitting in the lab, pipetting
colloidal liquids, I began to realize
that what we don't want to do
is program the cells directly.
I mean, we eventually do,
but what we probably have to do
is figure out how to program the lab.
All these processes
that are happening in the lab,
there ought to be some programming
language that can represent those,
so that we can do them, over
and over again, and share code, and so on.
We started building
a programming language.
It's a totally new programming language
that allows us not to program computers
but to program the biology lab.
So, in that language, there are,
of course, things like DNA and cells,
that you can refer to, syntactically.
But there's a whole bunch
of other nouns in our language as well,
things like bottles, and plates,
and cells, and test tubes,
these are the things
that you actually manipulate in the lab
in order to do your biology experiments.
And we also added to our language
a whole bunch of verbs
like cut, and heat, and cool,
and stir, and measure.
These are also the kinds of things
you use in the lab to do the experiments.
And when you take all of these notions
and put them together in a language,
you can represent those recipes
in a really formal way,
and say exactly what you want
to have happen with your experiment.
So we prototype this system,
and we called it Aquarium,
and you get to program the lab.
We supply it with a whole bunch of recipes
that you can string together
to make bigger recipes,
kind of like in computers,
where they supply you with codes
that you can use to make scroll bars,
and buttons, and windows.
You don't have to write those again
every time you write a program,
you just include them in your code
and then you build on them.
You can do the same thing with Aquarium,
and then you take your code
that describes your experiments
and you submit them across
the abstraction barrier into the lab.
And in the lab, there is
equipment, and instruments,
and a sample management system,
and technicians who read through
your code and do exactly what it says.
They've been trained to understand
how to interpret this code
and they do your experiments for you.
It's actually that one act
of first specifying what you want
to have happen and then having
somebody else to do it,
that helps solve this problem
of reproducibility;
if that makes any sense.
So, if the technicians are improvising
- by the way, all of that is captured,
there're sensors all over the lab,
all of the samples are tracked,
everything that any instrument
ever did is tracked,
and other things are tracked as well,
temperature, and so on -
and all of that information
is sent back to you,
and from your own point of view,
you wrote a program,
you submitted it to a computer,
and out came information on the other side
the same way that you do
with normal computers.
So you can use that abstraction barrier
to be creative at a certain level
and not have to worry about all details
because they're going to be kept tracked.
And we tried this out on some engineers
who didn't know anything about biology,
but they knew how to program.
We basically taught them
how to program biology in ten weeks.
By the end of the ten weeks,
they were stitching together genes
from little bits of DNA,
were making gene networks where they
take genes and hook them up into networks
that can do interesting programs,
and they were taking those gene networks
and putting them into the bacteria
and testing the bacteria
to see if they did what they did.
They did in ten weeks,
what used to take us months,
and months, and months to get to work.
And it was really reproducible, too.
They all had to take their code,
and had other technicians run it as well,
and for the most part, they are all able
to get the other technicians
to reproduce the results from the outset,
because they have coded in this language.
So, this Aquarium idea,
this idea of programming the lab,
enables us to build
new biotechnology, new living devices
by making things more reproducible.
Maybe by doing this, we can make so
that there is 52 out of 53 results
instead of 6 out of 53 results.
And so, by programming the lab,
I think what we can do is make it so
that we put the element of creativity
back into programming for biology,
that we can share each other's results
- we can build on results
that other labs produce -
and that the entire field can move
faster and more reliably
towards a biotechnology that works for us.
And ultimately,
I think we can use those programs
of living systems that we built
to solve some of the really important
problems facing us today.
Thanks.
(Applause)
