WEBVTT

00:00:00.060 --> 00:00:01.518
ANNOUNCER: The
following content is

00:00:01.518 --> 00:00:04.019
provided under a
Creative Commons license.

00:00:04.019 --> 00:00:06.870
Your support will help MIT
OpenCourseWare continue

00:00:06.870 --> 00:00:10.730
to offer high quality
educational resources for free.

00:00:10.730 --> 00:00:13.330
To make a donation or
view additional materials

00:00:13.330 --> 00:00:17.236
from hundreds of MIT courses,
visit MIT OpenCourseWare

00:00:17.236 --> 00:00:17.861
at ocw.mit.edu.

00:00:26.747 --> 00:00:27.330
PROFESSOR: OK.

00:00:30.930 --> 00:00:33.930
Welcome back to
computational systems biology

00:00:33.930 --> 00:00:35.910
We have the honor
today of having

00:00:35.910 --> 00:00:38.880
Professor Ron Weiss visit us.

00:00:38.880 --> 00:00:40.517
As I told you on
Tuesday, he's going

00:00:40.517 --> 00:00:41.850
to talk about synthetic biology.

00:00:41.850 --> 00:00:45.810
And Ron is probably
from both the department

00:00:45.810 --> 00:00:49.770
of biological engineering and
the Computer Science department

00:00:49.770 --> 00:00:52.245
and also a founding member
of the Synthetic Biology

00:00:52.245 --> 00:00:53.235
Center at MIT.

00:00:53.235 --> 00:00:54.319
And now, thank you, Ron.

00:00:54.319 --> 00:00:54.819
PROF.

00:00:54.819 --> 00:00:55.944
RON WEISS: Thank you, Dave.

00:00:55.944 --> 00:00:57.690
Thanks for inviting me here.

00:00:57.690 --> 00:00:59.760
Did you mention our background?

00:00:59.760 --> 00:01:02.850
Dave was actually--
advised me when I first

00:01:02.850 --> 00:01:06.250
came to our graduate
school at MIT.

00:01:06.250 --> 00:01:09.840
And at the time, I was
working on digital video

00:01:09.840 --> 00:01:11.130
and information retrieval.

00:01:11.130 --> 00:01:14.410
And Dave started getting
into the business of biology.

00:01:14.410 --> 00:01:16.150
This is back in the early '90s.

00:01:16.150 --> 00:01:20.640
And I was like, this is cool
stuff but it's really messy.

00:01:20.640 --> 00:01:22.791
How can you engineer
with these molecules?

00:01:22.791 --> 00:01:24.624
PROFESSOR: And we've
got the answer to that.

00:01:24.624 --> 00:01:25.124
PROF.

00:01:25.124 --> 00:01:26.520
RON WEISS: Yeah.

00:01:26.520 --> 00:01:27.250
So we'll see.

00:01:27.250 --> 00:01:31.150
So let's see if the answer
is-- it does actually work.

00:01:31.150 --> 00:01:36.615
So yeah, so I-- after being
a non-believer-- I don't know

00:01:36.615 --> 00:01:39.730
if non-believer, but just--
I didn't feel I quite

00:01:39.730 --> 00:01:44.190
had the engineering
capabilities.

00:01:44.190 --> 00:01:49.860
Towards around '96
or so is when I

00:01:49.860 --> 00:01:52.920
decided to actually
make the switch.

00:01:56.530 --> 00:01:58.640
At the time, I was
working-- around '96,

00:01:58.640 --> 00:02:03.150
I was working at this
notion of how can we

00:02:03.150 --> 00:02:07.320
use what we know in biology
to understand how we program

00:02:07.320 --> 00:02:10.560
computers and especially
situations where you have

00:02:10.560 --> 00:02:14.280
lots and lots of computing
elements like-- things

00:02:14.280 --> 00:02:14.890
like smartDOS.

00:02:14.890 --> 00:02:17.750
I don't know if people have
heard, but amorphous computing.

00:02:17.750 --> 00:02:21.200
So back in the mid
'90s or so, this notion

00:02:21.200 --> 00:02:26.520
that we would be able to
embed computation everywhere

00:02:26.520 --> 00:02:29.240
was kind of an exciting notion.

00:02:29.240 --> 00:02:32.810
And I thought to myself, where--
how could I get inspired?

00:02:32.810 --> 00:02:35.760
And I thought, well,
biology obviously

00:02:35.760 --> 00:02:37.230
could serve as
great inspiration.

00:02:37.230 --> 00:02:40.660
Because that's a situation where
you have millions or billions

00:02:40.660 --> 00:02:43.080
of little computing
elements that

00:02:43.080 --> 00:02:46.790
don't have too much power,
kind of interact locally.

00:02:46.790 --> 00:02:50.580
But they still perform
very robust operations.

00:02:50.580 --> 00:02:54.240
And so I performed a
variety of simulations,

00:02:54.240 --> 00:02:57.740
for example, of embryogenesis
and other processes

00:02:57.740 --> 00:03:00.180
to try to understand what
happens in biology and can

00:03:00.180 --> 00:03:02.530
I again use that to
program computers

00:03:02.530 --> 00:03:04.765
or little tiny computers.

00:03:04.765 --> 00:03:07.760
And I remember one
day, I just decided

00:03:07.760 --> 00:03:11.600
to flip the arrow and
basically rather than trying

00:03:11.600 --> 00:03:15.840
to use biology to understand or
program computers, I decided,

00:03:15.840 --> 00:03:20.070
let me use what I know
in computing to actually

00:03:20.070 --> 00:03:21.930
try to program biology, OK?

00:03:21.930 --> 00:03:25.180
And so now that
field is basically

00:03:25.180 --> 00:03:27.000
called synthetic biology.

00:03:27.000 --> 00:03:30.300
So I've been in that field--
it's hard to count now,

00:03:30.300 --> 00:03:33.430
but I guess maybe
18 years or so.

00:03:33.430 --> 00:03:38.020
And it's been fun and
has not been easy.

00:03:38.020 --> 00:03:39.780
But I think at
least we're starting

00:03:39.780 --> 00:03:42.330
to make some-- we're
making some progress.

00:03:42.330 --> 00:03:45.530
So I'll try to tell you about
some of our efforts there.

00:03:45.530 --> 00:03:48.800
And I certainly encourage
you to ask me questions.

00:03:48.800 --> 00:03:52.780
So please interrupt me
at any point in time.

00:03:52.780 --> 00:03:55.570
Any kind of question
is fair game.

00:03:55.570 --> 00:03:58.590
Dave promised me that you
guys are a tough crowd.

00:03:58.590 --> 00:03:59.910
So let's see.

00:04:02.570 --> 00:04:05.070
And you can always stump.

00:04:05.070 --> 00:04:07.730
Let's try to have that happen.

00:04:07.730 --> 00:04:14.586
So when I look at this, I get
excited as an engineer, OK?

00:04:14.586 --> 00:04:15.710
And I think to myself, wow.

00:04:15.710 --> 00:04:18.510
This could be really cool to
be able to program something

00:04:18.510 --> 00:04:20.410
like this, again,
in the same way

00:04:20.410 --> 00:04:22.300
that we may program computers.

00:04:22.300 --> 00:04:28.420
And so this notion of genetic
engineering in a direct way,

00:04:28.420 --> 00:04:32.520
in a way where we
can create new DNA,

00:04:32.520 --> 00:04:36.670
certainly has been around
since the '70s or so.

00:04:36.670 --> 00:04:39.830
And so this notion
has allowed us

00:04:39.830 --> 00:04:42.600
as a community to create
various mechanisms that

00:04:42.600 --> 00:04:43.890
control what the cells do.

00:04:43.890 --> 00:04:47.530
So for example, transcriptional
regulation, translational-- so

00:04:47.530 --> 00:04:49.820
being able to regulate
things in a cell,

00:04:49.820 --> 00:04:55.140
be able to create
genetically encoded sensors,

00:04:55.140 --> 00:04:58.130
cell-cell communication
mechanisms, synthesis

00:04:58.130 --> 00:05:01.760
of various interesting
molecules--

00:05:01.760 --> 00:05:06.300
biofuels, pharmaceuticals,
and control physical aspects.

00:05:06.300 --> 00:05:10.240
And so those capabilities
have been around

00:05:10.240 --> 00:05:11.690
before synthetic biology.

00:05:11.690 --> 00:05:14.990
But if you were
to ask me what is

00:05:14.990 --> 00:05:16.520
different about
synthetic biology,

00:05:16.520 --> 00:05:20.000
I would say it's really the
emphasis on systems level

00:05:20.000 --> 00:05:21.170
engineering.

00:05:21.170 --> 00:05:23.470
OK, so this notion
that we are not just

00:05:23.470 --> 00:05:26.860
trying to engineer
over expression

00:05:26.860 --> 00:05:29.520
of this gene or that gene
or a couple of genes,

00:05:29.520 --> 00:05:31.620
but really trying
to understand how

00:05:31.620 --> 00:05:33.650
to create systems
of interactions.

00:05:33.650 --> 00:05:37.280
So in the same way that
systems biology has

00:05:37.280 --> 00:05:39.240
come to the forefront
with this notion

00:05:39.240 --> 00:05:43.800
that you can't understand a
cell by understanding what

00:05:43.800 --> 00:05:46.770
is the exact purpose of this
particular gene-- we always

00:05:46.770 --> 00:05:49.590
have to think about it within
the context of a pathway

00:05:49.590 --> 00:05:54.100
within the context of the entire
organism-- in the same way,

00:05:54.100 --> 00:05:56.890
when we want to be able to get
cells to do interesting things,

00:05:56.890 --> 00:05:59.340
we have to think about
the system as a whole.

00:05:59.340 --> 00:06:02.610
And to get the
sophistication that we need,

00:06:02.610 --> 00:06:07.310
we need to understand how to
connect these various elements,

00:06:07.310 --> 00:06:09.883
regulatory elements, all
these kinds of elements,

00:06:09.883 --> 00:06:13.320
in reliable, predictable
ways, efficient ways

00:06:13.320 --> 00:06:16.490
and so on to be able
to get the cells to be

00:06:16.490 --> 00:06:18.850
as programmable as computers.

00:06:18.850 --> 00:06:22.970
So that if you were to ask
me what synthetic biology is,

00:06:22.970 --> 00:06:25.237
that would be my answer.

00:06:25.237 --> 00:06:27.570
And so now you know it and
you can tell all your friends

00:06:27.570 --> 00:06:31.879
that it's a completely
defined notion and so on.

00:06:31.879 --> 00:06:33.420
Maybe if yo ask
other people, they'll

00:06:33.420 --> 00:06:34.920
give you slightly
different answers.

00:06:34.920 --> 00:06:35.870
But there you go.

00:06:35.870 --> 00:06:40.157
So how do we develop an
engineering discipline out

00:06:40.157 --> 00:06:41.160
of that?

00:06:41.160 --> 00:06:44.390
OK, so that's really how
can we get undergrads

00:06:44.390 --> 00:06:50.080
to come in and take Synbio
101 where it's really

00:06:50.080 --> 00:06:54.960
a well defined mechanism and set
of methodologies and practices

00:06:54.960 --> 00:06:57.400
that allow us to
do this reliably.

00:06:57.400 --> 00:07:01.540
OK, and so we often
try to get inspired

00:07:01.540 --> 00:07:04.280
by how other
disciplines approach

00:07:04.280 --> 00:07:06.400
the engineering of
complex systems.

00:07:06.400 --> 00:07:08.160
And so kind of an
obvious one would

00:07:08.160 --> 00:07:11.160
be of computing
or robotics where

00:07:11.160 --> 00:07:14.960
there's this notion of, for
example, bottom up assembly.

00:07:14.960 --> 00:07:17.530
And so you start
with basic devices

00:07:17.530 --> 00:07:20.260
and think about how
to create modules

00:07:20.260 --> 00:07:23.790
that have specific behaviors in
them and then put those modules

00:07:23.790 --> 00:07:27.000
and integrate those modules
to create these autonomous

00:07:27.000 --> 00:07:28.720
entities such as robots.

00:07:28.720 --> 00:07:31.950
And we often think about
how to create communities

00:07:31.950 --> 00:07:36.000
of interactions, communities of
robots in this case, and so on.

00:07:36.000 --> 00:07:38.570
And so that's worked
quite well in a variety

00:07:38.570 --> 00:07:40.915
of different other
engineering disciplines.

00:07:40.915 --> 00:07:42.290
And so we often
ask the question,

00:07:42.290 --> 00:07:47.010
can we import these mechanisms
into the world of biology?

00:07:47.010 --> 00:07:51.170
So can we take basic
mechanisms of regulation--

00:07:51.170 --> 00:07:52.830
it could be
transcriptional, it could

00:07:52.830 --> 00:07:56.480
be other modes of regulation--
and then wind these things up

00:07:56.480 --> 00:08:01.160
to create customizable pathways
that we then embed into cells?

00:08:01.160 --> 00:08:04.850
And then we can create
programmable communities

00:08:04.850 --> 00:08:05.650
of bacteria.

00:08:05.650 --> 00:08:08.820
We can create programmable
tissues of mammalian cells

00:08:08.820 --> 00:08:09.590
and so on.

00:08:09.590 --> 00:08:15.209
And so the question is, is
this a useful and efficient way

00:08:15.209 --> 00:08:16.000
to approach things?

00:08:16.000 --> 00:08:19.930
So for example, how are these
different approaches similar?

00:08:19.930 --> 00:08:21.870
What can we borrow
from here that

00:08:21.870 --> 00:08:24.510
make sense to push
on over there?

00:08:24.510 --> 00:08:27.190
And I will say when
I started working

00:08:27.190 --> 00:08:28.960
in synthetic biology,
most of my efforts

00:08:28.960 --> 00:08:33.669
were really focused on
adapting and implementing

00:08:33.669 --> 00:08:36.210
these things-- so adapting
them from other disciplines

00:08:36.210 --> 00:08:38.940
and trying to understand how to
implement them into the world

00:08:38.940 --> 00:08:39.860
the biology.

00:08:39.860 --> 00:08:42.500
But as time has
gone by and as we've

00:08:42.500 --> 00:08:45.890
started to understand and
appreciate the cell more

00:08:45.890 --> 00:08:49.750
and more, we are also
quite interested in how

00:08:49.750 --> 00:08:51.650
these things are
different as well.

00:08:51.650 --> 00:08:55.920
So what makes engineering
biological systems

00:08:55.920 --> 00:08:59.000
a truly unique, new
engineering discipline?

00:08:59.000 --> 00:09:00.959
What would you do in
the world of biology

00:09:00.959 --> 00:09:02.750
that might be different
than what you would

00:09:02.750 --> 00:09:08.960
do with computers or robots
or building bridges and cars

00:09:08.960 --> 00:09:10.240
and planes and so on?

00:09:10.240 --> 00:09:14.380
And so that that's become more
and more of an important focus

00:09:14.380 --> 00:09:17.500
in my lab and I think in
the community as a whole

00:09:17.500 --> 00:09:20.530
although not yet everywhere.

00:09:20.530 --> 00:09:22.810
And you often see
situations where

00:09:22.810 --> 00:09:25.240
people come in from other
disciplines and just think,

00:09:25.240 --> 00:09:27.120
oh, we'll just program
it, engineer it,

00:09:27.120 --> 00:09:29.890
just like we do in
computing and so on.

00:09:29.890 --> 00:09:34.090
And it doesn't just
work like that.

00:09:34.090 --> 00:09:39.880
So when we approach these
tasks of programming the cells,

00:09:39.880 --> 00:09:44.880
we usually divide things up into
modules of sensors, processing,

00:09:44.880 --> 00:09:46.430
and actuation.

00:09:46.430 --> 00:09:51.080
So for example, we would
want to develop sensors

00:09:51.080 --> 00:09:54.825
that can detect in live cells
levels of microRNA messenger

00:09:54.825 --> 00:10:00.030
and then proteins
and then connect them

00:10:00.030 --> 00:10:04.560
to synthetic regulatory circuits
that we embed in the cells, OK?

00:10:04.560 --> 00:10:07.630
So it's important that these
sensors not just, for example,

00:10:07.630 --> 00:10:10.400
give us fluorescent
readouts, but it's important

00:10:10.400 --> 00:10:13.660
that these sensors then connect
to the regulatory networks

00:10:13.660 --> 00:10:17.070
that we have in mind and so that
these regulatory networks can

00:10:17.070 --> 00:10:20.530
then integrate multiple
pieces of information

00:10:20.530 --> 00:10:23.760
and make decisions
about actuation.

00:10:23.760 --> 00:10:30.330
So how do we turn on specific
proteins that will then

00:10:30.330 --> 00:10:33.250
influence that
particular cell or even

00:10:33.250 --> 00:10:36.870
the environment in a
programmable fashion

00:10:36.870 --> 00:10:41.680
as dictated by the levels
of particular sensors

00:10:41.680 --> 00:10:44.410
as well as by other
mechanisms or, for example,

00:10:44.410 --> 00:10:47.760
from looking at
historical information

00:10:47.760 --> 00:10:50.910
that the cell itself
has processed as well?

00:10:50.910 --> 00:10:55.570
And so this is, I
would say, represents

00:10:55.570 --> 00:10:57.970
the paradigm for most
of the things that

00:10:57.970 --> 00:11:00.480
do take place in
synthetic biology.

00:11:00.480 --> 00:11:02.380
And so why do we
want to do this?

00:11:02.380 --> 00:11:08.120
It's not the program the next
version of the iOS or iPhone

00:11:08.120 --> 00:11:10.170
or something like that.

00:11:10.170 --> 00:11:11.980
even though that
initially that was

00:11:11.980 --> 00:11:14.230
one of the things
that was discussed,

00:11:14.230 --> 00:11:16.920
it's not just for the
sake of computation,

00:11:16.920 --> 00:11:20.630
but really for the sake
of specific applications.

00:11:20.630 --> 00:11:25.230
So for example, if we have
really slow logic gates that

00:11:25.230 --> 00:11:29.660
work on the order of
hours or even days,

00:11:29.660 --> 00:11:33.020
that might be fine if the
application, for example,

00:11:33.020 --> 00:11:36.300
is a tissue engineering
application, OK?

00:11:36.300 --> 00:11:40.110
And so in synthetic
biology, initial emphasis

00:11:40.110 --> 00:11:45.460
is really been on what
can we do with microbial,

00:11:45.460 --> 00:11:48.700
let's say, communities or
individuals, for example,

00:11:48.700 --> 00:11:50.550
for synthesis of
high value compounds?

00:11:50.550 --> 00:11:53.550
I mentioned bioenergy,
environmental applications

00:11:53.550 --> 00:11:54.280
as well.

00:11:54.280 --> 00:11:57.770
So that, I would say, was
most of the emphasis there.

00:11:57.770 --> 00:11:59.680
But over the last
few years, there's

00:11:59.680 --> 00:12:03.440
been a growing interest in
health-related applications.

00:12:03.440 --> 00:12:09.280
And so my lab in particular
looks at mostly health related

00:12:09.280 --> 00:12:09.960
applications.

00:12:09.960 --> 00:12:15.480
And so I'll give you
examples of those today, OK?

00:12:15.480 --> 00:12:20.450
And those include things
involved with cancer, diabetes,

00:12:20.450 --> 00:12:22.340
in tissues by design.

00:12:22.340 --> 00:12:24.380
And in order to
do this, in order

00:12:24.380 --> 00:12:27.870
to have this programmability,
you want to think about scales.

00:12:27.870 --> 00:12:33.150
So you want to think about how
much DNA does it take to do X?

00:12:33.150 --> 00:12:38.470
And to a large extent, that
controls the sophistication.

00:12:38.470 --> 00:12:41.840
It really is an important
defining element

00:12:41.840 --> 00:12:46.080
what we do is the
scale of the DNA

00:12:46.080 --> 00:12:49.560
that we can actually
engineer reliably quickly,

00:12:49.560 --> 00:12:52.820
efficiently, predictably,
in high throughput fashion,

00:12:52.820 --> 00:12:55.260
and in inexpensive ways.

00:12:55.260 --> 00:13:01.860
So we would start with
things on the order of genes

00:13:01.860 --> 00:13:05.180
where I would say that that's
really the basic elements.

00:13:05.180 --> 00:13:09.000
I would say that a single
gene that you overexposes

00:13:09.000 --> 00:13:11.700
or a few genes than
you inducibly express,

00:13:11.700 --> 00:13:15.870
I wouldn't count that
as synthetic biology.

00:13:15.870 --> 00:13:17.970
But when it gets
kind of interesting

00:13:17.970 --> 00:13:20.470
for synthetic biology is
when we have this circuitry,

00:13:20.470 --> 00:13:25.400
where we now embed interactions
that didn't previously

00:13:25.400 --> 00:13:28.100
exist in that
particular cell context.

00:13:28.100 --> 00:13:32.170
And so most of synthetic biology
has been really at this level

00:13:32.170 --> 00:13:34.590
right here-- actually,
mostly from here

00:13:34.590 --> 00:13:37.560
to here in terms of
the scale of the DNA

00:13:37.560 --> 00:13:41.290
and now trying to go beyond
that-- more along the lines

00:13:41.290 --> 00:13:45.650
can we create something
that's 20,000 bases, 50,000

00:13:45.650 --> 00:13:47.650
bases of DNA?

00:13:47.650 --> 00:13:52.080
OK, is this something that
a graduate student can

00:13:52.080 --> 00:13:54.920
come into the lab
and say, I want

00:13:54.920 --> 00:13:59.120
to design something that will
take 20,000 to 50,000 bases?

00:13:59.120 --> 00:14:02.670
Is this a reasonable
thing to consider?

00:14:02.670 --> 00:14:05.830
OK, and then the question
would be, what kind of power

00:14:05.830 --> 00:14:07.080
does that provide to you?

00:14:07.080 --> 00:14:09.620
What things can
you do with that?

00:14:09.620 --> 00:14:13.480
Beyond that, people have
explored this notion

00:14:13.480 --> 00:14:17.930
of minimal life and even
full genome rewrites.

00:14:17.930 --> 00:14:20.690
I would say at this
point, this is--

00:14:20.690 --> 00:14:23.400
what some people clump that in
with synthetic biology, which

00:14:23.400 --> 00:14:24.930
is fine.

00:14:24.930 --> 00:14:28.450
We don't have, at the
moment, really good ways

00:14:28.450 --> 00:14:33.190
of being able to engineer
minimal life from scratch

00:14:33.190 --> 00:14:37.600
or even in a really
fundamentally different way.

00:14:37.600 --> 00:14:39.670
So most of the efforts
on minimal life

00:14:39.670 --> 00:14:41.590
would be take an
organism and try

00:14:41.590 --> 00:14:45.010
to figure out what to knock out,
right, as opposed to saying,

00:14:45.010 --> 00:14:49.010
I'm going to engineer
this new minimal organism.

00:14:49.010 --> 00:14:51.210
And I'm going to
define what reactions

00:14:51.210 --> 00:14:52.460
to put in there from scratch.

00:14:52.460 --> 00:14:54.501
And I'm going to create
a whole bunch of new ones

00:14:54.501 --> 00:14:56.500
that didn't exist before.

00:14:56.500 --> 00:15:00.430
OK, in the future, will
we be able to do this?

00:15:00.430 --> 00:15:03.230
Hopefully, OK?

00:15:03.230 --> 00:15:07.550
Not quite yet-- this is really
where the action of right now.

00:15:07.550 --> 00:15:10.020
And again, driving
force for this

00:15:10.020 --> 00:15:14.570
is how inexpensive
is DNA synthesis.

00:15:14.570 --> 00:15:18.070
And so we're following
some kind of Moore's law

00:15:18.070 --> 00:15:22.640
with respect to dropping costs
in terms of DNA synthesis.

00:15:22.640 --> 00:15:25.560
And this is one
of the enabling--

00:15:25.560 --> 00:15:29.250
I don't know if it's-- it's not
the only enabling technology.

00:15:29.250 --> 00:15:31.500
But is one of the most
important enabling technologies

00:15:31.500 --> 00:15:35.040
is the fact that
it is less and less

00:15:35.040 --> 00:15:38.920
expensive to be
able to order longer

00:15:38.920 --> 00:15:41.310
and longer sequences of DNA.

00:15:41.310 --> 00:15:44.780
And so this notion
that, for example,

00:15:44.780 --> 00:15:47.910
you'll be able to design
something that's, again,

00:15:47.910 --> 00:15:51.580
that's 20,000 to
50,000 bases of DNA

00:15:51.580 --> 00:15:54.220
and just go online
and order to that

00:15:54.220 --> 00:15:59.250
and have your advisor
willingly pay for that-- not

00:15:59.250 --> 00:16:02.540
at the level of 20,000
to 50,000 bases yet.

00:16:02.540 --> 00:16:04.110
But that's going to change.

00:16:04.110 --> 00:16:05.610
And that's going
to get to the point

00:16:05.610 --> 00:16:10.770
where those really become
available to everyone.

00:16:10.770 --> 00:16:13.240
And I think that's going
to fundamentally change

00:16:13.240 --> 00:16:16.130
how we do business in
biological engineering

00:16:16.130 --> 00:16:18.320
and how we do, I would
say, almost everything

00:16:18.320 --> 00:16:20.440
in biology as a whole.

00:16:20.440 --> 00:16:23.100
So if you have-- even if you
don't care about engineering

00:16:23.100 --> 00:16:24.970
new biological
functions but you want

00:16:24.970 --> 00:16:28.610
to understand biological systems
and your adviser told you,

00:16:28.610 --> 00:16:32.500
well, just design a whole bunch
of circuits that will allow you

00:16:32.500 --> 00:16:34.960
to regulate things
in arbitrary ways

00:16:34.960 --> 00:16:38.330
to learn something about
the underlying networks that

00:16:38.330 --> 00:16:41.850
control a natural
systems, again, I

00:16:41.850 --> 00:16:45.750
think that that fundamentally
changes what kinds of questions

00:16:45.750 --> 00:16:47.840
you will ask.

00:16:47.840 --> 00:16:51.500
OK, so I'll talk
about basic design.

00:16:51.500 --> 00:16:53.180
I'll talk about scalability.

00:16:53.180 --> 00:16:55.550
So how do we go from
these basic elements

00:16:55.550 --> 00:16:57.140
to bigger and bigger things?

00:16:57.140 --> 00:16:59.880
And then I'll talk
about some recent things

00:16:59.880 --> 00:17:05.810
that we're doing where we're
building this foundation.

00:17:05.810 --> 00:17:09.290
But we think that this
foundation then can matter.

00:17:09.290 --> 00:17:13.970
I think this foundation can
change how you approach things

00:17:13.970 --> 00:17:18.089
that really don't have
the greatest of solutions.

00:17:18.089 --> 00:17:21.030
Now, they really change
the paradigm, for example,

00:17:21.030 --> 00:17:26.310
for cancer, for this
notion of building tissues

00:17:26.310 --> 00:17:29.830
by design on chips and
for diabetes and so on.

00:17:29.830 --> 00:17:34.440
OK, so we start with parts.

00:17:34.440 --> 00:17:37.130
So just about
everything that we do,

00:17:37.130 --> 00:17:39.470
we define what are
the basic parts that

00:17:39.470 --> 00:17:42.030
are available in our toolbox.

00:17:42.030 --> 00:17:44.440
And so these will be
transcriptional regulatory

00:17:44.440 --> 00:17:44.940
parts.

00:17:44.940 --> 00:17:47.270
We do things at the
translational level.

00:17:47.270 --> 00:17:50.170
We do things also at the
protein-protein level.

00:17:50.170 --> 00:17:52.820
One of the things we
often do, not always,

00:17:52.820 --> 00:17:56.080
is engineer cell-cell
interactions.

00:17:56.080 --> 00:17:58.510
Could be by means of
cell-cell communication.

00:17:58.510 --> 00:18:01.230
We often want to find out
what's going on in the cell.

00:18:01.230 --> 00:18:05.250
So just like when
we program-- where

00:18:05.250 --> 00:18:08.260
we create a new software,
new computer program,

00:18:08.260 --> 00:18:10.590
we have debugging
outputs that tell us

00:18:10.590 --> 00:18:12.380
what the program is doing.

00:18:12.380 --> 00:18:15.530
Usually, the way we do this
is with fluorescent protein.

00:18:15.530 --> 00:18:17.930
It could be with dyes too.

00:18:17.930 --> 00:18:20.110
So they tell us,
you know, here's

00:18:20.110 --> 00:18:21.490
how your circuit is behaving.

00:18:21.490 --> 00:18:23.900
Here's how the cell
might be behaving.

00:18:23.900 --> 00:18:25.750
And another set
of parts would be

00:18:25.750 --> 00:18:28.980
ones where we want to be
able to create sensors

00:18:28.980 --> 00:18:32.070
and actuators inside the cell.

00:18:32.070 --> 00:18:34.670
What are specific
biomarker levels?

00:18:34.670 --> 00:18:38.070
How can we affect what
the cell is doing?

00:18:38.070 --> 00:18:40.470
For example, one
that gets used a lot

00:18:40.470 --> 00:18:43.800
is kill the cell is one
of the favorite actuators

00:18:43.800 --> 00:18:45.015
that people are using.

00:18:45.015 --> 00:18:48.880
Another one would be, let's
say, tell this stem cell

00:18:48.880 --> 00:18:52.050
to differentiate into
a different cell type.

00:18:52.050 --> 00:18:53.840
That would be another
kind of actuator.

00:18:53.840 --> 00:18:58.010
A different one might make the
cell-- make this high value

00:18:58.010 --> 00:19:01.370
compound that would be
relevant for some application.

00:19:01.370 --> 00:19:06.360
And so right now, if
you're looking for parts,

00:19:06.360 --> 00:19:12.120
they actually used to be
stored in Stata up until--

00:19:12.120 --> 00:19:15.120
or big libraries of
synthetic biology parts

00:19:15.120 --> 00:19:19.125
were stored in Stata that up
until about two years or so.

00:19:19.125 --> 00:19:21.630
So I don't know how many
people know about iGEM.

00:19:21.630 --> 00:19:23.170
Any folks know about iGEM?

00:19:23.170 --> 00:19:28.250
So iGEM was started at
MIT, was headquartered,

00:19:28.250 --> 00:19:30.070
as I mentioned again
here, in Stata.

00:19:30.070 --> 00:19:34.175
There are these couple of
big freezer that were on the,

00:19:34.175 --> 00:19:36.820
I think, the fourth floor here.

00:19:36.820 --> 00:19:41.170
And they stored
5,000 to 10,000 parts

00:19:41.170 --> 00:19:44.300
that word commonly used by
synthetic biology folks.

00:19:44.300 --> 00:19:46.410
OK, so now they
moved over closer

00:19:46.410 --> 00:19:49.500
to Cambridge brewing company.

00:19:49.500 --> 00:19:52.930
And they're not affiliated
directly with MIT anymore

00:19:52.930 --> 00:19:55.810
and they have 15,000
parts or so available.

00:19:55.810 --> 00:19:58.470
So if you want to get
started in synthetic biology,

00:19:58.470 --> 00:20:00.470
this is one quick
way to do that.

00:20:00.470 --> 00:20:03.870
You can contact iGEM
headquarters and say, please

00:20:03.870 --> 00:20:07.300
send me 1,000 parts, OK?

00:20:07.300 --> 00:20:09.260
And as long as you're
credible and not

00:20:09.260 --> 00:20:14.030
from one of those
blacklisted countries,

00:20:14.030 --> 00:20:18.160
then they typically
will send it to you.

00:20:18.160 --> 00:20:21.220
So that's a good way
to get started, OK?

00:20:21.220 --> 00:20:23.200
So what are these parts?

00:20:23.200 --> 00:20:28.724
So this is actually going
back to my Ph.D. here.

00:20:28.724 --> 00:20:30.640
This is one of the parts
that I characterized.

00:20:30.640 --> 00:20:33.970
So this notion of an inverter--
so digital logic convert.

00:20:33.970 --> 00:20:35.790
So I assume people
here-- everybody

00:20:35.790 --> 00:20:38.720
is familiar with logic gates.

00:20:38.720 --> 00:20:40.335
Is that true?

00:20:40.335 --> 00:20:45.370
OK, raise your hand if
you are familiar with it.

00:20:45.370 --> 00:20:47.110
I just want to see- oh.

00:20:47.110 --> 00:20:51.910
Just trying to calibrate--
and again, ask me questions.

00:20:51.910 --> 00:20:55.740
So this notion that you have
a single input, single output

00:20:55.740 --> 00:21:01.700
device that works on binary
values that has-- basically

00:21:01.700 --> 00:21:02.500
inverts the signal.

00:21:02.500 --> 00:21:03.460
So you have zero on the input.

00:21:03.460 --> 00:21:04.240
You have one on the output.

00:21:04.240 --> 00:21:06.290
One in the input, you
have zero in the output.

00:21:06.290 --> 00:21:08.390
And so one of the
ways in which you

00:21:08.390 --> 00:21:11.480
can implement this in
a biological system

00:21:11.480 --> 00:21:14.050
is just use
transcriptional repression.

00:21:14.050 --> 00:21:16.680
OK, so if you have
no repressor present,

00:21:16.680 --> 00:21:18.690
then you have a high
level of output protein.

00:21:18.690 --> 00:21:20.590
If you have a
repressor present, it

00:21:20.590 --> 00:21:22.800
represses the production
of the alpha protein.

00:21:22.800 --> 00:21:25.650
And so in theory, you
should be able to use

00:21:25.650 --> 00:21:28.620
this as a digital logic gate.

00:21:28.620 --> 00:21:32.700
OK, and so that-- sounds--
looks pretty simple here.

00:21:32.700 --> 00:21:35.490
But for my Ph.D., it
took me about three years

00:21:35.490 --> 00:21:39.260
to do something like this just
to give you an indication.

00:21:39.260 --> 00:21:40.200
Now it's a lot faster.

00:21:40.200 --> 00:21:44.856
Now you can do this in-- you
can do many of those in a day.

00:21:44.856 --> 00:21:45.980
So there has been progress.

00:21:45.980 --> 00:21:49.120
Here's another one of those
gates that I used for my Ph.D.

00:21:49.120 --> 00:21:54.090
And so this is now not just a
repressor, but a repressor that

00:21:54.090 --> 00:21:58.290
can be inactivated by
a small molecule, OK?

00:21:58.290 --> 00:22:00.910
And so the way it
works is you have

00:22:00.910 --> 00:22:04.110
this repressor that
works as before.

00:22:04.110 --> 00:22:06.240
And then when a small
molecule comes in,

00:22:06.240 --> 00:22:09.370
it prevents a repressor
from binding the promoter.

00:22:09.370 --> 00:22:12.280
And as a result of that, even
if the repressor is present,

00:22:12.280 --> 00:22:15.520
you can have activation
of the output protein, OK?

00:22:15.520 --> 00:22:21.650
So this is what's called a
not x or y or it implements

00:22:21.650 --> 00:22:23.570
the implies logic function.

00:22:23.570 --> 00:22:28.126
How many people use the implies
logic function to do anything?

00:22:28.126 --> 00:22:29.320
OK.

00:22:29.320 --> 00:22:33.560
So it's not a commonly
used logic function.

00:22:33.560 --> 00:22:35.900
And you won't find it--
there's no logic gate that

00:22:35.900 --> 00:22:38.970
does the implies logic
function in a typical computer.

00:22:38.970 --> 00:22:41.789
But this is a useful
logic function

00:22:41.789 --> 00:22:43.080
that we can implement in cells.

00:22:43.080 --> 00:22:48.660
And it allows external control
of gene expression, OK?

00:22:48.660 --> 00:22:50.500
And so this is a
simple way-- and so

00:22:50.500 --> 00:22:53.000
once you can do that as
a user, essentially you

00:22:53.000 --> 00:22:54.840
can interact with
the cells and modify

00:22:54.840 --> 00:22:58.690
what's going on inside the
cell, OK, using a pretty simple

00:22:58.690 --> 00:23:03.090
looking mechanism that predates
synthetic biology, if you will.

00:23:03.090 --> 00:23:05.580
But I don't know if it was
called the implies logic

00:23:05.580 --> 00:23:06.810
function before.

00:23:06.810 --> 00:23:12.990
So anyway, so then logic gates--
can we build logic circuits?

00:23:12.990 --> 00:23:15.120
This is where I would
say synthetic biology

00:23:15.120 --> 00:23:16.500
starts kicking in.

00:23:16.500 --> 00:23:19.680
And so this is one of the first
logic circuits that we built.

00:23:19.680 --> 00:23:24.060
And the question was, OK-- looks
nice to have this logic gate

00:23:24.060 --> 00:23:25.220
representation.

00:23:25.220 --> 00:23:28.850
In biology, does this
make any sense at all?

00:23:28.850 --> 00:23:33.670
Can you really do digital
logic inside cells?

00:23:33.670 --> 00:23:37.350
Can you take noisy
biological components

00:23:37.350 --> 00:23:41.520
and actually implement reliable
digital computation in cells?

00:23:41.520 --> 00:23:45.410
And it wasn't an obvious
thing, I would say.

00:23:45.410 --> 00:23:48.160
Is it 100% obvious now?

00:23:48.160 --> 00:23:50.240
In some situations,
I think we can

00:23:50.240 --> 00:23:53.710
claim that we can build
digital logic that's

00:23:53.710 --> 00:23:56.750
reasonably reliable.

00:23:56.750 --> 00:24:00.440
So in this particular case, I'm
showing you this implies logic

00:24:00.440 --> 00:24:03.100
function that allows us
to have small molecule

00:24:03.100 --> 00:24:07.930
induction of a
cascade of not logic

00:24:07.930 --> 00:24:10.950
gates or transcriptional
repressors.

00:24:10.950 --> 00:24:13.520
And so the nice thing
about this in particular

00:24:13.520 --> 00:24:17.090
is the fact that this is the
input output steady state is

00:24:17.090 --> 00:24:19.960
that as the circuit so
goes from blue to black

00:24:19.960 --> 00:24:24.390
to this yellow color here is
as the circuit gets longer,

00:24:24.390 --> 00:24:28.100
as a cascade gets longer, it
actually becomes more digital.

00:24:28.100 --> 00:24:31.570
It actually becomes
more step-like, OK?

00:24:31.570 --> 00:24:32.770
More on off.

00:24:32.770 --> 00:24:35.910
So we're going from this
blue input output function

00:24:35.910 --> 00:24:36.790
to this yellow.

00:24:36.790 --> 00:24:38.670
So now we have over
1,000 fold change

00:24:38.670 --> 00:24:43.130
in the output in
response to two to four

00:24:43.130 --> 00:24:45.530
fold change in the input.

00:24:45.530 --> 00:24:47.990
OK, and then we have
good noise margins,

00:24:47.990 --> 00:24:51.660
good signal restorations,
all these good things

00:24:51.660 --> 00:24:55.250
that we need to have for
the creation of larger

00:24:55.250 --> 00:24:59.160
and larger reliable
digital circuits.

00:24:59.160 --> 00:25:03.150
So the basis of digital
computation is that you have--

00:25:03.150 --> 00:25:07.100
and the reason why you can
actually create computers

00:25:07.100 --> 00:25:12.110
is that you can have logic gates
that do signal restoration--

00:25:12.110 --> 00:25:17.540
that the output is a
better representation

00:25:17.540 --> 00:25:20.620
of the digital meaning
then the input.

00:25:20.620 --> 00:25:25.450
So as the signal , propagates
this analog signal could be

00:25:25.450 --> 00:25:26.510
voltage.

00:25:26.510 --> 00:25:29.610
But it could be
protein concentrations.

00:25:29.610 --> 00:25:34.800
As it traverses through
the logic gates,

00:25:34.800 --> 00:25:38.790
it needs to actually become
cleaner in order for us

00:25:38.790 --> 00:25:42.340
to be able to have reliable
digital computation.

00:25:42.340 --> 00:25:44.900
So people have figured
out how to do this

00:25:44.900 --> 00:25:48.150
with electronics
a long time ago.

00:25:48.150 --> 00:25:53.210
We figured out how to do it
with synthetic biology, let's

00:25:53.210 --> 00:25:55.540
say, 10 to 15 years ago.

00:25:55.540 --> 00:25:58.760
And nature has figured out how
to do this billions of years

00:25:58.760 --> 00:26:01.100
ago, OK?

00:26:01.100 --> 00:26:06.300
So things like
cooperativity-- so I

00:26:06.300 --> 00:26:09.890
assume you've looked a
little bit on cooperatively

00:26:09.890 --> 00:26:12.820
in, let's say, gene regulation.

00:26:12.820 --> 00:26:17.110
OK, so that is a situation
where you get a nonlinear

00:26:17.110 --> 00:26:21.000
response in a system that
biology has figured out

00:26:21.000 --> 00:26:25.160
is a useful mechanism so that
signals that come in actually

00:26:25.160 --> 00:26:28.670
result in some kind of
actual digital behavior.

00:26:28.670 --> 00:26:32.400
So you get non-linear
signal processing

00:26:32.400 --> 00:26:34.430
in these regulatory elements.

00:26:34.430 --> 00:26:41.340
And at the end of, let's say,
a signal transduction cascade,

00:26:41.340 --> 00:26:43.960
the output is
either high or low.

00:26:43.960 --> 00:26:47.070
There's no-- for the most
part, there's no in between.

00:26:47.070 --> 00:26:50.140
The transition between
high and low is super fast.

00:26:50.140 --> 00:26:53.350
OK, so in a sense,
that's creating

00:26:53.350 --> 00:26:56.220
digital or discrete outputs.

00:26:56.220 --> 00:27:00.160
And that's really critical
for many situations--

00:27:00.160 --> 00:27:03.060
certainly in synthetic biology,
but many situations in biology

00:27:03.060 --> 00:27:03.880
as well.

00:27:03.880 --> 00:27:07.450
So one example would be, let's
say, stem cell differentiation.

00:27:07.450 --> 00:27:12.610
You want the cells to be able
to make a discrete decision.

00:27:12.610 --> 00:27:17.160
Should I make-- should I
become a kidney cell or a liver

00:27:17.160 --> 00:27:19.901
cell or a muscle cell and so on.

00:27:19.901 --> 00:27:21.400
So those are discrete
decisions that

00:27:21.400 --> 00:27:23.890
have to be made by the cells.

00:27:23.890 --> 00:27:26.590
And so the cells have
come up-- or nature's

00:27:26.590 --> 00:27:29.280
come up with mechanisms
to guarantee that.

00:27:29.280 --> 00:27:32.140
And so we've now figured
out how to do that ourselves

00:27:32.140 --> 00:27:34.510
in a synthetic fashion as well.

00:27:34.510 --> 00:27:38.330
It's important to note that
when we engineer these systems,

00:27:38.330 --> 00:27:42.420
we don't just think
about digital behavior.

00:27:42.420 --> 00:27:47.210
So we spent an equal amount
of time perhaps thinking

00:27:47.210 --> 00:27:50.900
about how to implement things
that have transient properties

00:27:50.900 --> 00:27:56.210
or things that have more kind
of analog behavior to them.

00:27:56.210 --> 00:27:59.960
And that's absolutely critical
to be able to program cells

00:27:59.960 --> 00:28:01.520
to do whatever we want.

00:28:01.520 --> 00:28:04.590
So this is an example
where we have engineered

00:28:04.590 --> 00:28:08.370
cell-cell communication
where sender cells make

00:28:08.370 --> 00:28:10.990
a small diffusible
molecule which

00:28:10.990 --> 00:28:13.870
then goes to receiver cells.

00:28:13.870 --> 00:28:18.460
OK, so now the receiver cells
don't just have an on response,

00:28:18.460 --> 00:28:21.640
but rather they
have a pulse, OK?

00:28:21.640 --> 00:28:27.530
So a signal travels from the
sender to the receiver cells.

00:28:27.530 --> 00:28:30.150
And the cells, what
we engineer them to do

00:28:30.150 --> 00:28:32.670
is have a pulse response.

00:28:32.670 --> 00:28:36.480
And the idea is to have GFP
go up-- a Green Fluorescent

00:28:36.480 --> 00:28:39.990
Protein go up--
and then go down.

00:28:39.990 --> 00:28:43.840
And so to be able to
do that, we engineered

00:28:43.840 --> 00:28:48.130
a feed forward
motif where we have

00:28:48.130 --> 00:28:51.750
binding of the small
molecule to this activator

00:28:51.750 --> 00:28:56.150
which activates two
things simultaneously--

00:28:56.150 --> 00:28:59.480
a green fluorescent
protein and a repressor

00:28:59.480 --> 00:29:02.190
which then represses the
green fluorescent protein.

00:29:05.721 --> 00:29:08.220
And then-- so the idea is that
the green fluorescent protein

00:29:08.220 --> 00:29:08.840
goes up.

00:29:08.840 --> 00:29:11.250
And then eventually,
the repressor

00:29:11.250 --> 00:29:13.240
builds up to sufficient
levels to repress

00:29:13.240 --> 00:29:14.490
the green fluorescent protein.

00:29:16.660 --> 00:29:21.245
So again, one of those
simple looking motifs.

00:29:23.800 --> 00:29:26.740
This is about three
years to actually make

00:29:26.740 --> 00:29:31.890
that happen around
the 2004 frame.

00:29:31.890 --> 00:29:33.060
Looks simple.

00:29:33.060 --> 00:29:36.000
If you study a naturally
occurring system that

00:29:36.000 --> 00:29:37.995
has this motif, you say,
oh yeah-- no problem.

00:29:37.995 --> 00:29:40.770
Yeah, we have this
feed forward motif.

00:29:40.770 --> 00:29:43.610
And obviously, you can do this
kind of information processing

00:29:43.610 --> 00:29:44.500
function.

00:29:44.500 --> 00:29:47.190
Let's move on to another motif.

00:29:47.190 --> 00:29:51.684
You actually try to build this
in a lab in a new organism,

00:29:51.684 --> 00:29:53.350
I'm not sure if it
can drive you insane.

00:29:53.350 --> 00:29:57.240
But it is not trivial to
actually make it work.

00:29:57.240 --> 00:30:00.302
It's much easier now
than it was 10 years ago.

00:30:00.302 --> 00:30:01.760
But you still have
to pay attention

00:30:01.760 --> 00:30:06.390
to a lot of things-- rate
constants, threshold matching,

00:30:06.390 --> 00:30:09.760
and so on to actually
make it happen.

00:30:09.760 --> 00:30:14.100
But eventually, after
looking-- creating--

00:30:14.100 --> 00:30:16.210
so this is our first
attempt at this

00:30:16.210 --> 00:30:17.750
was this blue line right here.

00:30:17.750 --> 00:30:20.230
So a completely flat line, OK?

00:30:20.230 --> 00:30:23.960
Input comes in, nothing happens.

00:30:23.960 --> 00:30:27.950
So I would say that pretty
much typifies synthetic biology

00:30:27.950 --> 00:30:29.147
maybe up until today.

00:30:29.147 --> 00:30:29.980
You build something.

00:30:29.980 --> 00:30:31.188
You think it's going to work.

00:30:31.188 --> 00:30:32.020
It doesn't work.

00:30:32.020 --> 00:30:34.590
And then you stop crying
after a little while.

00:30:34.590 --> 00:30:40.130
But then you have to think
about how do I fix this.

00:30:40.130 --> 00:30:44.570
And so this iterative
design debug cycle

00:30:44.570 --> 00:30:46.550
is absolutely critical.

00:30:46.550 --> 00:30:49.930
So what you normally do is you
create computational models

00:30:49.930 --> 00:30:54.200
that tell you how different
rate constants in the system

00:30:54.200 --> 00:30:58.240
affect the behavior
of your circuit, OK?

00:30:58.240 --> 00:31:00.980
For example, you could
do sensitivity analysis.

00:31:00.980 --> 00:31:03.450
Which rate constants
have the most influence

00:31:03.450 --> 00:31:05.520
on the performance
of your system?

00:31:05.520 --> 00:31:09.130
And so we did some sensitivity
analysis here and learned

00:31:09.130 --> 00:31:14.020
that, for example, the
degradation of this repressor

00:31:14.020 --> 00:31:16.160
makes-- one of the
things rate constants

00:31:16.160 --> 00:31:19.010
makes the biggest difference
is on the performance

00:31:19.010 --> 00:31:22.770
of the system or its
affinity to the binding

00:31:22.770 --> 00:31:25.790
site on its respective promoter.

00:31:25.790 --> 00:31:26.528
Yes.

00:31:26.528 --> 00:31:29.944
AUDIENCE: Just knowing the sheer
[INAUDIBLE] entire circuit,

00:31:29.944 --> 00:31:31.972
it started off with the
[INAUDIBLE] constant?

00:31:31.972 --> 00:31:32.472
PROF.

00:31:32.472 --> 00:31:34.540
RON WEISS: No.

00:31:34.540 --> 00:31:37.100
I wish it was.

00:31:37.100 --> 00:31:41.050
Because that would
make life a lot easier.

00:31:41.050 --> 00:31:44.190
And we are trying to
get better at that.

00:31:44.190 --> 00:31:48.980
So we're trying
to-- so here's maybe

00:31:48.980 --> 00:31:51.940
two ways of thinking about that.

00:31:51.940 --> 00:31:55.090
One challenge would
be somebody comes in,

00:31:55.090 --> 00:31:56.590
gives you DNA
sequence, and you have

00:31:56.590 --> 00:31:58.550
to predict the rate constants.

00:31:58.550 --> 00:32:04.270
OK, so I would term that person
an adversary, not your friend.

00:32:04.270 --> 00:32:07.730
It's just too hard to do that.

00:32:07.730 --> 00:32:15.000
Now, an easier task would be
give your adversary or friend

00:32:15.000 --> 00:32:19.010
limited choices and
say in the freezer,

00:32:19.010 --> 00:32:22.270
I have these DNA
sequences that consist,

00:32:22.270 --> 00:32:25.820
let's say, of
specific promoters,

00:32:25.820 --> 00:32:31.000
specific ribosome binding
sites, specific proteins

00:32:31.000 --> 00:32:35.930
with specific degradation
tags on the proteins, OK?

00:32:35.930 --> 00:32:39.320
And that's-- you're allowing
that adversary or friend

00:32:39.320 --> 00:32:43.157
to only use those elements
in the design of a circuit.

00:32:43.157 --> 00:32:44.990
And then they come back
to you and they say,

00:32:44.990 --> 00:32:48.580
now predict what
the circuit will do.

00:32:48.580 --> 00:32:51.380
You still-- it still
doesn't work yet.

00:32:51.380 --> 00:32:53.500
But I think-- but I
would say that's how

00:32:53.500 --> 00:32:56.180
we would phrase
the challenge, OK?

00:32:56.180 --> 00:33:00.070
Stick to things that we know and
allow us to even characterize

00:33:00.070 --> 00:33:02.984
those things ahead of time.

00:33:02.984 --> 00:33:04.400
What we have that--
unfortunately,

00:33:04.400 --> 00:33:06.880
I don't have that here.

00:33:06.880 --> 00:33:08.940
But what we have
done-- so people

00:33:08.940 --> 00:33:11.490
can get a kind of a
general characterization.

00:33:11.490 --> 00:33:17.850
So they can say it'll be roughly
this input output behavior.

00:33:17.850 --> 00:33:21.040
And when I say
roughly, the errors

00:33:21.040 --> 00:33:24.720
could be on the order
of five to 10-fold.

00:33:24.720 --> 00:33:28.350
That's approximately what's
been published so far.

00:33:28.350 --> 00:33:31.030
Now, five to tenfold
depending on your perspective

00:33:31.030 --> 00:33:33.700
could be great because
it's biology or could

00:33:33.700 --> 00:33:36.050
suck if you're an engineer.

00:33:36.050 --> 00:33:38.240
It just depends on if you're
trying to do something

00:33:38.240 --> 00:33:42.140
like get green
fluorescent protein

00:33:42.140 --> 00:33:45.010
to turn on and off,
tenfold is probably great

00:33:45.010 --> 00:33:46.740
if you're doing this
in a Petri dish.

00:33:46.740 --> 00:33:49.590
If you're trying to
create a cancer classifier

00:33:49.590 --> 00:33:53.960
circuit you put into
humans to kill cancer cells

00:33:53.960 --> 00:33:57.850
but not harm healthy cells,
tenfold is probably not

00:33:57.850 --> 00:34:00.650
great I wouldn't take
a circuit like that

00:34:00.650 --> 00:34:07.170
into me, especially if that
circuit controls, for example,

00:34:07.170 --> 00:34:10.540
the production of a
killer protein, which I'll

00:34:10.540 --> 00:34:13.130
try to show you a
circuit that does that.

00:34:13.130 --> 00:34:16.020
We recently have
been able-- we're

00:34:16.020 --> 00:34:18.350
in the process of submitting
a paper about this-- been

00:34:18.350 --> 00:34:21.670
able to show that if you have
really good characterization

00:34:21.670 --> 00:34:27.944
of regulatory elements such
as these repressor devices--

00:34:27.944 --> 00:34:29.860
and you have to do a lot
more characterization

00:34:29.860 --> 00:34:37.130
and you do the-- we can
get within 20% on average

00:34:37.130 --> 00:34:42.100
on predicting the behavior
in mammalian cells, actually.

00:34:42.100 --> 00:34:45.550
And so as an
engineer, I would be

00:34:45.550 --> 00:34:50.630
happy with 10%, 20% percent
for many, many applications.

00:34:50.630 --> 00:34:52.280
So I think we've
gotten better at it.

00:34:52.280 --> 00:34:54.460
But it's not quite perfect yet.

00:34:54.460 --> 00:34:58.300
One of the things
about that approach

00:34:58.300 --> 00:35:01.150
is that we don't
necessarily know

00:35:01.150 --> 00:35:03.980
the rate constant
for everything.

00:35:03.980 --> 00:35:11.890
What we do know, however,
is a very detailed behavior,

00:35:11.890 --> 00:35:14.520
both steady state
and dynamic behavior,

00:35:14.520 --> 00:35:18.520
of a repressor promoter pair.

00:35:18.520 --> 00:35:22.845
So we don't know, for example,
what's the binding affinity

00:35:22.845 --> 00:35:25.080
or what's the rate
constant for the repressor

00:35:25.080 --> 00:35:27.280
binding the promoter,
what's the rate

00:35:27.280 --> 00:35:31.605
constant for RNA polymerase
binding that promoter, what's

00:35:31.605 --> 00:35:35.280
the exact translation rate
or transcription right too.

00:35:35.280 --> 00:35:39.090
But we do know what's the
input output behavior.

00:35:39.090 --> 00:35:44.100
And that's actually been enough
to get really good predictions.

00:35:44.100 --> 00:35:50.550
But I would say these
kinds of predictions

00:35:50.550 --> 00:35:54.340
are one of the most important
aspects and challenges

00:35:54.340 --> 00:35:55.990
and bottlenecks of
synthetic biology.

00:35:55.990 --> 00:35:58.410
So those include--
again, the challenges

00:35:58.410 --> 00:36:00.400
include how fast
can you build DNA.

00:36:00.400 --> 00:36:02.191
But wouldn't it be nice
if you can actually

00:36:02.191 --> 00:36:04.600
predict what the DNA does?

00:36:04.600 --> 00:36:08.330
So it's just as
important, if not more.

00:36:08.330 --> 00:36:10.374
And also having--
so those are two

00:36:10.374 --> 00:36:11.540
of the important challenges.

00:36:11.540 --> 00:36:14.090
I'd say another
one would be-- OK,

00:36:14.090 --> 00:36:16.870
so if you can predict
things how many parts

00:36:16.870 --> 00:36:20.635
do you have in your freezer that
you can actually put together

00:36:20.635 --> 00:36:22.260
and they're
well-characterized actually

00:36:22.260 --> 00:36:25.280
now build the circuits?

00:36:25.280 --> 00:36:27.420
Probably three of the
most important challenges.

00:36:30.840 --> 00:36:34.500
And so if you go back to what
we'll call the post generator,

00:36:34.500 --> 00:36:40.870
this is a loop tape of bacteria
that now respond to the pulse.

00:36:40.870 --> 00:36:45.980
So sender cells that then
secreted the small molecule

00:36:45.980 --> 00:36:47.580
then went into receiver cells.

00:36:47.580 --> 00:36:49.890
And they light up.

00:36:49.890 --> 00:36:53.360
So one of the things to
note here is that it works.

00:36:53.360 --> 00:36:57.210
The other thing to note here is
that it's not perfect, right?

00:36:57.210 --> 00:37:02.270
And so the amount of
heterogeneity here I think

00:37:02.270 --> 00:37:04.090
is quite astounding.

00:37:04.090 --> 00:37:06.500
So if you take the
average behavior,

00:37:06.500 --> 00:37:08.100
it's actually quite predictable.

00:37:08.100 --> 00:37:11.090
But if you now start
looking at the distribution

00:37:11.090 --> 00:37:14.340
in the response,
it's staggering.

00:37:14.340 --> 00:37:15.510
And we quantified that.

00:37:15.510 --> 00:37:17.990
And so we quantified what's
the distribution in terms

00:37:17.990 --> 00:37:22.320
of the fluorescence levels
that-- the peak and also

00:37:22.320 --> 00:37:24.040
the buildup and so on.

00:37:24.040 --> 00:37:26.650
And we then correlated
that also-- we

00:37:26.650 --> 00:37:32.650
created the stochastic
simulations that then correlate

00:37:32.650 --> 00:37:34.640
reasonably well with the system.

00:37:34.640 --> 00:37:38.810
So we can get simulations
to generally correspond

00:37:38.810 --> 00:37:42.050
with what we're seeing
at the population level.

00:37:42.050 --> 00:37:44.230
But I do want to
bring up this point

00:37:44.230 --> 00:37:50.030
that when you think about
engineering biological systems,

00:37:50.030 --> 00:37:53.750
don't try to figure out how to
engineer a single cell to do

00:37:53.750 --> 00:37:56.330
something reliably, OK?

00:37:56.330 --> 00:37:58.930
So you always want
to think about kind

00:37:58.930 --> 00:38:00.770
of statistical engineering.

00:38:00.770 --> 00:38:03.510
You want to think about, I'm
going to create a circuit.

00:38:03.510 --> 00:38:07.090
And when I put this circuit
into a population of cells,

00:38:07.090 --> 00:38:09.080
this is the distribution
of behaviors

00:38:09.080 --> 00:38:11.230
that I'm going to get.

00:38:11.230 --> 00:38:12.730
Because if you're
trying to depend

00:38:12.730 --> 00:38:15.370
on any individual cell giving
you exactly the behavior

00:38:15.370 --> 00:38:19.770
that you're looking for, it
is just-- it's going to fail.

00:38:19.770 --> 00:38:22.870
So you have to really
think about distributions.

00:38:22.870 --> 00:38:26.874
And that I think changes
things a little bit.

00:38:26.874 --> 00:38:28.290
So that's not
normally the way you

00:38:28.290 --> 00:38:30.589
think about-- maybe
that's the way Microsoft

00:38:30.589 --> 00:38:31.630
thinks about programming.

00:38:31.630 --> 00:38:35.340
So if 90% of the time, the
computer doesn't crash,

00:38:35.340 --> 00:38:38.360
that's pretty good.

00:38:38.360 --> 00:38:41.200
Probably Bill Gates
agrees with that, right?

00:38:41.200 --> 00:38:43.500
But that's not what we want.

00:38:43.500 --> 00:38:46.950
That's not what we
typically do with software.

00:38:46.950 --> 00:38:51.940
So to kind of further
think about this

00:38:51.940 --> 00:38:54.570
in terms of populations,
we program something else

00:38:54.570 --> 00:38:56.890
which was a pattern formation.

00:38:56.890 --> 00:39:01.630
So now we have the desire to
create senders and receivers

00:39:01.630 --> 00:39:04.730
where the senders send the
same message to the receivers.

00:39:04.730 --> 00:39:08.670
Now we have a longer
feed forward motif.

00:39:08.670 --> 00:39:13.180
OK, so this feed forward
motif has two branches.

00:39:13.180 --> 00:39:16.180
And so these two
branches actually

00:39:16.180 --> 00:39:20.130
have a different impact
on the final output.

00:39:20.130 --> 00:39:25.110
One has-- there's two repressors
meaning that input comes in.

00:39:25.110 --> 00:39:27.640
It activates a fluorescent
protein and another one

00:39:27.640 --> 00:39:29.840
represses the
fluorescent protein.

00:39:29.840 --> 00:39:36.120
OK, so it's an incoherent
feed forward motif.

00:39:36.120 --> 00:39:39.100
And so what we use that here
is not for post generation,

00:39:39.100 --> 00:39:46.910
but rather to define a
range of concentrations

00:39:46.910 --> 00:39:52.340
that would turn on
the final output, OK?

00:39:52.340 --> 00:39:55.640
So it would be activated--
the range of concentration

00:39:55.640 --> 00:40:00.160
would be activated starting
with this branch right here

00:40:00.160 --> 00:40:02.590
and then ultimately
repressed by this.

00:40:02.590 --> 00:40:05.670
So this defines the
low threshold and this

00:40:05.670 --> 00:40:07.430
defines the high threshold.

00:40:07.430 --> 00:40:10.180
So under the low threshold,
nothing gets activated.

00:40:10.180 --> 00:40:13.510
Whenever you have
just the right amount,

00:40:13.510 --> 00:40:15.010
it activates this
which represses

00:40:15.010 --> 00:40:16.910
this which allows this
fluorescent protein

00:40:16.910 --> 00:40:18.320
to get turned on.

00:40:18.320 --> 00:40:22.260
OK, so this branch right
here is more sensitive.

00:40:22.260 --> 00:40:24.270
So it defines when
this thing goes up,

00:40:24.270 --> 00:40:25.650
when the response goes up.

00:40:25.650 --> 00:40:27.350
And then this is less sensitive.

00:40:27.350 --> 00:40:29.650
So this defines under
high concentrations

00:40:29.650 --> 00:40:31.720
when the output goes down.

00:40:31.720 --> 00:40:34.840
So we basically have a
non monotonic response

00:40:34.840 --> 00:40:39.690
to the input, which is
low then high then low.

00:40:39.690 --> 00:40:43.050
So that's the design
that we had in mind.

00:40:43.050 --> 00:40:45.630
And the idea is that
whenever you put,

00:40:45.630 --> 00:40:48.890
let's say, receiver cells
everywhere in a Petri dish

00:40:48.890 --> 00:40:51.010
and you put senders
in the middle,

00:40:51.010 --> 00:40:54.370
then the communication
signal basically builds up.

00:40:54.370 --> 00:40:56.380
There's a chemical gradient.

00:40:56.380 --> 00:40:58.730
Each cell interprets
the chemical gradient

00:40:58.730 --> 00:41:03.390
and then decides whether to
make a fluorescent protein.

00:41:03.390 --> 00:41:07.080
And then only-- because there's
this steady chemical gradient

00:41:07.080 --> 00:41:10.420
due to diffusion and
decay of the signal,

00:41:10.420 --> 00:41:12.780
then you would get some
kind of a bullseye pattern.

00:41:12.780 --> 00:41:15.520
So that was the hope at least.

00:41:15.520 --> 00:41:19.640
And so to give you again
a timescale, so it took me

00:41:19.640 --> 00:41:24.110
about I think three hours on
a plane to make the slide.

00:41:24.110 --> 00:41:27.440
It took us about three weeks to
create the computational model.

00:41:27.440 --> 00:41:29.260
And again, for whatever
reason, three years

00:41:29.260 --> 00:41:33.940
was the magic number to create
the actual functional circuit.

00:41:33.940 --> 00:41:37.890
So that was an older
version of PowerPoint.

00:41:37.890 --> 00:41:40.160
But I haven't tried
it on the new.

00:41:40.160 --> 00:41:43.800
But anyways, so we created this.

00:41:43.800 --> 00:41:45.950
This is a computational model.

00:41:45.950 --> 00:41:47.640
We actually used a
computational model

00:41:47.640 --> 00:41:52.950
to predict how changes
in rate constants

00:41:52.950 --> 00:41:56.880
would affect this band detect,
the region where we're actually

00:41:56.880 --> 00:41:58.480
responding to the signal.

00:41:58.480 --> 00:42:01.910
And we used that to engineer
different responses.

00:42:01.910 --> 00:42:05.580
And so we created eventually
three different responses input

00:42:05.580 --> 00:42:06.800
versus output.

00:42:06.800 --> 00:42:09.470
And we put different
fluorescent proteins on them--

00:42:09.470 --> 00:42:11.950
a red fluorescent protein and
a green fluorescent protein.

00:42:11.950 --> 00:42:14.000
This is the experimental
set up over here.

00:42:14.000 --> 00:42:19.720
And after 16 hours of waiting,
this is basically what we got.

00:42:19.720 --> 00:42:25.490
So we got a lot of bacteria
to make all kinds of patterns.

00:42:25.490 --> 00:42:27.350
And we were very
happy about this.

00:42:27.350 --> 00:42:30.740
We danced around in the lab
a little bit-- you know, yay!

00:42:30.740 --> 00:42:35.430
So this was fun on those rare
occasions where things actually

00:42:35.430 --> 00:42:36.820
work.

00:42:36.820 --> 00:42:38.450
So we said, let's
have some more fun.

00:42:38.450 --> 00:42:42.710
And so we put senders
in other configurations.

00:42:42.710 --> 00:42:45.290
And so we have
programmable patterns

00:42:45.290 --> 00:42:46.445
of bacterial communities.

00:42:49.340 --> 00:42:51.420
So I'm not sure
of is this useful.

00:42:51.420 --> 00:42:56.360
I'm not sure by itself besides
having some fun with it.

00:42:56.360 --> 00:43:02.090
But one of the things we're
using this for right now--

00:43:02.090 --> 00:43:04.720
and depending on time,
I may get to that

00:43:04.720 --> 00:43:08.880
later-- is this notion of
embedding these circuits

00:43:08.880 --> 00:43:13.450
in mammalian stem cells or
actually also in human IPS

00:43:13.450 --> 00:43:19.090
cells so that we engineer these
human IPS cells to communicate

00:43:19.090 --> 00:43:22.410
with one another
to make decisions.

00:43:22.410 --> 00:43:23.960
And then those
decisions actually

00:43:23.960 --> 00:43:28.110
lead to differentiation
patterns, right?

00:43:28.110 --> 00:43:30.130
So you can imagine
in principle, if you

00:43:30.130 --> 00:43:33.460
can create three dimensional
versions of these

00:43:33.460 --> 00:43:37.840
and use those to cause the
cells to make differentiation

00:43:37.840 --> 00:43:41.360
decisions so that red
would mean make neurons,

00:43:41.360 --> 00:43:45.600
green would mean make muscle,
different colors-- yellow

00:43:45.600 --> 00:43:47.750
would mean make bone and so on.

00:43:47.750 --> 00:43:50.670
So in principle, you might
be able to create tissues

00:43:50.670 --> 00:43:52.640
by design.

00:43:52.640 --> 00:43:56.390
OK, so that's something that
we are working on actively

00:43:56.390 --> 00:43:58.050
in the lab right now.

00:43:58.050 --> 00:44:02.640
So we don't quite have a working
heart in a Petri dish yet.

00:44:02.640 --> 00:44:05.250
We won't for a little while.

00:44:05.250 --> 00:44:08.620
But we taking some baby
steps along the way.

00:44:08.620 --> 00:44:11.050
And so we have been able to
get cell-cell communication

00:44:11.050 --> 00:44:11.760
to work.

00:44:11.760 --> 00:44:14.950
We've been able to get
programmed stem cell

00:44:14.950 --> 00:44:16.835
differentiation to work.

00:44:16.835 --> 00:44:18.460
And hopefully, I'll
be able to show you

00:44:18.460 --> 00:44:22.230
some images that we have of
some recent examples where

00:44:22.230 --> 00:44:29.050
we take human IPS and actually
created these embryonic liver

00:44:29.050 --> 00:44:32.980
buds that have lots and
lots of interesting--

00:44:32.980 --> 00:44:35.560
and actually all
the cell types that

00:44:35.560 --> 00:44:38.830
are known to exist in
the embryonic liver.

00:44:38.830 --> 00:44:42.550
So there are some
progress along the way.

00:44:42.550 --> 00:44:46.270
Now, we don't anticipate
to replace your liver,

00:44:46.270 --> 00:44:49.730
you know, any time soon.

00:44:49.730 --> 00:44:53.890
So don't destroy it.

00:44:53.890 --> 00:44:57.970
So actually one near
term application

00:44:57.970 --> 00:44:59.460
that we're
specifically looking at

00:44:59.460 --> 00:45:06.180
is if we can take-- imagine
taking your own fiberglass,

00:45:06.180 --> 00:45:09.120
de-differentiating them
into human IPS cells--

00:45:09.120 --> 00:45:13.740
those are your human IPS cells--
and then differentiate them

00:45:13.740 --> 00:45:17.860
into, like, this
liver-like environment

00:45:17.860 --> 00:45:21.100
and put that in a
Petri dish and then

00:45:21.100 --> 00:45:26.460
test out the effect of
drugs on your mini liver.

00:45:26.460 --> 00:45:30.920
OK, so maybe it's a
good idea to test drugs

00:45:30.920 --> 00:45:33.910
on things that resemble
human tissue as

00:45:33.910 --> 00:45:36.920
opposed to some random
mouse that may or may not

00:45:36.920 --> 00:45:39.660
be as correlated with what
the drug would actually

00:45:39.660 --> 00:45:42.670
do to actual human cells.

00:45:42.670 --> 00:45:45.340
And if we actually even do it
in the patient specific manner,

00:45:45.340 --> 00:45:47.640
I think that really
changes the way drug

00:45:47.640 --> 00:45:50.840
development would actually work.

00:45:50.840 --> 00:45:56.500
And that's something that I
think within the next few years

00:45:56.500 --> 00:45:58.270
could become a reality.

00:45:58.270 --> 00:46:01.950
They're talking about
the next-- beginning

00:46:01.950 --> 00:46:05.780
to do that within the next one
to three years in a laboratory

00:46:05.780 --> 00:46:06.595
setting.

00:46:06.595 --> 00:46:09.300
So I think that is near
term and realistic.

00:46:12.440 --> 00:46:15.330
So one of the things
that we did notice

00:46:15.330 --> 00:46:21.030
is that when we engineer
the small systems,

00:46:21.030 --> 00:46:24.180
its intuition works quite well.

00:46:24.180 --> 00:46:26.410
So I can look at
this circuit design

00:46:26.410 --> 00:46:29.160
and say, if I modify this,
this is what's going to happen.

00:46:29.160 --> 00:46:31.580
If I modify this, that's
what's going to happen.

00:46:31.580 --> 00:46:34.700
So you can use intuition and
it works reasonably well.

00:46:34.700 --> 00:46:38.730
And what happened in I would
say the first 8 to 10 years

00:46:38.730 --> 00:46:40.450
of synthetic
biology, every paper

00:46:40.450 --> 00:46:42.990
would have a
computational design.

00:46:42.990 --> 00:46:46.400
But most of those
would build something.

00:46:46.400 --> 00:46:51.010
And in order to publish, we also
tacked on a computational model

00:46:51.010 --> 00:46:53.890
that correlates really well
with the experimental results.

00:46:53.890 --> 00:46:58.320
And we are just as guilty of
doing that as anyone else, OK?

00:46:58.320 --> 00:47:02.520
So it wasn't critical to
have a computational model

00:47:02.520 --> 00:47:06.580
to create something
successfully in the lab.

00:47:06.580 --> 00:47:10.830
And I think that
that is changing.

00:47:10.830 --> 00:47:15.690
So we have examples right now
of designs where-- I'm not sure

00:47:15.690 --> 00:47:19.040
if I'll get to that today,
but we have published

00:47:19.040 --> 00:47:22.820
on that-- designs
where it involves

00:47:22.820 --> 00:47:25.540
about 20 to 25 components.

00:47:25.540 --> 00:47:27.530
And it's related to
a diabetes system

00:47:27.530 --> 00:47:31.320
the retired engineer where we
can have intuition about it.

00:47:31.320 --> 00:47:35.740
But our intuition doesn't
work great anymore, guys.

00:47:35.740 --> 00:47:38.120
So we might have some
intuition about the system.

00:47:38.120 --> 00:47:40.610
But the computational
analysis would all of a sudden

00:47:40.610 --> 00:47:43.000
shed light and
provide insight that

00:47:43.000 --> 00:47:45.360
is very difficult to
get this by drawing

00:47:45.360 --> 00:47:47.830
this thing on a blackboard.

00:47:47.830 --> 00:47:51.570
OK, and so I think that
computational design tools are

00:47:51.570 --> 00:47:53.300
becoming absolutely essential.

00:47:53.300 --> 00:47:57.510
They can provide insight
into system behavior

00:47:57.510 --> 00:48:00.660
that you can't get just
using intuition alone.

00:48:00.660 --> 00:48:04.540
But in another aspect
of computational design

00:48:04.540 --> 00:48:10.370
is one where imagine being able
to specify want this behavior.

00:48:10.370 --> 00:48:12.990
And then the
computational design tool

00:48:12.990 --> 00:48:17.460
says, here's 1,000 different
versions of circuits

00:48:17.460 --> 00:48:21.720
that you should build and test.

00:48:21.720 --> 00:48:25.090
OK, and so it's still
difficult for a human

00:48:25.090 --> 00:48:28.490
to generate easily 1,000
different versions of a circuit

00:48:28.490 --> 00:48:30.880
to build and test.

00:48:30.880 --> 00:48:35.640
It is becoming easy
to actually build--

00:48:35.640 --> 00:48:39.530
I wouldn't say-- maybe
easy is a strong word--

00:48:39.530 --> 00:48:42.440
feasible to generate
1,000 versions

00:48:42.440 --> 00:48:44.539
of a particular circuit.

00:48:44.539 --> 00:48:45.580
I'll give you an example.

00:48:45.580 --> 00:48:51.930
Very recently in my lab,
one of the graduate students

00:48:51.930 --> 00:48:54.415
has come up with a
framework that-- he

00:48:54.415 --> 00:49:01.560
is generating 200 versions of
a circuit in three hours, OK?

00:49:01.560 --> 00:49:04.650
And they're pretty much
gotten to the point

00:49:04.650 --> 00:49:07.800
where they're all correct.

00:49:07.800 --> 00:49:11.090
In three hours--
so that really, I

00:49:11.090 --> 00:49:14.680
think, changes what you
do in synthetic biology.

00:49:14.680 --> 00:49:20.390
And so again, having
that be connected

00:49:20.390 --> 00:49:23.270
to a computational design
tool that tells you

00:49:23.270 --> 00:49:28.230
which ones to build
would be rather useful.

00:49:28.230 --> 00:49:30.710
And so specifically
recognizing that-- this

00:49:30.710 --> 00:49:35.000
is a collaboration
with some folks at BBN.

00:49:35.000 --> 00:49:39.570
And actually Jake Beal was one
of my former graduate student

00:49:39.570 --> 00:49:40.070
colleagues.

00:49:40.070 --> 00:49:44.400
So he was in the same lab as me.

00:49:44.400 --> 00:49:48.420
And then Doug Densmore is
from Boston University.

00:49:48.420 --> 00:49:50.960
And so the notion
here is that this

00:49:50.960 --> 00:49:55.000
is what we want synthetic
biology to look like.

00:49:55.000 --> 00:49:58.450
OK, so if you're
trying-- or maybe

00:49:58.450 --> 00:49:59.700
all of biological engineering.

00:49:59.700 --> 00:50:01.660
But we'll start with
synthetic biology.

00:50:01.660 --> 00:50:05.860
So if you want to
program biology,

00:50:05.860 --> 00:50:08.230
should you really care
what the ribosome binding

00:50:08.230 --> 00:50:10.406
site is for the
lambda repressor?

00:50:10.406 --> 00:50:13.710
You know, hopefully not, right?

00:50:13.710 --> 00:50:16.010
What you should
do, just like when

00:50:16.010 --> 00:50:19.570
you program your simulations in
MATLAB, you don't think about,

00:50:19.570 --> 00:50:25.490
well, here's the shift register
in this Intel Pentium chip.

00:50:25.490 --> 00:50:30.430
And this is how it's working
to simulate this ODE over here.

00:50:30.430 --> 00:50:32.520
That's just not the level
at which your program.

00:50:32.520 --> 00:50:34.460
So you think really
at a high level.

00:50:34.460 --> 00:50:37.140
And then you have compilers
and lots of infrastructure

00:50:37.140 --> 00:50:39.850
that takes care of
everything in between.

00:50:39.850 --> 00:50:43.620
And so maybe someday in the
future, the graduate students

00:50:43.620 --> 00:50:46.870
maybe five to 10 years will
look back at synthetic biology

00:50:46.870 --> 00:50:48.600
graduate students
now and would just

00:50:48.600 --> 00:50:50.910
have a lot of pity for
them and, oh my god.

00:50:50.910 --> 00:50:53.140
You actually had to
know what elements

00:50:53.140 --> 00:50:56.350
you were using in circuit and
actually build them by hand?

00:50:56.350 --> 00:50:58.580
You know, wow.

00:50:58.580 --> 00:51:01.630
And so here's a notion that
we start with a high level

00:51:01.630 --> 00:51:02.170
description.

00:51:02.170 --> 00:51:04.040
And by the way, this
is now-- there's

00:51:04.040 --> 00:51:08.160
a website that you can go
through right now and get

00:51:08.160 --> 00:51:12.980
a free account and then type
in a high level program.

00:51:12.980 --> 00:51:17.500
And it will actually create
a low level genetic circuit

00:51:17.500 --> 00:51:18.560
representation.

00:51:18.560 --> 00:51:24.360
It will also give you MATLAB
simulation files of this.

00:51:24.360 --> 00:51:27.960
And so, in this course
I'm teaching to undergrads

00:51:27.960 --> 00:51:32.860
right now that many of them
didn't even hold pipettes

00:51:32.860 --> 00:51:35.450
before they started the
course, one of the first things

00:51:35.450 --> 00:51:38.050
that we taught
them was this tool.

00:51:38.050 --> 00:51:41.220
So before telling
them, for example, this

00:51:41.220 --> 00:51:46.940
is the way the lac repressor
works by DNA looping, we said,

00:51:46.940 --> 00:51:49.210
there are these things
called repressors.

00:51:49.210 --> 00:51:53.190
And when there's more of
them, there's less output.

00:51:53.190 --> 00:51:55.930
Now let's design with that.

00:51:55.930 --> 00:52:01.117
This is, I think, heresy to
biology as a whole probably.

00:52:01.117 --> 00:52:03.700
I don't know that-- this is the
first time that we've actually

00:52:03.700 --> 00:52:04.480
tried to do that.

00:52:04.480 --> 00:52:07.260
And I think it's
actually worked out OK.

00:52:07.260 --> 00:52:11.570
But teach them enough so
that they can move forward.

00:52:11.570 --> 00:52:14.730
And then, yes,
let's simultaneously

00:52:14.730 --> 00:52:18.430
be teaching them about
the underlying biology

00:52:18.430 --> 00:52:20.300
and mechanisms as much
as they need to know.

00:52:20.300 --> 00:52:22.510
But what can they
do if they just

00:52:22.510 --> 00:52:24.205
know that there's
this thing called

00:52:24.205 --> 00:52:25.740
a transcriptional repressor?

00:52:25.740 --> 00:52:28.190
And then the bio
compiler will figure out

00:52:28.190 --> 00:52:31.090
everything that needs to happen.

00:52:31.090 --> 00:52:34.080
And so we're actually-- so they
did a whole bunch of designs.

00:52:34.080 --> 00:52:37.450
And starting next week, we're
going to be testing them out.

00:52:37.450 --> 00:52:41.740
So we will find out whether
that was a useful way

00:52:41.740 --> 00:52:43.590
to teach biological engineering.

00:52:43.590 --> 00:52:45.030
But I think so.

00:52:45.030 --> 00:52:47.430
I think it is.

00:52:47.430 --> 00:52:53.370
Because they seem to understand
what design means, OK?

00:52:53.370 --> 00:52:55.530
Because that's a thing
that we focus on-- design

00:52:55.530 --> 00:52:59.520
as kind of a first class object.

00:52:59.520 --> 00:53:03.410
OK, so what you do is you write
code that looks like this.

00:53:03.410 --> 00:53:07.110
Has anybody programmed in
code that looks like this?

00:53:07.110 --> 00:53:09.490
It should be-- so Lisp.

00:53:09.490 --> 00:53:10.905
OK, one person only?

00:53:10.905 --> 00:53:12.940
Any computational?

00:53:12.940 --> 00:53:16.505
OK, we usually get
one or two people.

00:53:16.505 --> 00:53:19.390
But I was hoping for more here.

00:53:19.390 --> 00:53:22.710
So anyways, for the people that
should be ashamed of themselves

00:53:22.710 --> 00:53:27.360
and haven't programmed in
lisp, this is a simple program.

00:53:27.360 --> 00:53:28.745
This is, if the
input is high, it

00:53:28.745 --> 00:53:30.250
produces cyan
fluorescent protein.

00:53:30.250 --> 00:53:33.200
Or else, it will produce a
yellow fluorescent protein.

00:53:33.200 --> 00:53:38.150
And so the bio compiler then
automatically takes that

00:53:38.150 --> 00:53:41.824
and first translates
that into a data flow.

00:53:41.824 --> 00:53:43.240
So you have a data
flow-- and I'll

00:53:43.240 --> 00:53:45.200
actually go through
an example of that--

00:53:45.200 --> 00:53:49.210
and then creates an
abstract gene circuit

00:53:49.210 --> 00:53:52.130
and then looks at essentially
what you have in the freezer

00:53:52.130 --> 00:53:55.190
and says, well, this
is the actual DNA

00:53:55.190 --> 00:53:58.450
sequence that would
implement this.

00:53:58.450 --> 00:54:03.580
And it creates robot
instructions to assemble this

00:54:03.580 --> 00:54:08.260
so that God forbid you
would have to actually touch

00:54:08.260 --> 00:54:10.810
a pipette to build this.

00:54:10.810 --> 00:54:13.710
And then we have a robot,
liquid handling robot,

00:54:13.710 --> 00:54:16.580
that does most of the assembly.

00:54:16.580 --> 00:54:20.820
Now, this pipeline is
not fully end to end yet.

00:54:20.820 --> 00:54:24.222
So it's not-- if you came to
my lab right now, the still-- I

00:54:24.222 --> 00:54:25.930
could tell you that
this works but then I

00:54:25.930 --> 00:54:28.860
would be slightly lying.

00:54:28.860 --> 00:54:30.019
Is-- mostly works.

00:54:32.550 --> 00:54:37.630
But it's actually-- there
are companies right now that

00:54:37.630 --> 00:54:40.050
will go from this level--
about this level--

00:54:40.050 --> 00:54:41.880
not this level, but this level.

00:54:41.880 --> 00:54:45.480
And actually, this
is mostly automated.

00:54:45.480 --> 00:54:49.400
So-- to the point where the
only thing that's not automated

00:54:49.400 --> 00:54:54.620
is somebody, not necessary
your op, but maybe a technician

00:54:54.620 --> 00:54:57.830
goes from a robot
and takes a plate

00:54:57.830 --> 00:54:59.862
and puts it in another robot.

00:54:59.862 --> 00:55:01.570
And, like, everything
else is essentially

00:55:01.570 --> 00:55:04.380
automated in DNA assembly

00:55:04.380 --> 00:55:08.690
So those companies have, I
guess, more money than us.

00:55:08.690 --> 00:55:13.310
But eventually, this is the
way DNA assembly will happen.

00:55:13.310 --> 00:55:15.420
So we're collaborating
with some people.

00:55:15.420 --> 00:55:17.440
I'm doing this
with microfluidics.

00:55:17.440 --> 00:55:20.170
The problem with this
robot-- it's $150,000.

00:55:20.170 --> 00:55:23.241
So we can't put it on
everyone's bench yet.

00:55:23.241 --> 00:55:24.990
But we are collaborating
with Lincoln Labs

00:55:24.990 --> 00:55:29.410
to have microfluidic devices
that would cost around

00:55:29.410 --> 00:55:32.301
$3,000 that would do this.

00:55:32.301 --> 00:55:34.800
And we've already demonstrated
with the microfluidic devices

00:55:34.800 --> 00:55:38.850
we can do DNA assembly
of large circuits.

00:55:38.850 --> 00:55:42.330
So this is not that
far away that everyone

00:55:42.330 --> 00:55:43.340
will have microfluidics.

00:55:43.340 --> 00:55:45.360
They program here.

00:55:45.360 --> 00:55:47.680
And they get the DNA assembled.

00:55:47.680 --> 00:55:49.910
And then they realize
it doesn't work.

00:55:49.910 --> 00:55:51.960
But at least there'd
be a lot faster

00:55:51.960 --> 00:55:55.200
to realize that things
don't work, which is good.

00:55:55.200 --> 00:55:58.010
So let's look at how this
compiler, bio compiler,

00:55:58.010 --> 00:56:01.190
works to see that
it's not magic.

00:56:01.190 --> 00:56:06.490
So this is saying
green if not IPTG.

00:56:06.490 --> 00:56:10.130
So IPTG is a small molecule
that we have a sensor for.

00:56:10.130 --> 00:56:12.990
And then the
information gets routed

00:56:12.990 --> 00:56:15.150
to an inverter which
then gets routed

00:56:15.150 --> 00:56:17.240
to activate a green
fluorescent protein.

00:56:17.240 --> 00:56:20.470
So you can take a program
specified like this

00:56:20.470 --> 00:56:24.760
and automatically convert
it into a data flow graph.

00:56:24.760 --> 00:56:29.750
And then the data flow
can be translated-- again,

00:56:29.750 --> 00:56:31.410
this is automated
and this is also

00:56:31.410 --> 00:56:34.280
automated in a
rather simple way--

00:56:34.280 --> 00:56:37.450
to an actual portions
of the gene circuit.

00:56:37.450 --> 00:56:40.890
So IPTG sensor is
simply this motif.

00:56:40.890 --> 00:56:44.810
So you have a repressor
that responds to IPTG.

00:56:44.810 --> 00:56:47.220
And then it basically
inactivates the repressor.

00:56:47.220 --> 00:56:49.480
So more IPTG, more output.

00:56:49.480 --> 00:56:52.200
And so this is the
IPTG sensor box.

00:56:52.200 --> 00:56:54.710
And this is how
you implement this.

00:56:54.710 --> 00:56:58.430
Not gate-- so I showed you
how a not gate already works.

00:56:58.430 --> 00:57:00.272
So a repressor
represses the output.

00:57:00.272 --> 00:57:01.730
Green fluorescent
protein, you just

00:57:01.730 --> 00:57:03.850
have to have an
activator that activates

00:57:03.850 --> 00:57:05.590
a green fluorescent protein.

00:57:05.590 --> 00:57:09.080
So every data flow
box can automatically

00:57:09.080 --> 00:57:13.490
be converted into a small motif.

00:57:13.490 --> 00:57:16.480
And then what we're
missing is the glue.

00:57:16.480 --> 00:57:20.290
And so the glue is just these
transcriptional activators

00:57:20.290 --> 00:57:21.480
and repressors.

00:57:21.480 --> 00:57:24.940
And so once you put them in
there, then this is a circuit.

00:57:24.940 --> 00:57:29.880
And so this is an automatic
way to go from here to here.

00:57:29.880 --> 00:57:36.060
And it can do rather
complex circuits and logic.

00:57:36.060 --> 00:57:37.420
It can't do everything yet.

00:57:37.420 --> 00:57:40.480
But it can do an
interesting set of things.

00:57:40.480 --> 00:57:44.740
OK, so this is-- again,
it's not completely finished

00:57:44.740 --> 00:57:47.260
in the sense that I
haven't told you what A is.

00:57:47.260 --> 00:57:48.730
I haven't told you what B is.

00:57:48.730 --> 00:57:50.146
So there's a whole
bunch of things

00:57:50.146 --> 00:57:52.740
that still are-- we
have-- either published on

00:57:52.740 --> 00:57:55.620
or still need to be designed.

00:57:55.620 --> 00:57:57.870
But there is, for example,
tool called matchmaker

00:57:57.870 --> 00:58:00.730
which will decide what's
a good protein A, what's

00:58:00.730 --> 00:58:04.760
a good protein B. So things like
that-- so those things already

00:58:04.760 --> 00:58:06.480
exist.

00:58:06.480 --> 00:58:10.686
Anybody look at this and figure
out why this is not perfect?

00:58:13.350 --> 00:58:17.800
So we have an input that
represses a repressor, which

00:58:17.800 --> 00:58:20.930
means that more input,
more activator-- sorry.

00:58:20.930 --> 00:58:23.820
More input, more
protein here, which

00:58:23.820 --> 00:58:27.840
represses B, which
activates GFP.

00:58:27.840 --> 00:58:31.180
So the compiler spits
that out automatically.

00:58:31.180 --> 00:58:33.270
But you may not want to
build this right away.

00:58:37.070 --> 00:58:40.255
Any ideas why?

00:58:40.255 --> 00:58:42.588
I'm sure John would.

00:58:42.588 --> 00:58:46.851
AUDIENCE: So basically, you
have this A can directly repress

00:58:46.851 --> 00:58:47.934
object, so you activate B?

00:58:50.136 --> 00:58:50.635
PROF.

00:58:50.635 --> 00:58:54.054
RON WEISS: So this is what
it-- the first version of B.

00:58:54.054 --> 00:58:56.950
But A represses B.
B activates GFP.

00:58:56.950 --> 00:59:01.260
So why not just hook A up
to regulate GFP directly?

00:59:01.260 --> 00:59:04.760
So this seems like a
non-optimal solution.

00:59:04.760 --> 00:59:07.340
And so you can get the compiler
to figure that out too.

00:59:07.340 --> 00:59:10.320
And so what you do is
you say copy propagation.

00:59:10.320 --> 00:59:14.060
So these are actually just
tools that are available.

00:59:14.060 --> 00:59:16.040
These are mechanisms
that are part

00:59:16.040 --> 00:59:19.569
of normal compilers--
normal software compilers.

00:59:19.569 --> 00:59:21.735
So they do something called
copy propogation-- means

00:59:21.735 --> 00:59:26.128
that A, if it sees that A--
the compiler sees A regulates

00:59:26.128 --> 00:59:28.680
B, A represses B,
and B activates A.

00:59:28.680 --> 00:59:32.150
So you can just say, well, let
A just directly regulate this.

00:59:32.150 --> 00:59:35.297
And then the compiler realizes,
well, B doesn't do anything.

00:59:35.297 --> 00:59:36.130
Let's get rid of it.

00:59:36.130 --> 00:59:38.370
And then the promoter
doesn't do anything.

00:59:38.370 --> 00:59:39.690
Let's get rid of it.

00:59:39.690 --> 00:59:42.380
And now the compiler
figured this out.

00:59:42.380 --> 00:59:46.901
And that's using just
basic compiler technology.

00:59:46.901 --> 00:59:48.665
OK, so it's able to do that.

00:59:48.665 --> 00:59:51.635
So the difference in your
life between four and three

00:59:51.635 --> 00:59:53.658
may not be huge.

00:59:53.658 --> 01:00:02.740
But the difference in your
life between 15 and five

01:00:02.740 --> 01:00:05.565
could be the difference
between getting your Ph.D

01:00:05.565 --> 01:00:09.190
or going insane, dropping out,
and then starting a company

01:00:09.190 --> 01:00:10.315
and becoming a billionaire.

01:00:13.640 --> 01:00:17.402
OK, so-- but this is
what the compiler can do.

01:00:17.402 --> 01:00:20.174
And that does make a difference.

01:00:20.174 --> 01:00:23.940
And it may be able to come up
with optimizations that you

01:00:23.940 --> 01:00:27.540
wouldn't be able to really
easily come up with or even

01:00:27.540 --> 01:00:31.390
at all under a reasonable
amount of time.

01:00:31.390 --> 01:00:33.435
So the compiler can do
combinatorial logic.

01:00:33.435 --> 01:00:34.740
It can do state.

01:00:34.740 --> 01:00:40.156
There's also some aspects that
can do spatial things as well.

01:00:40.156 --> 01:00:44.606
And again, this is
available online right now.

01:00:44.606 --> 01:00:46.640
I'm going to-- maybe I
should skip a few things.

01:00:46.640 --> 01:00:48.730
So very quickly, I'll tell you.

01:00:48.730 --> 01:00:52.252
So in the lab-- so
it's nice [INAUDIBLE]

01:00:52.252 --> 01:00:54.196
But if you can't do
anything in the lab,

01:00:54.196 --> 01:00:56.383
then nobody believes
you in the world

01:00:56.383 --> 01:00:59.625
of biology or synthetic biology.

01:00:59.625 --> 01:01:02.000
So we can build big things.

01:01:02.000 --> 01:01:08.410
So here, you can-- there's a
library of promoters and genes

01:01:08.410 --> 01:01:09.690
that we have available.

01:01:09.690 --> 01:01:12.020
And you can decide,
I want to build

01:01:12.020 --> 01:01:14.310
a new circuit has these
promoter gene pairs.

01:01:14.310 --> 01:01:19.840
And within five days, you can
create in the lab that circuit.

01:01:19.840 --> 01:01:21.970
And we've been able
to demonstrate things

01:01:21.970 --> 01:01:26.330
that are 61, 64 Kb that
you build in five days.

01:01:26.330 --> 01:01:28.790
And you build them efficiently.

01:01:28.790 --> 01:01:32.710
And then the undergrads
that we're teaching also

01:01:32.710 --> 01:01:34.210
have been able to--
again, these are

01:01:34.210 --> 01:01:35.730
people to barely
knew what pipette

01:01:35.730 --> 01:01:40.440
are in the beginning a semester
can now efficiently build

01:01:40.440 --> 01:01:41.630
large circuits.

01:01:41.630 --> 01:01:48.550
So that's become an
easy to use technology.

01:01:48.550 --> 01:01:50.992
And then I mention
this notion that you

01:01:50.992 --> 01:01:52.200
can build this one at a time.

01:01:52.200 --> 01:01:54.200
But this very recent
development where

01:01:54.200 --> 01:01:59.360
you could build 200
versions of these at a time.

01:01:59.360 --> 01:02:01.380
OK, so you can build them.

01:02:01.380 --> 01:02:03.195
We can then-- again,
I'll skip this part.

01:02:03.195 --> 01:02:04.070
You could build them.

01:02:04.070 --> 01:02:06.250
You can put them
into mammalian cells.

01:02:06.250 --> 01:02:08.050
These things work.

01:02:08.050 --> 01:02:12.130
And we have lots and lots
of parts-- regulatory parts.

01:02:12.130 --> 01:02:18.260
And so let me skip this
particular example.

01:02:18.260 --> 01:02:22.360
So this is-- the two
sentence explanation

01:02:22.360 --> 01:02:25.200
is, OK, you build lots of parts.

01:02:25.200 --> 01:02:27.240
You can build modules.

01:02:27.240 --> 01:02:29.700
And then you put
modules together.

01:02:29.700 --> 01:02:30.350
And guess what?

01:02:30.350 --> 01:02:31.460
This is biology.

01:02:31.460 --> 01:02:33.670
So these modules actually
affect each other,

01:02:33.670 --> 01:02:36.250
potentially in undesirable ways.

01:02:36.250 --> 01:02:38.670
So they can place
things like load.

01:02:38.670 --> 01:02:43.480
So whenever you have a module
that works really well-- maybe

01:02:43.480 --> 01:02:45.057
I will show you one slide.

01:02:45.057 --> 01:02:46.640
But I won't show you
how we solved it.

01:02:46.640 --> 01:02:49.790
But one slide-- so
this is a circuit.

01:02:49.790 --> 01:02:51.290
Any idea what this
circuit might do?

01:02:51.290 --> 01:02:52.825
So this is a regulatory circuit.

01:02:55.530 --> 01:02:58.030
They have an activator
activating itself

01:02:58.030 --> 01:03:00.700
and a repressor that
represses the activator.

01:03:00.700 --> 01:03:03.330
Have you seen this motif?

01:03:03.330 --> 01:03:06.376
So it's a-- some people are
whispering to themselves,

01:03:06.376 --> 01:03:06.990
doing this.

01:03:06.990 --> 01:03:10.190
So this is a
relaxation oscillator.

01:03:10.190 --> 01:03:12.000
When you do it by
yourself, it works great.

01:03:14.600 --> 01:03:16.150
So these are simulations.

01:03:16.150 --> 01:03:18.960
But then if you
connect it-- so it's

01:03:18.960 --> 01:03:21.210
nice to have an
oscillator in a cell,

01:03:21.210 --> 01:03:23.680
again, if you want to
have blinking bacteria

01:03:23.680 --> 01:03:27.210
or mammalian cells
which is, again, fun.

01:03:27.210 --> 01:03:29.970
But then you typically want
to connect it to something.

01:03:29.970 --> 01:03:32.950
So you spent three years
building an oscillator,

01:03:32.950 --> 01:03:34.430
got it to work.

01:03:34.430 --> 01:03:37.200
And now your adviser says, OK,
let's just get a paper on this.

01:03:37.200 --> 01:03:38.680
But before we get
the paper, I want

01:03:38.680 --> 01:03:40.430
you to connect it to
something meaningful.

01:03:40.430 --> 01:03:43.750
Because we want to go for
a high impact journal.

01:03:43.750 --> 01:03:47.520
And then you connect
it to something.

01:03:47.520 --> 01:03:52.980
And you realize that it
doesn't work anymore.

01:03:52.980 --> 01:03:54.760
I think you're really
pissed off at-- you

01:03:54.760 --> 01:03:58.180
will be pissed off
at your adviser.

01:03:58.180 --> 01:04:01.720
I don't know if your adviser
would want to be mean to you.

01:04:01.720 --> 01:04:06.120
But anyways, so that's a
real problem in biology

01:04:06.120 --> 01:04:08.720
or synthetic biology
is that these things

01:04:08.720 --> 01:04:12.250
have impacts on each
other that, first of all,

01:04:12.250 --> 01:04:15.770
are going to be
undesirable but because

01:04:15.770 --> 01:04:20.200
of unique aspects, for
example, of the substrate.

01:04:20.200 --> 01:04:23.580
Now, they're not
as unique as you

01:04:23.580 --> 01:04:26.940
might think because
these load issues also

01:04:26.940 --> 01:04:30.460
come to play in
electronic circuits.

01:04:30.460 --> 01:04:32.670
And so in electronics
circuits, these things

01:04:32.670 --> 01:04:35.630
have been solved decades
ago with these notions

01:04:35.630 --> 01:04:37.120
of load drivers.

01:04:37.120 --> 01:04:41.285
So if you have a module that
has, for example, high fanout

01:04:41.285 --> 01:04:43.730
and it controls many
things, then guess what?

01:04:43.730 --> 01:04:46.050
Those things that it's
trying to control,

01:04:46.050 --> 01:04:49.340
even though the arrows are
pointing one direction,

01:04:49.340 --> 01:04:52.230
they actually have an
upstream effect too.

01:04:52.230 --> 01:04:55.534
So those modules that you think
you're-- the downstream modules

01:04:55.534 --> 01:04:57.950
that you're just controlling,
they actually have an impact

01:04:57.950 --> 01:04:59.110
on the upstream.

01:04:59.110 --> 01:05:01.865
So what you do-- in electronics,
you just build a load driver.

01:05:01.865 --> 01:05:04.550
And it basically
takes care of things.

01:05:04.550 --> 01:05:08.400
So now there's no kind
of parasitic effect.

01:05:08.400 --> 01:05:12.010
And so we've demonstrated
that we can also

01:05:12.010 --> 01:05:14.710
build-- so this is a
notion of retroactivity.

01:05:14.710 --> 01:05:17.920
And this is work with
Domitilla Del Vecchio here.

01:05:17.920 --> 01:05:20.380
And we've demonstrated
that we can-- so I wont'

01:05:20.380 --> 01:05:23.130
go into the details here-- so
we can actually solve this.

01:05:23.130 --> 01:05:25.590
So this is a real problem
even in simple circuits

01:05:25.590 --> 01:05:26.960
experimentally.

01:05:26.960 --> 01:05:33.080
And then it uses this cool
notion of timescale separation

01:05:33.080 --> 01:05:34.480
to solve it.

01:05:34.480 --> 01:05:38.100
But we can take these things
that are highly affected

01:05:38.100 --> 01:05:40.760
to go from black to red
and put a load driver in

01:05:40.760 --> 01:05:43.750
and then it fixes it.

01:05:43.750 --> 01:05:49.050
So this should hopefully lead
to the generation of much more

01:05:49.050 --> 01:05:53.600
predictable circuit
construction targeting

01:05:53.600 --> 01:05:59.710
one of the real challenges in
scaling going from simple toy

01:05:59.710 --> 01:06:01.640
modules to large scale systems.

01:06:05.390 --> 01:06:12.030
So I'll skip that and then move
on to another example-- oh,

01:06:12.030 --> 01:06:16.250
sorry, an example
of an application.

01:06:16.250 --> 01:06:18.610
So in this particular
case-- again, besides

01:06:18.610 --> 01:06:22.490
turning GFP on and off, what
can we do with synthetic biology

01:06:22.490 --> 01:06:28.450
that we can't necessarily do
without synthetic biology?

01:06:28.450 --> 01:06:32.170
And so one of the most
important challenges

01:06:32.170 --> 01:06:34.990
in cancer therapeutics
is specificity--

01:06:34.990 --> 01:06:36.872
perhaps the most important.

01:06:36.872 --> 01:06:38.580
There are other things
that are important

01:06:38.580 --> 01:06:41.090
such as delivery of
a therapeutic agent.

01:06:41.090 --> 01:06:45.990
But as you improve specificity
that it can actually

01:06:45.990 --> 01:06:49.030
change how you do delivery
of a therapeutic agent.

01:06:49.030 --> 01:06:53.040
So if you have a therapeutic
agent that's much more specific

01:06:53.040 --> 01:06:58.512
and has no side effects, you
can deliver lots and lots more.

01:06:58.512 --> 01:06:59.970
So these things
are highly related.

01:06:59.970 --> 01:07:04.220
So imagine a therapeutic agent
that recognizes something

01:07:04.220 --> 01:07:07.950
on a cell surface and then
says, this is a tumor cell.

01:07:07.950 --> 01:07:10.290
Kill it.

01:07:10.290 --> 01:07:14.630
So there are actually a
lot of efforts ongoing that

01:07:14.630 --> 01:07:17.370
have this particular approach.

01:07:17.370 --> 01:07:23.240
So whether it's small molecules,
whether these vesicles that

01:07:23.240 --> 01:07:28.020
contain various cell surface--
various molecules that bind

01:07:28.020 --> 01:07:32.440
to cell surface receptors,
a really hot area right

01:07:32.440 --> 01:07:35.751
now is these engineered
killer T cells.

01:07:35.751 --> 01:07:37.250
So this notion that
you can actually

01:07:37.250 --> 01:07:42.660
engineer your immune system
by placing various receptors

01:07:42.660 --> 01:07:44.720
on these killer T
cells which then

01:07:44.720 --> 01:07:49.860
go and then bind tumor cells
by recognizing something

01:07:49.860 --> 01:07:54.750
on the cell surface
and then kill those.

01:07:54.750 --> 01:07:59.810
Sounds great, maybe, depending
on your perspective, or not

01:07:59.810 --> 01:08:02.560
so great, depending
on your perspective.

01:08:02.560 --> 01:08:05.910
So what's happened with
those is they're really

01:08:05.910 --> 01:08:08.300
sometimes great at
eliminating your tumors.

01:08:08.300 --> 01:08:10.470
But then the side effects
can be horrendous.

01:08:10.470 --> 01:08:14.080
And so what happens is that
those cell surface markers

01:08:14.080 --> 01:08:16.189
that exist on the tumor
cells-- guess what?

01:08:16.189 --> 01:08:18.330
They're also present on
healthy cells as well.

01:08:18.330 --> 01:08:21.689
And so the side effects for
those killer T cells approaches

01:08:21.689 --> 01:08:27.790
have been, I mean, just
terrible in various patients.

01:08:27.790 --> 01:08:30.580
So one-- this should
not be a shock.

01:08:30.580 --> 01:08:36.870
One marker is typically not
enough to distinguish a cancer

01:08:36.870 --> 01:08:40.080
cell versus a healthy cell.

01:08:40.080 --> 01:08:40.960
Seems pretty obvious.

01:08:40.960 --> 01:08:43.500
So actually, what they've been
doing with these engineered

01:08:43.500 --> 01:08:48.540
killer T cells is
now just saying, OK,

01:08:48.540 --> 01:08:50.470
has to be this cell
surface receptors,

01:08:50.470 --> 01:08:53.399
but also cannot be this.

01:08:53.399 --> 01:08:57.920
So it's like, and biomarker
one and not-- you know,

01:08:57.920 --> 01:09:01.100
biomarker one, and
not biomarker two.

01:09:01.100 --> 01:09:05.779
OK, so they're starting to
engineer more logic into these,

01:09:05.779 --> 01:09:08.569
more multi-input logic
into these things.

01:09:08.569 --> 01:09:10.620
And so they haven't done
any clinical trials.

01:09:10.620 --> 01:09:14.310
But I saw a couple weeks
ago where they've actually

01:09:14.310 --> 01:09:18.649
made progress in Petri dishes.

01:09:18.649 --> 01:09:21.540
So we recognized this as
an issue several years ago.

01:09:21.540 --> 01:09:23.290
And this is work
with Coby Benson.

01:09:23.290 --> 01:09:27.220
And so really, all the
information that you want

01:09:27.220 --> 01:09:32.279
is actually inside the cell to
make a highly precise decision

01:09:32.279 --> 01:09:35.420
about whether this particular
cell is cancerous or not.

01:09:35.420 --> 01:09:38.319
OK, so the idea is when
the therapeutic agent,

01:09:38.319 --> 01:09:40.859
does the computation
by integrating

01:09:40.859 --> 01:09:43.060
multiple pieces of the
sensory information

01:09:43.060 --> 01:09:45.630
and then decides whether
to express a killer protein

01:09:45.630 --> 01:09:47.649
or not.

01:09:47.649 --> 01:09:52.529
Now, even if this is not
the cure for cancer--

01:09:52.529 --> 01:09:55.650
can't really
guarantee that, right?

01:09:55.650 --> 01:09:58.060
But even if this is
not, just this notion

01:09:58.060 --> 01:10:03.190
of being able to create multi
input circuits to go into cells

01:10:03.190 --> 01:10:07.240
and analyze in live
cells real time what's

01:10:07.240 --> 01:10:11.050
going on in the cell
with various molecules

01:10:11.050 --> 01:10:14.490
that might be interesting-- that
has applications I would again

01:10:14.490 --> 01:10:18.114
say just about anywhere you
could imagine in biology.

01:10:18.114 --> 01:10:19.530
So one of the
things, for example,

01:10:19.530 --> 01:10:23.000
we're looking at-- I mentioned
this notion of organs

01:10:23.000 --> 01:10:25.280
on a chip or programmed
organs on a chip.

01:10:25.280 --> 01:10:27.010
So one of the things
we're looking at now

01:10:27.010 --> 01:10:31.690
is placing these types
of sensory circuits

01:10:31.690 --> 01:10:38.440
into cells within
this organ on a chip.

01:10:38.440 --> 01:10:42.544
And so the idea would be expose
cells to these drug candidates.

01:10:42.544 --> 01:10:44.210
And then the cells
light up in different

01:10:44.210 --> 01:10:47.390
colors to tell you how
they're responding to it.

01:10:47.390 --> 01:10:52.160
So for example, certain color
green would mean just fine.

01:10:52.160 --> 01:10:54.870
Green with red and
yellow would indicate

01:10:54.870 --> 01:10:58.410
that some apoptotic
pathway is being expressed

01:10:58.410 --> 01:11:03.120
or this drug is affecting
this proliferation

01:11:03.120 --> 01:11:05.700
path or this pathway
or that pathway.

01:11:05.700 --> 01:11:07.240
And so these
mechanisms can tell you

01:11:07.240 --> 01:11:11.640
in real time in
single cells-- also

01:11:11.640 --> 01:11:16.130
specially-- what kind
of impact there is to,

01:11:16.130 --> 01:11:19.310
let's say, the drug
candidate you're looking at.

01:11:19.310 --> 01:11:21.270
So again, this is
something that I

01:11:21.270 --> 01:11:24.990
think would have an impact
today if it was available,

01:11:24.990 --> 01:11:28.360
but realistically
making prototypes

01:11:28.360 --> 01:11:30.540
within the next
year to three years.

01:11:30.540 --> 01:11:34.970
OK, so we started with
looking at HeLa cancer cells

01:11:34.970 --> 01:11:36.200
as an example.

01:11:36.200 --> 01:11:38.730
And so we did some
bioinformatics.

01:11:38.730 --> 01:11:42.840
And we saw that based on
microRNA profiles that

01:11:42.840 --> 01:11:48.590
were available to us, this
would be a bio program that

01:11:48.590 --> 01:11:53.270
would distinguish HeLa cells
from all other cell types.

01:11:53.270 --> 01:11:56.850
And so some of you are
familiar with this way

01:11:56.850 --> 01:11:58.010
of annotating logic.

01:12:00.790 --> 01:12:03.840
Pretty ugly if you're not
used it, but it's simple.

01:12:03.840 --> 01:12:06.600
This just says, these
microRNAs have to be low

01:12:06.600 --> 01:12:08.600
and these microRNAs
have to be high.

01:12:08.600 --> 01:12:10.565
And that's a HeLa cancer cell.

01:12:10.565 --> 01:12:13.720
Because that's the
basic logic in this.

01:12:13.720 --> 01:12:17.330
So it's a rather
simple logic statement.

01:12:17.330 --> 01:12:21.290
What we would argue is
that every cell type

01:12:21.290 --> 01:12:24.620
would have a logic
statement that

01:12:24.620 --> 01:12:28.770
would be true of that cell type
and not true of other cells.

01:12:32.100 --> 01:12:33.660
It's almost by definition.

01:12:33.660 --> 01:12:36.860
There's something different
about that cell than other cell

01:12:36.860 --> 01:12:37.360
types.

01:12:37.360 --> 01:12:39.726
Now, it gets
interesting when you

01:12:39.726 --> 01:12:41.600
start talking about
heterogeneous population.

01:12:41.600 --> 01:12:44.750
So for example, and that's--
I won't get into details about

01:12:44.750 --> 01:12:45.310
that.

01:12:45.310 --> 01:12:47.670
But there is heterogeneity.

01:12:47.670 --> 01:12:51.670
There's heterogeneity in tumors.

01:12:51.670 --> 01:12:57.580
So the cool thing you can do--
this is a six input and gate.

01:12:57.580 --> 01:12:59.530
So if you have heterogeneity,
where you can do

01:12:59.530 --> 01:13:04.060
is you can have a six input
and gate with an or operation.

01:13:04.060 --> 01:13:07.810
So you can identify this
sub population of the tumor

01:13:07.810 --> 01:13:10.020
has this microRNA profile.

01:13:10.020 --> 01:13:13.380
And this cell population has
a different microRNA profile.

01:13:13.380 --> 01:13:17.070
And all you have to do is
create a new logic circuit

01:13:17.070 --> 01:13:21.620
and just combine them as like
a cocktail drug as an or gate.

01:13:21.620 --> 01:13:23.400
So this is a really
general approach

01:13:23.400 --> 01:13:25.390
that I think should
be relevant, again,

01:13:25.390 --> 01:13:26.922
for any kind of population.

01:13:26.922 --> 01:13:28.380
And you can also
set the thresholds

01:13:28.380 --> 01:13:32.610
and have all these fun things
that you can do with it.

01:13:32.610 --> 01:13:38.040
So I think the question really
is, is that microRNA expression

01:13:38.040 --> 01:13:42.060
profile sufficiently
small so that it

01:13:42.060 --> 01:13:47.120
can be encoded on a circuit
that you can deliver into cells?

01:13:47.120 --> 01:13:49.120
And can you do it reliably?

01:13:49.120 --> 01:13:52.330
That really is the challenge.

01:13:52.330 --> 01:13:56.030
OK, so the idea is that you
have a therapeutic agent,

01:13:56.030 --> 01:13:58.030
goes into a cell
does the computation,

01:13:58.030 --> 01:14:02.880
and then decides whether to
make a killer protein or not.

01:14:02.880 --> 01:14:05.270
OK, so how does
this actually work?

01:14:05.270 --> 01:14:11.650
So how do we implement an and
gate with inverted inputs?

01:14:11.650 --> 01:14:14.680
OK, so that's one
portion of the circuit.

01:14:14.680 --> 01:14:18.430
So it's actually-- for microRNA,
it's actually pretty easy.

01:14:18.430 --> 01:14:22.010
So what you do is you
put microRNA target sites

01:14:22.010 --> 01:14:25.710
on the gene of interest
or the output gene.

01:14:25.710 --> 01:14:31.430
And so the idea is that the
only way that this gene is being

01:14:31.430 --> 01:14:33.450
expressed, this output
protein is expressed,

01:14:33.450 --> 01:14:37.800
is when this is low and
this is low and this is low.

01:14:37.800 --> 01:14:41.456
So in principle, this
is pretty easy to do.

01:14:41.456 --> 01:14:44.310
OK, so that's how we have
a three input and gate

01:14:44.310 --> 01:14:45.830
with inverted inputs.

01:14:45.830 --> 01:14:47.900
And now we can
add logic to that.

01:14:47.900 --> 01:14:53.950
So now if we want to make sure
that the output is high also

01:14:53.950 --> 01:14:56.890
when this input as high as well.

01:14:56.890 --> 01:15:01.090
And so what we do-- so
remember the first circuit

01:15:01.090 --> 01:15:03.460
that I showed you
was this cascade.

01:15:03.460 --> 01:15:08.280
And the cascade was a bunch
of repressors that would then

01:15:08.280 --> 01:15:10.844
cascade that did the
not not operation.

01:15:10.844 --> 01:15:12.760
So when you think about
the not not operation,

01:15:12.760 --> 01:15:16.550
it doesn't seem like a
very useful operation.

01:15:16.550 --> 01:15:20.240
But this here, the not not
operation, is actually useful.

01:15:20.240 --> 01:15:25.300
So it can convert
a microRNA sensor

01:15:25.300 --> 01:15:29.450
into something that can be
integrated with other sensors

01:15:29.450 --> 01:15:31.920
to create the four
input logic function.

01:15:31.920 --> 01:15:35.080
So this microRNA has
to be high in order

01:15:35.080 --> 01:15:37.340
to repress this
repressor which then

01:15:37.340 --> 01:15:39.550
represses the final output.

01:15:39.550 --> 01:15:44.830
So the only time that the
final output can be high

01:15:44.830 --> 01:15:50.300
is when this is high and
these three are low, OK?

01:15:50.300 --> 01:15:51.780
And then you can continue.

01:15:51.780 --> 01:15:54.190
And you can add another one.

01:15:54.190 --> 01:15:55.950
This is slightly more
complex in the sense

01:15:55.950 --> 01:16:01.510
that now, essentially the
sum of these microRNAs

01:16:01.510 --> 01:16:06.182
has to be high in
order for this branch

01:16:06.182 --> 01:16:11.071
to allow expression here.

01:16:11.071 --> 01:16:12.820
So it's slightly more
complex in the sense

01:16:12.820 --> 01:16:15.560
that it's not just--
it's like a plus-- again,

01:16:15.560 --> 01:16:18.170
like a plus operation,
which we found

01:16:18.170 --> 01:16:21.980
to be actually the
relevant operation here.

01:16:21.980 --> 01:16:23.500
And so the only
time the output high

01:16:23.500 --> 01:16:26.800
is when this microRNA is
high, combination of these two

01:16:26.800 --> 01:16:29.390
is high, and these are low.

01:16:29.390 --> 01:16:33.055
Anybody see a
potential problem here?

01:16:33.055 --> 01:16:34.556
A potential crosstalk?

01:16:42.524 --> 01:16:45.014
So everybody here
understand the circuit?

01:16:45.014 --> 01:16:48.624
Raise your hand if you actually
understand the circuit.

01:16:48.624 --> 01:16:54.010
OK, that's not a lot of people.

01:16:54.010 --> 01:16:57.900
OK, maybe I should
go back for a second.

01:16:57.900 --> 01:17:01.360
Everybody-- raise your hand
if you understand this.

01:17:01.360 --> 01:17:06.310
OK, so if microRNA is
high, they repress--

01:17:06.310 --> 01:17:09.280
they result in
degradation of the RNA.

01:17:09.280 --> 01:17:13.730
So all of these have to be low
in order for this to be high.

01:17:13.730 --> 01:17:18.370
OK, now if we had
this, this RNA--

01:17:18.370 --> 01:17:20.900
let's focus just on
this maybe to simplify.

01:17:20.900 --> 01:17:22.750
So this microRNA
represses-- this

01:17:22.750 --> 01:17:26.640
is a repressor which
represses this, OK?

01:17:26.640 --> 01:17:32.320
So if this microRNA is low,
then this repressor as high.

01:17:32.320 --> 01:17:34.720
And as a result of
that, this repressor

01:17:34.720 --> 01:17:39.050
represses this
promoter regardless.

01:17:39.050 --> 01:17:41.370
So it doesn't matter
what these are.

01:17:41.370 --> 01:17:43.890
If this is low, this
repressor is high.

01:17:43.890 --> 01:17:47.310
And then there's no way that
this output can be high.

01:17:47.310 --> 01:17:49.550
Now, if this is
microRNA is high,

01:17:49.550 --> 01:17:54.960
then this becomes low, allowing
this to potentially be high.

01:17:54.960 --> 01:17:58.566
Doesn't guarantee it, but
it has a potential of doing.

01:17:58.566 --> 01:18:01.540
OK, now raise your hand
if you understand that.

01:18:01.540 --> 01:18:02.916
OK, more.

01:18:02.916 --> 01:18:04.960
OK, cool.

01:18:04.960 --> 01:18:07.370
That's progress.

01:18:07.370 --> 01:18:10.720
By the way, this was
not a trivial circuit.

01:18:10.720 --> 01:18:13.640
There's a lot of
connections here.

01:18:13.640 --> 01:18:18.050
And then we connect the same--
now we have the same repressor.

01:18:18.050 --> 01:18:20.560
So this microRNA--
these set of microRNAs

01:18:20.560 --> 01:18:25.760
repress the same repressor
which is now repressing this.

01:18:25.760 --> 01:18:29.200
So why is it the
case that you need--

01:18:29.200 --> 01:18:31.420
let's just assume
this is one microRNA,

01:18:31.420 --> 01:18:32.570
this is another micro.

01:18:32.570 --> 01:18:38.710
Why do you need both microRNAs
to allow high output?

01:18:38.710 --> 01:18:41.851
And then I will not
let anyone leave

01:18:41.851 --> 01:18:45.069
until you answer the question.

01:18:45.069 --> 01:18:45.860
And I can sit down.

01:18:48.750 --> 01:18:50.964
So why-- and then
we'll stop there.

01:18:55.160 --> 01:18:57.689
And everybody will believe
me that the cure for cancer,

01:18:57.689 --> 01:18:58.730
you got it figure it out.

01:18:58.730 --> 01:19:05.900
Otherwise-- so
there's-- oh, thank you.

01:19:05.900 --> 01:19:08.140
Letting-- you will be the hero.

01:19:08.140 --> 01:19:13.660
AUDIENCE: So if the
microRNAs are not present,

01:19:13.660 --> 01:19:16.472
then you're going to get an
expression of Lacks E. So--

01:19:16.472 --> 01:19:16.972
PROF.

01:19:16.972 --> 01:19:18.174
RON WEISS: Lack I.

01:19:18.174 --> 01:19:20.860
AUDIENCE: Yeah, like eyes.

01:19:20.860 --> 01:19:25.900
So only if both the microRNAs
are high and present

01:19:25.900 --> 01:19:29.180
do you repress both
of the lack I's

01:19:29.180 --> 01:19:32.663
which then allow for
the expression of the--

01:19:32.663 --> 01:19:33.163
PROF.

01:19:33.163 --> 01:19:33.954
RON WEISS: Exactly.

01:19:33.954 --> 01:19:36.208
And what happens if
one of them is present

01:19:36.208 --> 01:19:37.260
and the other one is not?

01:19:37.260 --> 01:19:39.385
So if this microRNA is
present and this one is not?

01:19:39.385 --> 01:19:42.240
AUDIENCE: Then the lack
I still gets expressed

01:19:42.240 --> 01:19:44.510
because the other one
is still not repressed.

01:19:44.510 --> 01:19:45.010
PROF.

01:19:45.010 --> 01:19:45.801
RON WEISS: Exactly.

01:19:45.801 --> 01:19:48.670
So the only way that
you can actually

01:19:48.670 --> 01:19:53.020
have no expression of lack
I is when this is high

01:19:53.020 --> 01:19:54.670
and this is high.

01:19:54.670 --> 01:19:58.180
So this is essentially
like a two input and gate.

01:19:58.180 --> 01:20:01.110
These two have to be high
to allow this promoter

01:20:01.110 --> 01:20:02.720
to potentially be high.

01:20:02.720 --> 01:20:08.350
And in the other three logic
cases where one of those

01:20:08.350 --> 01:20:11.090
is low, lack I is
expressed and hence

01:20:11.090 --> 01:20:15.690
does not allow the output
protein to be expressed, OK?

01:20:15.690 --> 01:20:16.205
Yeah.

01:20:16.205 --> 01:20:17.996
AUDIENCE: So why do
you have the partition?

01:20:17.996 --> 01:20:19.412
All three are
acting the same way.

01:20:22.066 --> 01:20:22.566
PROF.

01:20:22.566 --> 01:20:23.815
RON WEISS: Ah, great question.

01:20:23.815 --> 01:20:32.490
So what happens if microRNA
21, 17, and 38 were all here?

01:20:32.490 --> 01:20:34.230
So that's a great question.

01:20:34.230 --> 01:20:35.890
So that's a question, right?

01:20:35.890 --> 01:20:39.520
So if you put microRNA
21 here, 17, and 38?

01:20:39.520 --> 01:20:41.026
What is the logic function here?

01:20:41.026 --> 01:20:41.525
Yeah.

01:20:41.525 --> 01:20:43.191
AUDIENCE: Then you
only need one of them

01:20:43.191 --> 01:20:45.374
in order to degrade the RNA.

01:20:45.374 --> 01:20:48.177
And then you won't
get the same logic.

01:20:48.177 --> 01:20:48.677
PROF.

01:20:48.677 --> 01:20:49.385
RON WEISS: Great.

01:20:49.385 --> 01:20:52.320
So then it becomes
essentially an or.

01:20:52.320 --> 01:20:55.270
This will be an or
operation of the microRNAs

01:20:55.270 --> 01:20:58.940
where what we want is an and
operation on the microRNA.

01:20:58.940 --> 01:21:02.612
So that by having
two separate paths

01:21:02.612 --> 01:21:04.612
that have the same repressor
where they converge

01:21:04.612 --> 01:21:07.960
on the same repressor, we
achieve the and operation.

01:21:07.960 --> 01:21:09.700
Where we have them on
the same repressor,

01:21:09.700 --> 01:21:12.860
they do the or operation.

01:21:12.860 --> 01:21:14.270
That's a great question.

01:21:14.270 --> 01:21:18.590
OK, so this works.

01:21:18.590 --> 01:21:21.820
And maybe I'll say thank you.

01:21:21.820 --> 01:21:23.790
I'll stop there.