﻿WEBVTT

1
00:00:01.424 --> 00:00:04.007
(upbeat music)

2
00:00:11.850 --> 00:00:13.709
<v ->Thank you for coming.</v>

3
00:00:13.709 --> 00:00:15.473
It's indeed my pleasure to have Mihai Pop

4
00:00:15.473 --> 00:00:18.348
kicking off the fall colloquium series.

5
00:00:18.348 --> 00:00:21.253
Apologies to those of who couldn't be here today

6
00:00:21.253 --> 00:00:22.974
because of Rosh Hashanah.

7
00:00:22.974 --> 00:00:24.901
So that's one of the reasons why we are taping the talks.

8
00:00:24.901 --> 00:00:26.782
So happy Rosh Hashanah if you watch the video.

9
00:00:26.782 --> 00:00:30.199
Mihai has been a wonderful colleague here

10
00:00:31.124 --> 00:00:33.121
for a number of years.

11
00:00:33.121 --> 00:00:35.628
He got his PhD at Johns Hopkins University

12
00:00:35.628 --> 00:00:40.294
doing some stuff working on my end of the world.

13
00:00:40.294 --> 00:00:42.060
He worked with Professor Rao Kosaraju

14
00:00:42.060 --> 00:00:44.162
at John Hopkins doing geographic information systems

15
00:00:44.162 --> 00:00:47.558
and algorithms and then he joined Steven Salzberg

16
00:00:47.558 --> 00:00:50.298
working at Tiger doing a lot of genome analysis

17
00:00:50.298 --> 00:00:53.328
and he has been a member of UEM, CBCBMCS

18
00:00:53.328 --> 00:00:56.416
for a number of years and his work

19
00:00:56.416 --> 00:00:57.879
has sort of evolved over time.

20
00:00:57.879 --> 00:01:00.300
He started off doing mostly genome analysis,

21
00:01:00.300 --> 00:01:01.617
and now he works in the microbiome lately,

22
00:01:01.617 --> 00:01:04.284
and there's a number of software packages

23
00:01:04.284 --> 00:01:05.727
their group has released.

24
00:01:05.727 --> 00:01:07.446
So I just wanna mention one thought.

25
00:01:07.446 --> 00:01:09.187
I just, he's quite well regarded,

26
00:01:09.187 --> 00:01:13.158
and it should be great to have Mihai speak to us, thanks.

27
00:01:13.158 --> 00:01:14.158
<v ->Thank you.</v>

28
00:01:15.573 --> 00:01:17.244
Yeah, thanks all for being here.

29
00:01:17.244 --> 00:01:21.198
So I can't use my laser pointer on this,

30
00:01:21.198 --> 00:01:23.261
so I'll use my hands.

31
00:01:23.261 --> 00:01:25.119
Hopefully that will be okay with everyone.

32
00:01:25.119 --> 00:01:29.089
So, to frame my talk and the kind of things that

33
00:01:29.089 --> 00:01:33.594
I'm working on right now, I want to kind of propose

34
00:01:33.594 --> 00:01:36.514
one of the application areas that we're focusing in.

35
00:01:36.514 --> 00:01:38.981
So these are some pictures taken by one of the students

36
00:01:38.981 --> 00:01:41.558
that I co-advised in Kolkata,

37
00:01:41.558 --> 00:01:44.414
and this is in some parts of Kolkata where you,

38
00:01:44.414 --> 00:01:47.315
how you get your drinking water.

39
00:01:47.315 --> 00:01:49.546
So, so clearly, clearly unsanitary and the,

40
00:01:49.546 --> 00:01:51.713
the result of this is that

41
00:01:52.983 --> 00:01:57.066
there are lots of instances of diarrheal disease,

42
00:01:58.462 --> 00:02:00.456
and generally in the world, which is something

43
00:02:00.456 --> 00:02:02.271
I didn't know before we started this study,

44
00:02:02.271 --> 00:02:04.730
was that diarrhea actually kills more people

45
00:02:04.730 --> 00:02:08.679
or more children than HIV, malaria, and measles combined.

46
00:02:08.679 --> 00:02:10.467
All right, so this is not something you hear

47
00:02:10.467 --> 00:02:12.116
in the news all the time, diarrhea, diarrhea.

48
00:02:12.116 --> 00:02:14.249
You hear about HIV and you hear about malaria,

49
00:02:14.249 --> 00:02:16.133
you hear about measles, but diarrhea is actually

50
00:02:16.133 --> 00:02:18.478
much, much, much more deadly.

51
00:02:18.478 --> 00:02:21.148
So, and this is the area, this is one of the studies

52
00:02:21.148 --> 00:02:23.148
that we got involved in,

53
00:02:24.210 --> 00:02:25.792
trying to understand a little better

54
00:02:25.792 --> 00:02:27.789
what happens with diarrhea,

55
00:02:27.789 --> 00:02:29.643
and because I'm a computer scientist I'm gonna

56
00:02:29.643 --> 00:02:32.526
explain to you what computational challenges we run into.

57
00:02:32.526 --> 00:02:36.798
But I also want to stress that this is probably harder

58
00:02:36.798 --> 00:02:39.306
than proving any theorem.

59
00:02:39.306 --> 00:02:41.210
Solving this problem is harder than proving any theory

60
00:02:41.210 --> 00:02:44.710
or generating any algorithm in the world.

61
00:02:47.317 --> 00:02:50.986
And those are the kind of problems that motivate me.

62
00:02:50.986 --> 00:02:52.565
And the one thing with diarrhea and this is something

63
00:02:52.565 --> 00:02:55.862
that your, any biologist says, well but,

64
00:02:55.862 --> 00:02:57.720
well, any doctor probably,

65
00:02:57.720 --> 00:02:59.039
I don't know if any biologists,

66
00:02:59.039 --> 00:03:01.133
but any doctor would say I know what causes diarrhea,

67
00:03:01.133 --> 00:03:02.616
and they can immediately list

68
00:03:02.616 --> 00:03:06.311
a bunch of names of organisms that cause diarrhea.

69
00:03:06.311 --> 00:03:08.311
And that's all and good,

70
00:03:09.190 --> 00:03:12.766
and our colleagues at the school of medicine

71
00:03:12.766 --> 00:03:15.181
tried to develop, well started a study,

72
00:03:15.181 --> 00:03:17.014
to try to understand a little better.

73
00:03:17.014 --> 00:03:18.269
Well, we know what causes diarrhea.

74
00:03:18.269 --> 00:03:20.382
Let's find out which of those causes are the most important

75
00:03:20.382 --> 00:03:22.867
and perhaps we can, if we know that norovirus

76
00:03:22.867 --> 00:03:25.189
is the most important at least it is the most important

77
00:03:25.189 --> 00:03:26.838
for the Disney cruises, right.

78
00:03:26.838 --> 00:03:29.714
But it's, we can, we can figure out perhaps how to develop

79
00:03:29.714 --> 00:03:32.828
new vaccines, or how to develop new treatments and so on.

80
00:03:32.828 --> 00:03:33.879
So, they started this study.

81
00:03:33.879 --> 00:03:35.731
It's actually an amazingly large study.

82
00:03:35.731 --> 00:03:39.237
So they looked at 23,000 children in seven countries.

83
00:03:39.237 --> 00:03:41.768
Out of those we looked at four of them in more detail

84
00:03:41.768 --> 00:03:43.835
and I'll talk a little more about that in a second.

85
00:03:43.835 --> 00:03:47.918
But this is an extremely large number of children

86
00:03:48.804 --> 00:03:50.984
especially as they had to collect samples.

87
00:03:50.984 --> 00:03:53.494
Often times they had to go on a motor bike on a dirt road

88
00:03:53.494 --> 00:03:55.677
to get to the small village to find the child

89
00:03:55.677 --> 00:03:58.719
and collect the samples and so on, and then process them.

90
00:03:58.719 --> 00:04:01.802
It was really, really an amazing feat

91
00:04:02.730 --> 00:04:03.980
of organization

92
00:04:05.441 --> 00:04:08.274
and so it's just an amazing study.

93
00:04:11.112 --> 00:04:12.459
And what they found out

94
00:04:12.459 --> 00:04:14.571
after looking at all of these children

95
00:04:14.571 --> 00:04:16.985
was that in over half of the cases of diarrhea

96
00:04:16.985 --> 00:04:19.281
they looked at they could not identify

97
00:04:19.281 --> 00:04:21.558
which pathogen caused diarrhea.

98
00:04:21.558 --> 00:04:23.280
Right, so we know so much about diarrhea,

99
00:04:23.280 --> 00:04:25.015
yet one in two children were sick,

100
00:04:25.015 --> 00:04:27.366
and we had no clue why they were sick

101
00:04:27.366 --> 00:04:29.711
and this is running the traditional tests that someone

102
00:04:29.711 --> 00:04:31.499
would run in a hospital.

103
00:04:31.499 --> 00:04:33.380
So it's equivalent to you going to a doctor, they run a test

104
00:04:33.380 --> 00:04:35.888
then you know half the time they eh,

105
00:04:35.888 --> 00:04:38.442
I don't know what's going on, you know?

106
00:04:38.442 --> 00:04:41.368
So this is pretty, pretty clearly we don't understand

107
00:04:41.368 --> 00:04:45.680
everything that we hope to understand about diarrhea.

108
00:04:45.680 --> 00:04:49.129
So, this is what, this is for at some level

109
00:04:49.129 --> 00:04:51.846
where I jumped into this project

110
00:04:51.846 --> 00:04:54.656
and I want to explain that biology is fairly simple.

111
00:04:54.656 --> 00:04:57.344
So you can explain what biologists

112
00:04:57.344 --> 00:04:59.411
want to do with common core standards.

113
00:04:59.411 --> 00:05:01.501
So, and these are the common core standards

114
00:05:01.501 --> 00:05:04.756
from first grade which I received recently.

115
00:05:04.756 --> 00:05:07.914
So, all right, so one of the things you do is you compare

116
00:05:07.914 --> 00:05:10.677
by identifying similarities and differences and you sort

117
00:05:10.677 --> 00:05:12.767
and classify into categories, right?

118
00:05:12.767 --> 00:05:16.297
So this is when you study diarrhea, this is what you do.

119
00:05:16.297 --> 00:05:18.570
In studying biological instances this is what you do,

120
00:05:18.570 --> 00:05:21.428
and people have been doing this since the,

121
00:05:21.428 --> 00:05:22.984
since the 17th century right?

122
00:05:22.984 --> 00:05:26.583
So this is, this is a picture of the first microscope

123
00:05:26.583 --> 00:05:28.833
from Anton van Leeuwenhoek,

124
00:05:30.275 --> 00:05:31.970
and this is what he could see, all right.

125
00:05:31.970 --> 00:05:34.153
He could see the little things and he's already, I mean,

126
00:05:34.153 --> 00:05:36.265
this is from the 17th century.

127
00:05:36.265 --> 00:05:37.932
He already figured out that he wanted

128
00:05:37.932 --> 00:05:40.184
to cluster things together based on how they look,

129
00:05:40.184 --> 00:05:42.349
or how they move and that kind of stuff, right?

130
00:05:42.349 --> 00:05:44.880
And that's, that was 17th century biology.

131
00:05:44.880 --> 00:05:48.990
It's probably a large part of 21st century biology as well.

132
00:05:48.990 --> 00:05:51.543
But a lot of 21st century biology now has slightly

133
00:05:51.543 --> 00:05:53.657
different microscopes and this has

134
00:05:53.657 --> 00:05:55.074
led to different pictures, right?

135
00:05:55.074 --> 00:05:57.558
So this is, this what we use today.

136
00:05:57.558 --> 00:05:59.946
And we don't just see maybe a couple hundred dots,

137
00:05:59.946 --> 00:06:01.900
you know, in a little plate.

138
00:06:01.900 --> 00:06:04.802
Now we can see tens of millions, hundreds of millions,

139
00:06:04.802 --> 00:06:07.552
of sequences that look like this.

140
00:06:08.677 --> 00:06:10.465
Now the question is how do you do this,

141
00:06:10.465 --> 00:06:12.000
how do you answer this basic question

142
00:06:12.000 --> 00:06:14.341
that first graders are learning how to answer,

143
00:06:14.341 --> 00:06:15.808
like what's the same and what's different,

144
00:06:15.808 --> 00:06:18.642
how do we answer it with computational tools?

145
00:06:18.642 --> 00:06:22.809
That's one of the first problems we have to tackle.

146
00:06:24.215 --> 00:06:26.653
Okay, so first, before trying to figure out exactly

147
00:06:26.653 --> 00:06:29.341
how to answer this question,

148
00:06:29.341 --> 00:06:31.251
you have to sort of understand a little bit

149
00:06:31.251 --> 00:06:32.946
where the data come from, okay.

150
00:06:32.946 --> 00:06:36.823
So it's not just that I'm giving you pieces of DNA.

151
00:06:36.823 --> 00:06:38.089
There's two different ways of getting pieces

152
00:06:38.089 --> 00:06:39.744
of DNA from bacteria.

153
00:06:39.744 --> 00:06:41.997
Also, then we can look at those sequences and try

154
00:06:41.997 --> 00:06:45.203
to understand exactly what's same and different.

155
00:06:45.203 --> 00:06:47.179
And so say in both situations here,

156
00:06:47.179 --> 00:06:50.059
I have a red organism and a blue organism.

157
00:06:50.059 --> 00:06:52.497
In the first case, I'm simply looking at a single gene,

158
00:06:52.497 --> 00:06:54.819
sequencing just that gene and asking, well,

159
00:06:54.819 --> 00:06:57.396
are those sequences from the same place in the genome

160
00:06:57.396 --> 00:06:59.834
from different genomes, are they similar or different?

161
00:06:59.834 --> 00:07:04.130
So this, at some level, is a fairly simple operation

162
00:07:04.130 --> 00:07:05.244
that I have to do,

163
00:07:05.244 --> 00:07:07.799
because I know exactly all those sequences come

164
00:07:07.799 --> 00:07:09.120
from the same exact place,

165
00:07:09.120 --> 00:07:11.695
and I can compare them directly to each other.

166
00:07:11.695 --> 00:07:14.138
So I can tell you that there's two red sequences

167
00:07:14.138 --> 00:07:17.638
and one blue one presumably fairly easily.

168
00:07:19.351 --> 00:07:20.988
There's another approach I can take,

169
00:07:20.988 --> 00:07:24.540
and that other approach involves just sequencing randomly.

170
00:07:24.540 --> 00:07:26.932
You take the organisms that might be in a sample.

171
00:07:26.932 --> 00:07:29.062
You break them apart.

172
00:07:29.062 --> 00:07:31.762
You generate sequences from them,

173
00:07:31.762 --> 00:07:34.595
and that's what people usually call whole genome sequencing,

174
00:07:34.595 --> 00:07:36.150
and if you do that,

175
00:07:36.150 --> 00:07:39.956
you're gonna get the same three sequences as you got here,

176
00:07:39.956 --> 00:07:42.466
but now there's no way to know that these two sequences

177
00:07:42.466 --> 00:07:44.208
at the top come from the red organism.

178
00:07:44.208 --> 00:07:45.806
They could come from completely different organisms.

179
00:07:45.806 --> 00:07:49.556
There's no way to connect them to each other.

180
00:07:52.079 --> 00:07:55.632
So the question is how do we deal with this?

181
00:07:55.632 --> 00:07:57.652
And the way we deal with this is by generating many,

182
00:07:57.652 --> 00:07:59.881
many, many, many more sequences

183
00:07:59.881 --> 00:08:02.478
until we can reconstruct those organisms.

184
00:08:02.478 --> 00:08:04.780
So now we have what we call an assembly

185
00:08:04.780 --> 00:08:07.311
of the two organisms: one that's red, one that's blue.

186
00:08:07.311 --> 00:08:09.912
And now we can tell, well, look,

187
00:08:09.912 --> 00:08:12.768
this sequence at the bottom is really related

188
00:08:12.768 --> 00:08:15.740
to all the other sequences that form the whole organism.

189
00:08:15.740 --> 00:08:17.969
The two red sequences at the top are connected

190
00:08:17.969 --> 00:08:19.659
by many, many other sequences,

191
00:08:19.659 --> 00:08:21.754
so they belong to the same organism,

192
00:08:21.754 --> 00:08:23.380
so now we can answer the same questions.

193
00:08:23.380 --> 00:08:25.696
So this is another area of the work

194
00:08:25.696 --> 00:08:26.747
that I'm gonna talk about,

195
00:08:26.747 --> 00:08:28.747
another area of my work.

196
00:08:29.974 --> 00:08:31.785
But first, a lot of what I've done has focused

197
00:08:31.785 --> 00:08:33.550
on this data,

198
00:08:33.550 --> 00:08:37.753
and if anyone has a guess why most of the data

199
00:08:37.753 --> 00:08:40.503
comes from experiments like this.

200
00:08:43.977 --> 00:08:45.603
Anybody?

201
00:08:45.603 --> 00:08:47.209
<v Audience Member>Money.</v>

202
00:08:47.209 --> 00:08:48.230
<v ->I'm sorry?</v>

203
00:08:48.230 --> 00:08:49.206
<v Audience Member>Money?</v>

204
00:08:49.206 --> 00:08:50.205
<v ->Money? It's exactly money.</v>

205
00:08:50.205 --> 00:08:51.714
So here I can generate three sequences.

206
00:08:51.714 --> 00:08:52.897
I can tell you there's two organisms.

207
00:08:52.897 --> 00:08:54.082
Here, to tell you there's two organisms,

208
00:08:54.082 --> 00:08:55.917
I have to generate several hundred sequences.

209
00:08:55.917 --> 00:08:58.233
In reality, the difference in costs,

210
00:08:58.233 --> 00:09:00.328
and we've costed this for grants and so on,

211
00:09:00.328 --> 00:09:02.764
it's a factor of somewhere between 10 and 100

212
00:09:02.764 --> 00:09:04.596
in terms of the cost of that experiment

213
00:09:04.596 --> 00:09:07.596
to run this way versus an experiment run this way.

214
00:09:07.596 --> 00:09:10.309
Or put another way, you can sequence 10

215
00:09:10.309 --> 00:09:12.844
to 100 times more samples with the same amount

216
00:09:12.844 --> 00:09:15.282
of money if you do it this way than this way.

217
00:09:15.282 --> 00:09:16.768
So that's actually the only way we could do

218
00:09:16.768 --> 00:09:17.976
that study on diarrhea.

219
00:09:17.976 --> 00:09:20.896
We only looked at 3,000 samples, but even there,

220
00:09:20.896 --> 00:09:22.852
we needed money not from the NIH

221
00:09:22.852 --> 00:09:24.431
but the Gates Foundation to get enough money

222
00:09:24.431 --> 00:09:27.635
to do the sequencing for that experiment.

223
00:09:27.635 --> 00:09:31.815
We wouldn't have been able to do it this way at all, okay.

224
00:09:31.815 --> 00:09:34.183
One of the problems,

225
00:09:34.183 --> 00:09:36.755
even though I'm saying that this problem is easy,

226
00:09:36.755 --> 00:09:38.752
one of the big problems that arises when I have something

227
00:09:38.752 --> 00:09:41.631
like 3 million sequences I want to compare to each other

228
00:09:41.631 --> 00:09:45.114
is that if I really want to find out how they cluster,

229
00:09:45.114 --> 00:09:49.015
and so one, I have to do, at least in theory,

230
00:09:49.015 --> 00:09:50.013
if you think about it,

231
00:09:50.013 --> 00:09:52.382
I have to do 3 million times 3 million operations,

232
00:09:52.382 --> 00:09:54.932
whereas I have 9 trillion operations that I have

233
00:09:54.932 --> 00:09:59.719
to make in order to build clusters of the sequences.

234
00:09:59.719 --> 00:10:02.784
And each operation is what we call,

235
00:10:02.784 --> 00:10:06.569
well, the way I think they should be done,

236
00:10:06.569 --> 00:10:08.868
and we don't all agree, but essentially,

237
00:10:08.868 --> 00:10:10.493
you have to do a full dynamic programming

238
00:10:10.493 --> 00:10:12.510
to do a full alignment between the two sequences.

239
00:10:12.510 --> 00:10:14.835
So that operation itself is quadratic in the size

240
00:10:14.835 --> 00:10:16.716
of the sequences themselves, okay.

241
00:10:16.716 --> 00:10:19.270
So essentially, you have a very expensive operation

242
00:10:19.270 --> 00:10:20.896
generating each of those edges,

243
00:10:20.896 --> 00:10:22.730
and then you have something that's on the order

244
00:10:22.730 --> 00:10:25.192
of n-squared different edges that I need

245
00:10:25.192 --> 00:10:27.862
to process in order to build a cluster.

246
00:10:27.862 --> 00:10:30.323
Needless to say, this was taking quite a bit of time

247
00:10:30.323 --> 00:10:34.490
on a computer, so we had to figure out ways to do it faster.

248
00:10:35.683 --> 00:10:38.589
And I think you have to give up some stuff,

249
00:10:38.589 --> 00:10:40.935
and I'll mention that,

250
00:10:40.935 --> 00:10:42.908
but essentially what we end up doing

251
00:10:42.908 --> 00:10:45.491
is using a clustering heuristic

252
00:10:46.554 --> 00:10:48.412
that's fairly simple.

253
00:10:48.412 --> 00:10:51.041
So essentially, this heuristic says, well, take a sequence.

254
00:10:51.041 --> 00:10:53.920
If it has not been clustered already

255
00:10:53.920 --> 00:10:56.405
it's obviously now gonna form a new cluster.

256
00:10:56.405 --> 00:10:58.514
And then, search through all the other sequences

257
00:10:58.514 --> 00:11:00.492
and recruit any sequence that matches that sequence,

258
00:11:00.492 --> 00:11:02.605
and now you've formed a cluster.

259
00:11:02.605 --> 00:11:05.199
Okay, so each of these, essentially I have this represented,

260
00:11:05.199 --> 00:11:08.775
and I'm just fishing out sequences

261
00:11:08.775 --> 00:11:11.097
to make its own cloud of sequences.

262
00:11:11.097 --> 00:11:13.187
And when I'm doing this, each of these edges again is one

263
00:11:13.187 --> 00:11:15.950
of these operations that gets the full dynamic programming.

264
00:11:15.950 --> 00:11:19.712
It's a fairly expensive operation, but I only have to do it

265
00:11:19.712 --> 00:11:21.755
between the sequences that become clusters

266
00:11:21.755 --> 00:11:22.893
and all the other sequences.

267
00:11:22.893 --> 00:11:25.234
There's no longer n-squared.

268
00:11:25.234 --> 00:11:26.817
There's the number of clusters times the number

269
00:11:26.817 --> 00:11:28.907
of all the sequences.

270
00:11:28.907 --> 00:11:31.391
On top of this, we can actually be a little smarter

271
00:11:31.391 --> 00:11:34.456
about it, and I'll get to that in a second,

272
00:11:34.456 --> 00:11:36.546
but what I like to do this,

273
00:11:36.546 --> 00:11:39.077
and with a full dynamic programming is, sorry.

274
00:11:39.077 --> 00:11:40.563
Samir?

275
00:11:40.563 --> 00:11:42.096
<v Samir>So when you take two sequences,</v>

276
00:11:42.096 --> 00:11:44.487
how do you define the exact distance between them?

277
00:11:44.487 --> 00:11:45.764
Is it just the edit distance?

278
00:11:45.764 --> 00:11:49.410
<v ->The way we define it is the edit distance,</v>

279
00:11:49.410 --> 00:11:52.821
but you can add scores to allow certain types

280
00:11:52.821 --> 00:11:56.988
of edits to be more costly or cheaper than other stuff.

281
00:11:58.303 --> 00:11:59.807
But what we implement is

282
00:11:59.807 --> 00:12:02.807
pretty much plain-old edit distance.

283
00:12:05.978 --> 00:12:07.395
Yeah, so anyways.

284
00:12:09.745 --> 00:12:12.016
So the reason I'm using full edit distance,

285
00:12:12.016 --> 00:12:14.575
and I know our biologists don't.

286
00:12:14.575 --> 00:12:16.966
Other computer scientists who work with biologists don't

287
00:12:16.966 --> 00:12:18.658
for a variety of reasons,

288
00:12:18.658 --> 00:12:20.577
but I'm using that because I can give you a guarantee.

289
00:12:20.577 --> 00:12:23.091
I know I did this, and it says obeys triangle inequality,

290
00:12:23.091 --> 00:12:24.739
and I can tell you that my clusters

291
00:12:24.739 --> 00:12:26.759
will follow the property

292
00:12:26.759 --> 00:12:29.314
that whatever sequence I picked,

293
00:12:29.314 --> 00:12:32.222
all of the other sequences

294
00:12:32.222 --> 00:12:34.401
are within some distance from the center,

295
00:12:34.401 --> 00:12:37.017
and they're within some other distance from each other,

296
00:12:37.017 --> 00:12:38.712
so it's at most twice the distance

297
00:12:38.712 --> 00:12:40.511
from the center from each other.

298
00:12:40.511 --> 00:12:42.182
With a little bit of tweaking of the algorithm,

299
00:12:42.182 --> 00:12:45.109
you can also guarantee that any sequence gets assigned,

300
00:12:45.109 --> 00:12:49.242
for any sequence, the center of the cluster we picked is

301
00:12:49.242 --> 00:12:51.862
actually the closest sequence to it,

302
00:12:51.862 --> 00:12:55.604
which you can't guarantee if you do plain old algorithms.

303
00:12:55.604 --> 00:12:57.415
I like the idea of being able to tell you,

304
00:12:57.415 --> 00:12:59.501
sure I'm doing something heuristic,

305
00:12:59.501 --> 00:13:03.418
but here are the guarantees that I can provide.

306
00:13:04.683 --> 00:13:05.751
And I think this is important,

307
00:13:05.751 --> 00:13:07.748
at some point it will be important to understand

308
00:13:07.748 --> 00:13:09.786
if those guarantees are what the biologists really want.

309
00:13:09.786 --> 00:13:13.205
But that's a little more complicated.

310
00:13:13.205 --> 00:13:16.637
The other stuff I wanna mention is search.

311
00:13:16.637 --> 00:13:19.098
So I have to search through all the sequences,

312
00:13:19.098 --> 00:13:20.914
and that could be extremely expensive as well,

313
00:13:20.914 --> 00:13:22.238
if I'm doing dynamic programming.

314
00:13:22.238 --> 00:13:25.371
Each of these edges could be a separate dynamic programming.

315
00:13:25.371 --> 00:13:27.718
Instead what we do,

316
00:13:27.718 --> 00:13:29.665
we organize the sequences in a trie,

317
00:13:29.665 --> 00:13:31.618
we don't actually build the trie itself,

318
00:13:31.618 --> 00:13:33.964
we just sort the sequences.

319
00:13:33.964 --> 00:13:35.955
And it helps a lot that all the sequences get aligned

320
00:13:35.955 --> 00:13:39.722
on the left hand, the way the experiment is run.

321
00:13:39.722 --> 00:13:42.067
So we can have that guarantee.

322
00:13:42.067 --> 00:13:43.902
But if the sequence is organized in a trie,

323
00:13:43.902 --> 00:13:45.783
whatever query sequence that's centered,

324
00:13:45.783 --> 00:13:47.054
that I'm searching against,

325
00:13:47.054 --> 00:13:48.613
I can build a dynamic programming table

326
00:13:48.613 --> 00:13:50.055
that follows the trie.

327
00:13:50.055 --> 00:13:51.890
And when you get stuck, you back-track

328
00:13:51.890 --> 00:13:53.445
and you don't have to recompute.

329
00:13:53.445 --> 00:13:54.811
So all this part here,

330
00:13:54.811 --> 00:13:56.162
they have whatever query I have,

331
00:13:56.162 --> 00:13:57.671
I'm searching against the common prefix

332
00:13:57.671 --> 00:13:58.972
of all the sequences,

333
00:13:58.972 --> 00:14:00.597
I built a dynamic programming table,

334
00:14:00.597 --> 00:14:02.497
and now as it extends to the right,

335
00:14:02.497 --> 00:14:05.030
I just need to fill in the blue part

336
00:14:05.030 --> 00:14:06.588
of dynamic programming table.

337
00:14:06.588 --> 00:14:08.236
When I'm done with that and I back-track,

338
00:14:08.236 --> 00:14:09.722
and I'm following another path,

339
00:14:09.722 --> 00:14:11.139
I simply revert to here,

340
00:14:11.139 --> 00:14:13.461
and I have all the information already computed.

341
00:14:13.461 --> 00:14:16.753
So essentially the run time is no longer n squared,

342
00:14:16.753 --> 00:14:19.846
if you will, with respect of one query against

343
00:14:19.846 --> 00:14:22.354
one sequence my database,

344
00:14:22.354 --> 00:14:24.625
but in the same operation I can actually handle

345
00:14:24.625 --> 00:14:27.068
all the sequences that have the same prefix.

346
00:14:27.068 --> 00:14:30.687
If there's lots of them I get huge savings in RAM.

347
00:14:30.687 --> 00:14:33.012
And that's what we've been doing,

348
00:14:33.012 --> 00:14:36.681
and this was work that my student Mohammed Dotsi did.

349
00:14:36.681 --> 00:14:38.771
He's now at Google.

350
00:14:38.771 --> 00:14:40.164
So we did that.

351
00:14:40.164 --> 00:14:42.056
And for the first dataset we were quite happy,

352
00:14:42.056 --> 00:14:43.415
we got great results.

353
00:14:43.415 --> 00:14:45.226
And then we tried a new dataset,

354
00:14:45.226 --> 00:14:48.477
and now suddenly things didn't work quite as planned.

355
00:14:48.477 --> 00:14:50.795
So we recalculated some point as the algorithm was running

356
00:14:50.795 --> 00:14:54.048
that would take us about three months to get the results.

357
00:14:54.048 --> 00:14:55.975
And that's not something that biologists

358
00:14:55.975 --> 00:14:57.532
are willing to wait for.

359
00:14:57.532 --> 00:15:01.085
So we tried to understand a little better what's happening.

360
00:15:01.085 --> 00:15:04.101
And this is sort of an unsolved problem still

361
00:15:04.101 --> 00:15:06.121
in trying to work on it a little more

362
00:15:06.121 --> 00:15:07.955
with an undergrad right now.

363
00:15:07.955 --> 00:15:11.903
But the basic idea of what we tried to do, we said well,

364
00:15:11.903 --> 00:15:14.831
it looked like the runtime was still quadratic.

365
00:15:14.831 --> 00:15:16.712
We think we're saving a lot of time,

366
00:15:16.712 --> 00:15:18.570
but the runtime was still quadratic.

367
00:15:18.570 --> 00:15:20.543
So to better understand what's going,

368
00:15:20.543 --> 00:15:23.376
what we did, we took a subsample of the data,

369
00:15:23.376 --> 00:15:26.302
clustered depths of sample.

370
00:15:26.302 --> 00:15:28.902
So say we squared of n of the data,

371
00:15:28.902 --> 00:15:30.226
quadratic is still linear time

372
00:15:30.226 --> 00:15:33.895
to compute a cluster of just that subsample.

373
00:15:33.895 --> 00:15:36.658
And then any sequence that fell in cluster

374
00:15:36.658 --> 00:15:38.516
now became the center of a cluster

375
00:15:38.516 --> 00:15:40.652
that I can just search against the rest of the database

376
00:15:40.652 --> 00:15:41.743
and fetch it in.

377
00:15:41.743 --> 00:15:43.763
So that essentially, in essence what we're doing,

378
00:15:43.763 --> 00:15:46.829
we're taking the abundant clusters and starting with those.

379
00:15:46.829 --> 00:15:48.756
Because if in a subsample something clusters,

380
00:15:48.756 --> 00:15:52.030
then it's probably part of a larger cluster.

381
00:15:52.030 --> 00:15:54.468
So what we did there,

382
00:15:54.468 --> 00:15:55.768
and I'm not sure how to best represent this,

383
00:15:55.768 --> 00:16:00.087
but essentially we started with 30 million sequences.

384
00:16:00.087 --> 00:16:02.177
And we ran this clustering,

385
00:16:02.177 --> 00:16:04.777
and about half of them ended up in clusters.

386
00:16:04.777 --> 00:16:06.005
We ran through this process.

387
00:16:06.005 --> 00:16:08.234
And it happened quite fast.

388
00:16:08.234 --> 00:16:11.674
So the estimate we had was about 236 sequences

389
00:16:11.674 --> 00:16:13.508
could be clustered per second.

390
00:16:13.508 --> 00:16:15.667
So this was not a ridiculous amount of time

391
00:16:15.667 --> 00:16:18.291
to cluster half the data.

392
00:16:18.291 --> 00:16:20.172
So like whoa, this works really well,

393
00:16:20.172 --> 00:16:22.215
we'll the half data that was not clustered

394
00:16:22.215 --> 00:16:23.353
and repeat the process.

395
00:16:23.353 --> 00:16:24.886
What could go wrong?

396
00:16:24.886 --> 00:16:27.672
So when we did the second half,

397
00:16:27.672 --> 00:16:29.994
we managed to cluster another one million sequences.

398
00:16:29.994 --> 00:16:32.057
So not half of what was left,

399
00:16:32.057 --> 00:16:34.522
but 1/16th of what was left.

400
00:16:34.522 --> 00:16:36.864
And obviously the clustering speed went down.

401
00:16:36.864 --> 00:16:40.443
And then the third part got even less and even less.

402
00:16:40.443 --> 00:16:42.342
So essentially we got very quickly

403
00:16:42.342 --> 00:16:44.948
to this point of diminishing returns.

404
00:16:44.948 --> 00:16:46.920
So what it turns out that's happening,

405
00:16:46.920 --> 00:16:50.451
and I think this is an example of discursive dimensionality,

406
00:16:50.451 --> 00:16:54.004
we have a lot of noise in the data.

407
00:16:54.004 --> 00:16:56.047
And essentially, it's very easy for us,

408
00:16:56.047 --> 00:16:57.997
for a sequence that's in a large cluster,

409
00:16:57.997 --> 00:16:59.989
it's very easy to find what the cluster is.

410
00:16:59.989 --> 00:17:01.476
For a sequence that's unique,

411
00:17:01.476 --> 00:17:04.336
because it's got too many errors in it,

412
00:17:04.336 --> 00:17:06.682
we have to search it against all the other sequences

413
00:17:06.682 --> 00:17:09.306
before we can decide that that sequence is unique.

414
00:17:09.306 --> 00:17:10.908
So you can do some math, we can come up with,

415
00:17:10.908 --> 00:17:13.575
for a sequence that we have 500,

416
00:17:14.618 --> 00:17:17.618
you have 95 trillion sequences

417
00:17:17.618 --> 00:17:21.798
that are just beyond our limit of similarity

418
00:17:21.798 --> 00:17:23.772
that we chose,

419
00:17:23.772 --> 00:17:27.951
that we can construct with simple edits from that sequence.

420
00:17:27.951 --> 00:17:30.617
So essentially, we really can't escape

421
00:17:30.617 --> 00:17:32.618
searching everything else before we decide

422
00:17:32.618 --> 00:17:33.895
that sequence cannot be clustered.

423
00:17:33.895 --> 00:17:35.962
And we have to do the full dynamic programming

424
00:17:35.962 --> 00:17:37.820
all the way to the end.

425
00:17:37.820 --> 00:17:39.817
So the reason I'm saying that this is

426
00:17:39.817 --> 00:17:41.326
kind of an unsolved problem

427
00:17:41.326 --> 00:17:42.626
is that I still want guarantees.

428
00:17:42.626 --> 00:17:43.764
So if I'm having this algorithm,

429
00:17:43.764 --> 00:17:45.529
I run it, half the sequences are clustered,

430
00:17:45.529 --> 00:17:47.362
I'm done, I'm using those clusters to do analysis

431
00:17:47.362 --> 00:17:50.405
and so on, but I want to have a guarantee

432
00:17:50.405 --> 00:17:52.146
that I'm not losing, that the other half of the sequences

433
00:17:52.146 --> 00:17:55.885
don't contain clusters that are interesting.

434
00:17:55.885 --> 00:17:58.346
And I can't come up with the fast algorithm

435
00:17:58.346 --> 00:18:00.320
that will actually get me that guarantee.

436
00:18:00.320 --> 00:18:03.129
So like some kind of probabilistic guarantee to that.

437
00:18:03.129 --> 00:18:05.870
Like with high probability, any cluster that's more than,

438
00:18:05.870 --> 00:18:07.491
I don't know, 10% of the dataset,

439
00:18:07.491 --> 00:18:10.859
will end up being in my dataset.

440
00:18:10.859 --> 00:18:12.905
So if anyone of you is interested

441
00:18:12.905 --> 00:18:15.155
I can talk more about that.

442
00:18:18.083 --> 00:18:20.335
Coming back to the common core standards.

443
00:18:20.335 --> 00:18:23.052
So the next question is, what do we do with these clusters?

444
00:18:23.052 --> 00:18:24.631
So I'm not just building clusters

445
00:18:24.631 --> 00:18:25.908
because I like building clusters.

446
00:18:25.908 --> 00:18:28.532
We're building clusters because we want to understand

447
00:18:28.532 --> 00:18:31.272
something about diarrhea in our case.

448
00:18:31.272 --> 00:18:34.221
So essentially, what we're trying to do,

449
00:18:34.221 --> 00:18:37.379
is we're building a matrix that looks like this.

450
00:18:37.379 --> 00:18:41.210
Where I have, say, the healthy and the sick children,

451
00:18:41.210 --> 00:18:43.346
and I have a set of clusters,

452
00:18:43.346 --> 00:18:45.065
and here I'm plotting the heat map

453
00:18:45.065 --> 00:18:46.806
of the abundance of those clusters.

454
00:18:46.806 --> 00:18:49.407
Blue is high abundance, red is low abundance.

455
00:18:49.407 --> 00:18:51.747
So what I'd really want to be able to say,

456
00:18:51.747 --> 00:18:53.883
oh look, there's a set of clusters over here

457
00:18:53.883 --> 00:18:56.416
that are all really abundant in healthy

458
00:18:56.416 --> 00:18:58.393
and not abundant in sick,

459
00:18:58.393 --> 00:19:00.692
so perhaps these are things I can give probiotics,

460
00:19:00.692 --> 00:19:02.242
like you make yoghurts with this,

461
00:19:02.242 --> 00:19:04.082
give to the children, and they don't get diarrhea.

462
00:19:04.082 --> 00:19:07.240
Right, that's the kind of stuff we might want to do.

463
00:19:07.240 --> 00:19:09.190
So the question is how we do this.

464
00:19:09.190 --> 00:19:12.557
And how we do it the right way.

465
00:19:12.557 --> 00:19:14.182
And I won't give you all the answers,

466
00:19:14.182 --> 00:19:16.226
because Hector will give you all the answers.

467
00:19:16.226 --> 00:19:18.266
(laughing)

468
00:19:18.266 --> 00:19:20.933
Perhaps. We haven't coordinated.

469
00:19:21.909 --> 00:19:24.097
But essentially, there are a couple problems

470
00:19:24.097 --> 00:19:25.479
that we have to deal with.

471
00:19:25.479 --> 00:19:27.070
So first of all,

472
00:19:27.070 --> 00:19:28.997
if you think about the cluster that's present,

473
00:19:28.997 --> 00:19:30.413
it's about 10% of your data.

474
00:19:30.413 --> 00:19:33.080
If I've sequenced 4,000 sequences,

475
00:19:33.080 --> 00:19:36.125
I would expect about 400 to be in that cluster.

476
00:19:36.125 --> 00:19:38.285
So that would be the abundance I observed for the cluster.

477
00:19:38.285 --> 00:19:40.700
If I sequences 10,000 sequences,

478
00:19:40.700 --> 00:19:42.926
I expect about 1,000 sequences to be in that cluster.

479
00:19:42.926 --> 00:19:47.201
So clearly, the amount of money I throw at sequencing

480
00:19:47.201 --> 00:19:50.290
doesn't change the abundance of an organism,

481
00:19:50.290 --> 00:19:54.237
but it appears to change at least computationally.

482
00:19:54.237 --> 00:19:56.048
So we have to correct for that.

483
00:19:56.048 --> 00:19:59.090
We have to get rid of the dependence on the count,

484
00:19:59.090 --> 00:20:01.412
or the abundance of any organism we see,

485
00:20:01.412 --> 00:20:05.579
the dependence on the amount of sequencing that we did.

486
00:20:07.584 --> 00:20:11.861
The second part that we have to deal with is the fact,

487
00:20:11.861 --> 00:20:14.253
and this is what this plot is showing you,

488
00:20:14.253 --> 00:20:17.248
is that the more you sequence, the more you see.

489
00:20:17.248 --> 00:20:19.287
So it's not just that the abundances change,

490
00:20:19.287 --> 00:20:20.959
but also the number of clusters

491
00:20:20.959 --> 00:20:23.048
that we see in the data change.

492
00:20:23.048 --> 00:20:24.863
So suddenly there's organisms that appear

493
00:20:24.863 --> 00:20:28.626
because they were before below the limit of detection.

494
00:20:28.626 --> 00:20:33.084
And what we want to do with this mixture of signal,

495
00:20:33.084 --> 00:20:34.988
we want to do an association study.

496
00:20:34.988 --> 00:20:38.866
We want to ask statistically whether there is a difference,

497
00:20:38.866 --> 00:20:41.698
whether the difference between cases and controls

498
00:20:41.698 --> 00:20:43.045
can be explained by the abundance

499
00:20:43.045 --> 00:20:45.045
of a particular cluster.

500
00:20:46.946 --> 00:20:51.381
So addressing this, and this is a very nice model

501
00:20:51.381 --> 00:20:54.052
that Hector came up with,

502
00:20:54.052 --> 00:20:56.369
is actually to start to model the fact

503
00:20:56.369 --> 00:21:00.042
that the particular sequence could be absent from the data.

504
00:21:00.042 --> 00:21:03.084
Just because on the sampling,

505
00:21:03.084 --> 00:21:05.727
to model that inside the statistical model,

506
00:21:05.727 --> 00:21:08.169
because the association statistics.

507
00:21:08.169 --> 00:21:11.188
And I won't go into the details of this,

508
00:21:11.188 --> 00:21:13.742
again Hector will show you that.

509
00:21:13.742 --> 00:21:16.482
But essentially what we show is that the results that we get

510
00:21:16.482 --> 00:21:18.270
in terms of the AUC,

511
00:21:18.270 --> 00:21:22.287
essentially the ability to classify healthy versus sick

512
00:21:22.287 --> 00:21:24.037
with these sequences,

513
00:21:25.306 --> 00:21:27.744
to identify a particular cluster

514
00:21:27.744 --> 00:21:29.369
that's differentially abundant,

515
00:21:29.369 --> 00:21:31.343
they outperform all the other methods

516
00:21:31.343 --> 00:21:33.781
that I used in the field.

517
00:21:33.781 --> 00:21:36.169
And we believe a lot of it is because of exactly

518
00:21:36.169 --> 00:21:39.465
modeling the zeroes in our data

519
00:21:39.465 --> 00:21:43.951
as being absent or absent because of undersampling,

520
00:21:43.951 --> 00:21:47.225
which have different properties statistically.

521
00:21:47.225 --> 00:21:49.985
And again, this was work that appeared in Nature Methods,

522
00:21:49.985 --> 00:21:53.652
and Hector will probably talk more about it.

523
00:21:55.306 --> 00:21:56.954
But I want to say, the one thing I want,

524
00:21:56.954 --> 00:21:58.626
kind of a take-home message,

525
00:21:58.626 --> 00:22:02.012
especially for the younger people in the audience,

526
00:22:02.012 --> 00:22:04.008
is that both clustering, association statistics,

527
00:22:04.008 --> 00:22:06.242
all this stuff, these are problems that have been addressed

528
00:22:06.242 --> 00:22:08.659
for easily, 20, 30, 40 years.

529
00:22:10.097 --> 00:22:11.097
If not more.

530
00:22:12.094 --> 00:22:13.344
So essentially,

531
00:22:14.741 --> 00:22:16.900
the degree to which you are making some success,

532
00:22:16.900 --> 00:22:19.521
or actually making new contributions to those fields,

533
00:22:19.521 --> 00:22:21.498
is actually understanding what

534
00:22:21.498 --> 00:22:23.216
the biologists want out of the data.

535
00:22:23.216 --> 00:22:24.900
So if you had asked me,

536
00:22:24.900 --> 00:22:27.988
well build a clustering algorithm

537
00:22:27.988 --> 00:22:30.887
that's better than other clustering algorithms out there,

538
00:22:30.887 --> 00:22:34.350
there's hundreds of papers on clustering,

539
00:22:34.350 --> 00:22:36.568
with different assumptions and so on,

540
00:22:36.568 --> 00:22:38.774
and it would be really hard to maybe

541
00:22:38.774 --> 00:22:40.051
shape a log-n of some algorithm,

542
00:22:40.051 --> 00:22:43.580
or get a tighter band in approximation and stuff like that,

543
00:22:43.580 --> 00:22:46.645
but in this case we actually figured out

544
00:22:46.645 --> 00:22:48.941
what biologists need out of the data,

545
00:22:48.941 --> 00:22:50.569
and could develop something that addressed

546
00:22:50.569 --> 00:22:51.705
the biological question,

547
00:22:51.705 --> 00:22:53.332
even if perhaps on the computer science side

548
00:22:53.332 --> 00:22:57.675
it doesn't actually give you a huge improvement.

549
00:22:57.675 --> 00:22:58.948
And I don't know if it does.

550
00:22:58.948 --> 00:23:00.531
But it's a very specific problem

551
00:23:00.531 --> 00:23:03.430
no one has looked at before, at some level.

552
00:23:03.430 --> 00:23:06.359
So we have room to make contributions.

553
00:23:06.359 --> 00:23:09.354
And this is a really hard part of doing work

554
00:23:09.354 --> 00:23:12.024
in biology is understanding what biologists want,

555
00:23:12.024 --> 00:23:14.463
not what we think they want.

556
00:23:14.463 --> 00:23:17.249
So those who find that secret

557
00:23:17.249 --> 00:23:19.870
they then have a great collaboration with biologists.

558
00:23:19.870 --> 00:23:21.568
If you don't find the secret,

559
00:23:21.568 --> 00:23:25.735
then you write papers but not make contributions to biology.

560
00:23:29.602 --> 00:23:32.156
So just give you a little bit of an idea

561
00:23:32.156 --> 00:23:34.200
of whether we found something new.

562
00:23:34.200 --> 00:23:37.752
So essentially, we started all of this,

563
00:23:37.752 --> 00:23:39.819
not because we wanted to develop clustering algorithms

564
00:23:39.819 --> 00:23:41.556
of association statistics and so on,

565
00:23:41.556 --> 00:23:44.254
we did it because we tried to solve diarrhea.

566
00:23:44.254 --> 00:23:46.553
And we tried to analyze the data coming from this study

567
00:23:46.553 --> 00:23:49.571
to better understand what's going on in diarrhea.

568
00:23:49.571 --> 00:23:51.638
And we can see, basically in this case

569
00:23:51.638 --> 00:23:53.771
we can separate out the plots based on case and control.

570
00:23:53.771 --> 00:23:56.166
So the case would be children with diarrhea,

571
00:23:56.166 --> 00:23:58.116
without diarrhea, and their ages.

572
00:23:58.116 --> 00:24:00.345
And it's not necessarily easy to see,

573
00:24:00.345 --> 00:24:02.528
but there are differences.

574
00:24:02.528 --> 00:24:04.269
Especially if you look here, there's a lot more green

575
00:24:04.269 --> 00:24:07.752
in the cases, a lot less green in controls.

576
00:24:07.752 --> 00:24:10.650
And that's one group of organisms,

577
00:24:10.650 --> 00:24:13.116
in this case I think that they're escherichia organisms,

578
00:24:13.116 --> 00:24:14.416
which are e coli.

579
00:24:14.416 --> 00:24:16.808
We know e coli causes diarrhea,

580
00:24:16.808 --> 00:24:19.391
so that's a nice finding there.

581
00:24:20.570 --> 00:24:21.777
And we can also see how the diversity

582
00:24:21.777 --> 00:24:25.632
of the gut microbiome changes over time in children.

583
00:24:25.632 --> 00:24:27.675
And this was kind of interesting.

584
00:24:27.675 --> 00:24:29.806
Essentially we start at the very low diversity,

585
00:24:29.806 --> 00:24:32.296
the environment, and it grows very rapidly

586
00:24:32.296 --> 00:24:35.193
between zero and 12 months of age.

587
00:24:35.193 --> 00:24:37.004
So in the first year we develop what's called

588
00:24:37.004 --> 00:24:38.908
normal flora in our guts.

589
00:24:38.908 --> 00:24:41.114
And also you can see that the flora looks pretty bad

590
00:24:41.114 --> 00:24:43.465
in the sense that you have a lot of

591
00:24:43.465 --> 00:24:46.130
the e coli type organisms and they quickly disappear

592
00:24:46.130 --> 00:24:47.547
as you get older.

593
00:24:48.782 --> 00:24:50.616
And that actually turns out to be very important

594
00:24:50.616 --> 00:24:51.917
for child development,

595
00:24:51.917 --> 00:24:53.681
the fact that you are attacked by pathogens early on

596
00:24:53.681 --> 00:24:55.864
allows you to develop an immune system in your gut

597
00:24:55.864 --> 00:24:59.347
which otherwise you wouldn't be able to develop.

598
00:24:59.347 --> 00:25:01.414
But anyway, so we learned some things.

599
00:25:01.414 --> 00:25:04.200
The most interesting thing that we learned

600
00:25:04.200 --> 00:25:06.773
was that there's a group of organisms called streptococcus,

601
00:25:06.773 --> 00:25:09.930
I mean you all know strep throat, for example.

602
00:25:09.930 --> 00:25:13.364
And they're not on the list I gave you before,

603
00:25:13.364 --> 00:25:16.199
what causes diarrhea, no one thought they caused diarrhea.

604
00:25:16.199 --> 00:25:17.940
And yet in our study they are found

605
00:25:17.940 --> 00:25:20.750
highly associated statistically with diarrhea.

606
00:25:20.750 --> 00:25:23.490
So we have a new hypothesis that streptococci,

607
00:25:23.490 --> 00:25:25.650
or at least some streptococci, may cause diarrhea,

608
00:25:25.650 --> 00:25:27.410
and now that's something that allows us

609
00:25:27.410 --> 00:25:30.340
to develop new tests to find the streptococci

610
00:25:30.340 --> 00:25:34.845
and perhaps even develop a treatment against them.

611
00:25:34.845 --> 00:25:36.934
And the one thing you should realize

612
00:25:36.934 --> 00:25:38.235
is you shouldn't just believe something

613
00:25:38.235 --> 00:25:41.318
because a computer told you it is so.

614
00:25:44.806 --> 00:25:47.169
Definitely biologists don't believe it.

615
00:25:47.169 --> 00:25:50.402
So our biology colleagues did experiments.

616
00:25:50.402 --> 00:25:53.072
And here's an experiment looking at human epithelial cells.

617
00:25:53.072 --> 00:25:57.832
And this is the response that you get to different bacteria.

618
00:25:57.832 --> 00:26:00.410
This is e coli, we know it causes diarrhea,

619
00:26:00.410 --> 00:26:03.243
this is in uninfected, so it's actually green response

620
00:26:03.243 --> 00:26:06.377
means there's no diarrhea, red response means diarrhea.

621
00:26:06.377 --> 00:26:08.514
And there's a streptococcus strain that

622
00:26:08.514 --> 00:26:10.116
actually exhibits the same behavior

623
00:26:10.116 --> 00:26:14.283
as a diarrheogenic e coli in the cell culture experiment.

624
00:26:15.943 --> 00:26:19.538
So in this case, our computational predictions

625
00:26:19.538 --> 00:26:22.353
were confirmed in a lab.

626
00:26:22.353 --> 00:26:25.858
And we're chasing some of these down.

627
00:26:25.858 --> 00:26:27.191
The second part,

628
00:26:28.436 --> 00:26:29.946
I mentioned that I do genome assembly,

629
00:26:29.946 --> 00:26:31.385
I want to construct genomes.

630
00:26:31.385 --> 00:26:34.794
So up to this point I was just focused on one gene,

631
00:26:34.794 --> 00:26:36.215
because that's the data that we have.

632
00:26:36.215 --> 00:26:37.747
But now the question is what do we do

633
00:26:37.747 --> 00:26:39.977
when we're looking at mixtures of genomes.

634
00:26:39.977 --> 00:26:42.206
And I'll give you very quick,

635
00:26:42.206 --> 00:26:43.669
tell you what we have to do

636
00:26:43.669 --> 00:26:45.857
when I'm talking about genome assembly.

637
00:26:45.857 --> 00:26:48.551
So this is a great example,

638
00:26:48.551 --> 00:26:50.199
two of our students came up with this,

639
00:26:50.199 --> 00:26:53.354
Adam Philippi and Michael Schatz came up with this example.

640
00:26:53.354 --> 00:26:54.848
We take A Tale of Two Tities,

641
00:26:54.848 --> 00:26:56.353
break it up into small pieces

642
00:26:56.353 --> 00:26:58.100
and try to put it back together.

643
00:26:58.100 --> 00:27:00.488
So it should be easy, it's in English,

644
00:27:00.488 --> 00:27:03.391
you don't need to know any biology to do this.

645
00:27:03.391 --> 00:27:07.895
So it's fairly easy to actually reconstruct it by hand.

646
00:27:07.895 --> 00:27:11.444
Up to a point, when you realize that the problem

647
00:27:11.444 --> 00:27:14.767
is a little more complicated than you initially thought,

648
00:27:14.767 --> 00:27:16.693
because of this ambiguity.

649
00:27:16.693 --> 00:27:18.507
If you looking at "times it was the",

650
00:27:18.507 --> 00:27:20.643
it be "times it was the age,"

651
00:27:20.643 --> 00:27:21.804
"times it was the worst," "times it was the best"

652
00:27:21.804 --> 00:27:23.546
and so on, so you don't really know what you have to do.

653
00:27:23.546 --> 00:27:28.492
And the common paradigm being used today in genome assembly

654
00:27:28.492 --> 00:27:30.814
is to represent everything as a graph,

655
00:27:30.814 --> 00:27:32.602
and try to think more globally about the graph structure.

656
00:27:32.602 --> 00:27:36.128
So you're not sure if you should take the path

657
00:27:36.128 --> 00:27:38.105
to "it was the age" or "it was the worst,"

658
00:27:38.105 --> 00:27:39.914
but you realize that if you take the path to

659
00:27:39.914 --> 00:27:41.982
"it was the age" you have to skip all this loop,

660
00:27:41.982 --> 00:27:44.095
so essentially parts of the genome remain unassembled,

661
00:27:44.095 --> 00:27:45.810
so clearly that's bad choice,

662
00:27:45.810 --> 00:27:48.948
I'm gonna take this path first and go to "it was the age"

663
00:27:48.948 --> 00:27:52.281
and solve the genome assembly correctly.

664
00:27:53.244 --> 00:27:55.327
So this is all very well,

665
00:27:56.468 --> 00:27:59.490
and (mumbles) will tell you that now

666
00:27:59.490 --> 00:28:01.464
the problem is complete, so now we're done.

667
00:28:01.464 --> 00:28:04.529
So it's actually a pretty simple problem.

668
00:28:04.529 --> 00:28:06.288
The reality is that this is what you see

669
00:28:06.288 --> 00:28:07.495
in a real genome.

670
00:28:07.495 --> 00:28:08.865
So this is a single genome,

671
00:28:08.865 --> 00:28:10.421
and I'll get back to multiple genomes.

672
00:28:10.421 --> 00:28:13.366
This is a perfect assembly graph for a real genome,

673
00:28:13.366 --> 00:28:16.110
it's actually a very simple genome.

674
00:28:16.110 --> 00:28:18.531
And each node is colored the number of times

675
00:28:18.531 --> 00:28:21.469
you see that node, so green is one, blue is two,

676
00:28:21.469 --> 00:28:24.864
orange is three and red is four.

677
00:28:24.864 --> 00:28:27.114
So I don't even have things that get repeated

678
00:28:27.114 --> 00:28:29.183
multiple times, four is the largest times

679
00:28:29.183 --> 00:28:31.683
I see something in the genome.

680
00:28:32.898 --> 00:28:34.709
And this is the picture that you get.

681
00:28:34.709 --> 00:28:37.542
So obviously you can't solve this.

682
00:28:38.492 --> 00:28:39.747
I don't know if it's obvious.

683
00:28:39.747 --> 00:28:43.649
You can't solve it even on a computer.

684
00:28:43.649 --> 00:28:46.621
You can find a tour through this,

685
00:28:46.621 --> 00:28:48.730
because this is an eulerian graph.

686
00:28:48.730 --> 00:28:52.194
You can find one tour, and you can find it efficiently.

687
00:28:52.194 --> 00:28:54.609
But that tour might not be the correct one,

688
00:28:54.609 --> 00:28:56.857
because there's an exponential number of other tours,

689
00:28:56.857 --> 00:28:59.160
all of which you can find, given a time, one at a time,

690
00:28:59.160 --> 00:29:00.577
if you wanted to.

691
00:29:01.457 --> 00:29:03.548
But only one of them is correct.

692
00:29:03.548 --> 00:29:04.994
So now the question is,

693
00:29:04.994 --> 00:29:06.962
how do you actually find a tour that is correct?

694
00:29:06.962 --> 00:29:08.962
So it's not an easy job.

695
00:29:11.612 --> 00:29:13.742
So we're trying to figure out exactly what the limits are,

696
00:29:13.742 --> 00:29:17.376
and this is work that was a little more theoretical.

697
00:29:17.376 --> 00:29:19.310
Just trying to understand

698
00:29:19.310 --> 00:29:21.121
what's difficult about the assembly,

699
00:29:21.121 --> 00:29:23.425
because in part I'm telling you that

700
00:29:23.425 --> 00:29:25.398
this is essentially impossible.

701
00:29:25.398 --> 00:29:26.815
I'm giving you this, I'm telling you

702
00:29:26.815 --> 00:29:29.113
you can't computationally solve the problem.

703
00:29:29.113 --> 00:29:32.643
At the same time you give biologists data,

704
00:29:32.643 --> 00:29:35.453
shove it into a program, it gets outputs,

705
00:29:35.453 --> 00:29:37.563
and they say, oh look the outputs look fine.

706
00:29:37.563 --> 00:29:40.236
So assembly is easy, right?

707
00:29:40.236 --> 00:29:42.442
And it only took me five hours and that's it,

708
00:29:42.442 --> 00:29:44.462
it's not a big deal.

709
00:29:44.462 --> 00:29:45.995
So we tried to understand exactly what's going on.

710
00:29:45.995 --> 00:29:48.683
And it turns out that you can actually

711
00:29:48.683 --> 00:29:52.263
prove things about what makes the assembly problem hard,

712
00:29:52.263 --> 00:29:55.886
and you can roughly summarize the assembly problem

713
00:29:55.886 --> 00:29:57.674
in three different categories,

714
00:29:57.674 --> 00:29:59.880
depending on the relationship between

715
00:29:59.880 --> 00:30:01.784
the length of the sequences that you generate

716
00:30:01.784 --> 00:30:04.843
in your experiment and the repeats in your data.

717
00:30:04.843 --> 00:30:08.169
So if the reads are much much longer than the repeats,

718
00:30:08.169 --> 00:30:09.563
then you have no problem,

719
00:30:09.563 --> 00:30:12.767
then anybody can write a shell script to do assembly.

720
00:30:12.767 --> 00:30:14.346
And people have done that,

721
00:30:14.346 --> 00:30:16.679
in the human genome project.

722
00:30:17.896 --> 00:30:20.244
If the reads are much shorter than the repeats

723
00:30:20.244 --> 00:30:21.707
then you get into this situation

724
00:30:21.707 --> 00:30:23.489
where you have an exponential number of genomes

725
00:30:23.489 --> 00:30:24.791
that can reconstruct the same data,

726
00:30:24.791 --> 00:30:28.483
all of them being equally good as far as the fit

727
00:30:28.483 --> 00:30:30.031
of the data to the genome.

728
00:30:30.031 --> 00:30:33.729
So in that case, essentially it's an ill-posed problem,

729
00:30:33.729 --> 00:30:35.729
I don't have a solution.

730
00:30:36.696 --> 00:30:38.535
I've just chopped up the genome so much

731
00:30:38.535 --> 00:30:40.416
that I no longer have one solution,

732
00:30:40.416 --> 00:30:43.806
I have an exponential amount of solutions.

733
00:30:43.806 --> 00:30:45.130
So I don't really know what it means

734
00:30:45.130 --> 00:30:48.195
to really solve the assembly problem that's setting.

735
00:30:48.195 --> 00:30:51.330
And then in between you get into this strange zone

736
00:30:51.330 --> 00:30:53.694
that we as computer scientists like so much,

737
00:30:53.694 --> 00:30:55.950
which is the empty hard stage.

738
00:30:55.950 --> 00:30:58.667
So this is where we know there's a single solution,

739
00:30:58.667 --> 00:31:01.417
but we can't find it efficiently.

740
00:31:02.870 --> 00:31:04.751
But this situation actually occurs fairly rarely,

741
00:31:04.751 --> 00:31:08.164
and most of the time you're either here or here.

742
00:31:08.164 --> 00:31:09.789
And that's why biologists would say,

743
00:31:09.789 --> 00:31:10.997
oh the problem is easy to solve,

744
00:31:10.997 --> 00:31:12.573
because for large chunks of the genome

745
00:31:12.573 --> 00:31:13.899
this is exactly what you're looking at.

746
00:31:13.899 --> 00:31:16.152
And you large chunks of the genome correctly assembled,

747
00:31:16.152 --> 00:31:18.735
and being able to use the data.

748
00:31:20.471 --> 00:31:22.221
We've also looked at,

749
00:31:23.489 --> 00:31:26.299
so look at what you can do if you're in this situation.

750
00:31:26.299 --> 00:31:29.132
If the assembly problem is undetermined.

751
00:31:29.132 --> 00:31:32.541
There are many possible solutions,

752
00:31:32.541 --> 00:31:34.519
how do we know which one we want to pick?

753
00:31:34.519 --> 00:31:36.214
How do we focus ourselves towards

754
00:31:36.214 --> 00:31:40.297
the biologically correct version of the assembly?

755
00:31:41.252 --> 00:31:43.249
So on thing that we have,

756
00:31:43.249 --> 00:31:45.359
and this is where you have to go talk to biologists

757
00:31:45.359 --> 00:31:46.941
and find out what additional experimental data

758
00:31:46.941 --> 00:31:48.961
they can give you.

759
00:31:48.961 --> 00:31:50.471
So they don't just give you the fact

760
00:31:50.471 --> 00:31:51.841
that here are a bunch of sequences,

761
00:31:51.841 --> 00:31:53.861
but also tell you these two sequences,

762
00:31:53.861 --> 00:31:56.299
the sequences come in pairs and the pairs

763
00:31:56.299 --> 00:31:58.946
are a certain distance apart.

764
00:31:58.946 --> 00:32:02.940
So it sounds like fairly valuable information.

765
00:32:02.940 --> 00:32:05.262
So what you can do if you're looking

766
00:32:05.262 --> 00:32:07.561
at a complicated graph, you can say,

767
00:32:07.561 --> 00:32:09.996
well I know the distance between these two blue nodes,

768
00:32:09.996 --> 00:32:12.042
and I know that there are two paths

769
00:32:12.042 --> 00:32:14.898
connecting those blue nodes to each other,

770
00:32:14.898 --> 00:32:17.589
one that's shorter, one that's longer, right?

771
00:32:17.589 --> 00:32:19.542
Well if only one of them is consistent with

772
00:32:19.542 --> 00:32:22.723
the length of that constraint, then I'm done.

773
00:32:22.723 --> 00:32:24.437
Essentially I can tell you I have to

774
00:32:24.437 --> 00:32:27.085
follow the thick path in order to satisfy

775
00:32:27.085 --> 00:32:30.804
this distance constraint between the two nodes.

776
00:32:30.804 --> 00:32:32.887
This makes sense, I hope.

777
00:32:33.799 --> 00:32:37.189
Of course, what also happens is a situation

778
00:32:37.189 --> 00:32:38.675
where you have these two red nodes,

779
00:32:38.675 --> 00:32:40.417
and the two paths between the two red nodes

780
00:32:40.417 --> 00:32:44.178
are equally good, or equally fit the constraint.

781
00:32:44.178 --> 00:32:47.545
In that case there's nothing I can do about it.

782
00:32:47.545 --> 00:32:49.911
And in that case you want these kind of connections

783
00:32:49.911 --> 00:32:54.078
that span exactly one of these ambiguous nodes in the graph.

784
00:32:55.321 --> 00:32:57.170
So essentially, there are ways to actually

785
00:32:57.170 --> 00:32:58.732
use this information to constrain the graph structure

786
00:32:58.732 --> 00:33:01.162
to something that makes sense.

787
00:33:01.162 --> 00:33:03.829
But they don't universally work,

788
00:33:04.856 --> 00:33:07.773
and we've tried a variety of things

789
00:33:09.291 --> 00:33:11.009
to see exactly what happens,

790
00:33:11.009 --> 00:33:14.701
and just demonstrate that these approaches

791
00:33:14.701 --> 00:33:15.789
don't always work.

792
00:33:15.789 --> 00:33:17.738
And here's a plot where we're generating

793
00:33:17.738 --> 00:33:19.810
many many many different pairs of constraints,

794
00:33:19.810 --> 00:33:21.412
try to solve the assembly problem,

795
00:33:21.412 --> 00:33:23.107
and see how far we got,

796
00:33:23.107 --> 00:33:24.686
close to 100% which would be that the genome

797
00:33:24.686 --> 00:33:26.799
is correctly assembled computationally,

798
00:33:26.799 --> 00:33:28.865
and we could never get to 100%

799
00:33:28.865 --> 00:33:31.198
just using this information.

800
00:33:32.232 --> 00:33:35.017
So there's still room for improvement.

801
00:33:35.017 --> 00:33:36.017
And we also did some work,

802
00:33:36.017 --> 00:33:38.734
and this was with a great student, Joshua Wetzel,

803
00:33:38.734 --> 00:33:40.940
who was an undergrad at that time from Camden.

804
00:33:40.940 --> 00:33:42.107
He was one of,

805
00:33:43.677 --> 00:33:46.443
what was it, I forget his name,

806
00:33:46.443 --> 00:33:48.881
Rajiv Gandhi's students, right.

807
00:33:48.881 --> 00:33:53.545
And he came here, and we also played with the idea

808
00:33:53.545 --> 00:33:55.797
that if we can tune the distances

809
00:33:55.797 --> 00:33:57.542
to the actual structure of the graph

810
00:33:57.542 --> 00:33:58.564
we can get better results,

811
00:33:58.564 --> 00:34:01.350
and it turns out that we actually were able to do that.

812
00:34:01.350 --> 00:34:03.161
At the same time it's kind of meaningless,

813
00:34:03.161 --> 00:34:05.112
because biologists don't want to do the experiment

814
00:34:05.112 --> 00:34:07.062
the way we tell them to do it,

815
00:34:07.062 --> 00:34:08.289
they want to do experiments the way

816
00:34:08.289 --> 00:34:10.196
they're used to doing it.

817
00:34:10.196 --> 00:34:13.529
So no one would actually do this for us.

818
00:34:14.493 --> 00:34:16.243
But it was nice work.

819
00:34:17.186 --> 00:34:19.671
The other thing I wanted to mention,

820
00:34:19.671 --> 00:34:22.527
and this is kind of, maybe I should have asked you before,

821
00:34:22.527 --> 00:34:24.860
part of it is, what do I do,

822
00:34:27.237 --> 00:34:28.796
how do I get more information,

823
00:34:28.796 --> 00:34:30.514
how do I use all the information I have

824
00:34:30.514 --> 00:34:32.047
to solve the assembly problem?

825
00:34:32.047 --> 00:34:33.695
But another point you think about is

826
00:34:33.695 --> 00:34:35.716
what happens if you don't have enough information?

827
00:34:35.716 --> 00:34:37.596
By not having enough information,

828
00:34:37.596 --> 00:34:40.197
usually in our case would be

829
00:34:40.197 --> 00:34:41.660
I have not sequenced enough,

830
00:34:41.660 --> 00:34:44.191
I haven't sampled all the genome correctly,

831
00:34:44.191 --> 00:34:45.747
or not completely.

832
00:34:45.747 --> 00:34:47.997
And the first intuition is,

833
00:34:49.090 --> 00:34:51.412
definitely the first intuition of biologists,

834
00:34:51.412 --> 00:34:52.573
not computer scientists,

835
00:34:52.573 --> 00:34:54.826
I know (mumbles) to show computer scientists is here,

836
00:34:54.826 --> 00:34:57.287
but the intuition of biologists is that,

837
00:34:57.287 --> 00:34:58.541
if you haven't sequenced enough,

838
00:34:58.541 --> 00:35:00.120
the assembly will be correct, but there will be gaps in it,

839
00:35:00.120 --> 00:35:04.439
because I simply have not seen those pieces of DNA.

840
00:35:04.439 --> 00:35:07.132
That's the very simple intuition.

841
00:35:07.132 --> 00:35:09.570
But what I argue is that if you think about

842
00:35:09.570 --> 00:35:12.008
the graph structure that we're using,

843
00:35:12.008 --> 00:35:14.191
if you don't have enough information you're gonna miss

844
00:35:14.191 --> 00:35:16.230
parts of the graph.

845
00:35:16.230 --> 00:35:17.349
And then the other parts of the graph

846
00:35:17.349 --> 00:35:20.223
will look like a very simple thing, a very simple solution.

847
00:35:20.223 --> 00:35:22.384
You just solve the problem and you're done, right?

848
00:35:22.384 --> 00:35:23.967
But you're losing information,

849
00:35:23.967 --> 00:35:25.867
there is ambiguity in the reconstruction.

850
00:35:25.867 --> 00:35:28.355
And you might reconstruct the incorrect thing.

851
00:35:28.355 --> 00:35:30.348
So you might get "it was the worst of times,

852
00:35:30.348 --> 00:35:31.876
"it was the age of foolishness,"

853
00:35:31.876 --> 00:35:33.574
which is not what Dickens wrote.

854
00:35:33.574 --> 00:35:37.962
But it's correct grammar, so it makes sense.

855
00:35:37.962 --> 00:35:40.284
But it's not what you want.

856
00:35:40.284 --> 00:35:41.701
And I also argue,

857
00:35:46.019 --> 00:35:47.808
a lot of times some biologists will say

858
00:35:47.808 --> 00:35:50.037
but I'll look at it and I'll know it's wrong.

859
00:35:50.037 --> 00:35:52.312
I'm saying, if you can't look at it in English

860
00:35:52.312 --> 00:35:53.311
and know it's wrong,

861
00:35:53.311 --> 00:35:56.562
how would you be able to do it in DNA?

862
00:35:56.562 --> 00:35:59.185
So you can easily get fooled

863
00:35:59.185 --> 00:36:02.435
when you don't have enough information.

864
00:36:03.412 --> 00:36:06.593
So this is what brings me to the kind of stuff that I do.

865
00:36:06.593 --> 00:36:08.497
The other problem was,

866
00:36:08.497 --> 00:36:11.583
assembling a single genome is difficult,

867
00:36:11.583 --> 00:36:12.746
or perhaps impossible.

868
00:36:12.746 --> 00:36:14.766
So I've decided I don't want to assemble a single genome,

869
00:36:14.766 --> 00:36:17.297
I just want to sample mixtures of genomes.

870
00:36:17.297 --> 00:36:18.295
So this is what I get.

871
00:36:18.295 --> 00:36:20.687
If I get one of those diarrhea samples,

872
00:36:20.687 --> 00:36:22.522
there's hundreds to thousands of genomes

873
00:36:22.522 --> 00:36:25.540
in one single sample, I want to sample them all.

874
00:36:25.540 --> 00:36:27.700
Because one is hard,

875
00:36:27.700 --> 00:36:31.763
doing them all at the same time, it should be easy.

876
00:36:31.763 --> 00:36:33.272
At least that's my intuition.

877
00:36:33.272 --> 00:36:34.271
(audience laughing)

878
00:36:34.271 --> 00:36:35.664
I also worked on protein folding at some point

879
00:36:35.664 --> 00:36:38.404
in graduate school, so I'm a sucker for punishment.

880
00:36:38.404 --> 00:36:39.237
Anyway.

881
00:36:40.168 --> 00:36:42.537
So this is a really interesting area,

882
00:36:42.537 --> 00:36:46.229
because it's another one of those areas

883
00:36:46.229 --> 00:36:48.642
where you find a problem that

884
00:36:48.642 --> 00:36:52.725
the world's best experts have not thought of yet.

885
00:36:53.985 --> 00:36:56.632
Genome assembly, people have been thinking about

886
00:36:56.632 --> 00:36:57.839
for over 30 years.

887
00:36:57.839 --> 00:37:01.090
There haven't been any really new ideas in genome assembly

888
00:37:01.090 --> 00:37:03.007
since about 2001, 2002.

889
00:37:04.178 --> 00:37:08.795
So there have been small improvements, nothing major.

890
00:37:08.795 --> 00:37:11.236
No one has yet thought about how to do this

891
00:37:11.236 --> 00:37:13.419
with many, many genomes.

892
00:37:13.419 --> 00:37:16.067
You can't really formulate the problem as easily

893
00:37:16.067 --> 00:37:18.984
as a graph to approach the problem,

894
00:37:20.502 --> 00:37:21.675
because you're now gonna offer one path.

895
00:37:21.675 --> 00:37:23.794
But you're looking many different paths,

896
00:37:23.794 --> 00:37:25.819
that might intersect or might not,

897
00:37:25.819 --> 00:37:27.631
and you don't know what the objective function should be,

898
00:37:27.631 --> 00:37:28.629
and that kind of stuff.

899
00:37:28.629 --> 00:37:31.671
So even the mathematical formulism is not established

900
00:37:31.671 --> 00:37:32.838
at this point.

901
00:37:35.171 --> 00:37:36.872
And also, biologists don't know what they want

902
00:37:36.872 --> 00:37:37.847
to get out of this.

903
00:37:37.847 --> 00:37:40.610
They say, well assemble my genomes, assemble my community.

904
00:37:40.610 --> 00:37:41.841
Well what does this mean?

905
00:37:41.841 --> 00:37:44.809
And I've asked them, when I gave tutorials,

906
00:37:44.809 --> 00:37:46.713
to answer me, what do you want out of data?

907
00:37:46.713 --> 00:37:48.134
And most of the time they don't know.

908
00:37:48.134 --> 00:37:50.634
So that's kind of interesting.

909
00:37:51.849 --> 00:37:54.099
One great answer I got from someone is

910
00:37:54.099 --> 00:37:56.005
"I want to know everything."

911
00:37:56.005 --> 00:37:59.465
(audience laughing)

912
00:37:59.465 --> 00:38:02.882
So I want to know everything too, but ...

913
00:38:04.248 --> 00:38:06.918
And my belief is that all good problems

914
00:38:06.918 --> 00:38:09.335
are ill-posed or intractable.

915
00:38:10.864 --> 00:38:11.980
Okay.

916
00:38:11.980 --> 00:38:13.629
So what we've been doing in this area,

917
00:38:13.629 --> 00:38:15.858
we've been trying to start to understand

918
00:38:15.858 --> 00:38:18.064
how we can untangle different organisms from each other,

919
00:38:18.064 --> 00:38:19.550
find repeats and so on.

920
00:38:19.550 --> 00:38:22.569
So this is work we've done with Woodsay Gaykor

921
00:38:22.569 --> 00:38:26.818
and Tod Granulanomi, he and Jay, who is now in my lab.

922
00:38:26.818 --> 00:38:29.651
And here's a very simple mixture of organisms,

923
00:38:29.651 --> 00:38:31.854
that's two different organisms that are quite different

924
00:38:31.854 --> 00:38:35.549
from each other actually, staphorius and e coli.

925
00:38:35.549 --> 00:38:38.747
And still the graph joins them together.

926
00:38:38.747 --> 00:38:41.421
So what we're looking at,

927
00:38:41.421 --> 00:38:43.885
for ways of identifying these nodes in the graph,

928
00:38:43.885 --> 00:38:45.603
that can now separate out the genomes.

929
00:38:45.603 --> 00:38:48.157
And one of the ideas, this was the idea, Serge came up with,

930
00:38:48.157 --> 00:38:51.199
and Jay is extending right now,

931
00:38:51.199 --> 00:38:53.103
was to think of this as a social network,

932
00:38:53.103 --> 00:38:54.891
and to try to identify the important nodes

933
00:38:54.891 --> 00:38:55.910
in social networks.

934
00:38:55.910 --> 00:39:00.185
So the nodes are colored by betweenness centrality measure,

935
00:39:00.185 --> 00:39:02.644
and you can see that the nodes that separate out

936
00:39:02.644 --> 00:39:04.990
the genome high betweenness centrality.

937
00:39:04.990 --> 00:39:07.314
And now you can say, perhaps this is one way

938
00:39:07.314 --> 00:39:11.481
of identifying nodes that will now make my graph simpler.

939
00:39:14.315 --> 00:39:18.010
So we're still exploring in more detail.

940
00:39:18.010 --> 00:39:20.054
I'm not sure if betweenness centrality is the only measure

941
00:39:20.054 --> 00:39:21.772
we can use or the most appropriate one,

942
00:39:21.772 --> 00:39:24.326
but it seems to somewhat work.

943
00:39:24.326 --> 00:39:26.811
The other thing that you can find in these graphs,

944
00:39:26.811 --> 00:39:29.852
and this is a picture from a paper in PNAS,

945
00:39:29.852 --> 00:39:32.520
so we're not involved in this paper.

946
00:39:32.520 --> 00:39:33.823
But this is the kind of paper biologists are interested

947
00:39:33.823 --> 00:39:35.049
in generating.

948
00:39:35.049 --> 00:39:38.026
And this is also an infant gut.

949
00:39:38.026 --> 00:39:41.764
And they realized there's two types of one organism

950
00:39:41.764 --> 00:39:44.231
called citrobacter, and they're different,

951
00:39:44.231 --> 00:39:46.321
and they vary differently across time.

952
00:39:46.321 --> 00:39:48.452
So they're two, you could call them

953
00:39:48.452 --> 00:39:49.804
the same organism, perhaps,

954
00:39:49.804 --> 00:39:52.219
or they're the same species for sure,

955
00:39:52.219 --> 00:39:55.071
but they have differences between them.

956
00:39:55.071 --> 00:39:56.422
They both exist at the same time in the samples

957
00:39:56.422 --> 00:39:57.629
and they vary differently.

958
00:39:57.629 --> 00:39:59.208
So we want to understand how to separate

959
00:39:59.208 --> 00:40:01.252
things that are very, very similar from each other,

960
00:40:01.252 --> 00:40:02.920
but with small differences.

961
00:40:02.920 --> 00:40:06.267
And the assembly graph, they actually built by hand,

962
00:40:06.267 --> 00:40:10.052
for this paper, it looks like a series of bubbles.

963
00:40:10.052 --> 00:40:12.420
And the path through the graph represents

964
00:40:12.420 --> 00:40:14.464
one of those organisms.

965
00:40:14.464 --> 00:40:19.244
So the question is, how do you, they did this by hand.

966
00:40:19.244 --> 00:40:20.335
But we can't afford to do this by hand

967
00:40:20.335 --> 00:40:22.010
for hundreds of thousands,

968
00:40:22.010 --> 00:40:26.561
or even for more than a couple samples at a time, right?

969
00:40:26.561 --> 00:40:27.815
So the question is,

970
00:40:27.815 --> 00:40:29.998
can we start uncovering this type of information

971
00:40:29.998 --> 00:40:33.969
by looking at the graph structure more globally.

972
00:40:33.969 --> 00:40:36.523
So essentially, one thing that we've done,

973
00:40:36.523 --> 00:40:39.216
and this seems to be working fairly well,

974
00:40:39.216 --> 00:40:42.072
we're still trying to untangle all the stories,

975
00:40:42.072 --> 00:40:45.230
is to use a decomposition from graph theory

976
00:40:45.230 --> 00:40:48.133
call a SPQR3 decomposition of a graph.

977
00:40:48.133 --> 00:40:50.682
So this essentially breaks up the graph

978
00:40:50.682 --> 00:40:54.054
in a hierarchical manner into tri-connected components.

979
00:40:54.054 --> 00:40:56.212
So each tri-connected component, in some sense,

980
00:40:56.212 --> 00:40:59.255
and these are some of those that we can get automatically

981
00:40:59.255 --> 00:41:01.229
from the graph structure,

982
00:41:01.229 --> 00:41:03.702
represent some region where perhaps

983
00:41:03.702 --> 00:41:05.687
there's some variation between the organisms

984
00:41:05.687 --> 00:41:08.218
that have been mixed together in the same sample.

985
00:41:08.218 --> 00:41:11.278
So we can discover, and we can actually,

986
00:41:11.278 --> 00:41:14.023
it's not easy to see, but we discovered the same pattern

987
00:41:14.023 --> 00:41:17.761
in the same dataset that they had in the paper

988
00:41:17.761 --> 00:41:19.344
I mentioned before.

989
00:41:21.453 --> 00:41:23.427
We're still trying to completely understand what's going on

990
00:41:23.427 --> 00:41:25.703
because we want to go,

991
00:41:25.703 --> 00:41:28.162
not just understand there's a pattern,

992
00:41:28.162 --> 00:41:29.879
one of these tri-connected components,

993
00:41:29.879 --> 00:41:32.110
but understand what it means biologically.

994
00:41:32.110 --> 00:41:33.896
And then try to add the notations,

995
00:41:33.896 --> 00:41:36.150
and then try to actually display to biologists

996
00:41:36.150 --> 00:41:38.729
in a way that makes sense to them.

997
00:41:38.729 --> 00:41:40.424
But this has been really promising work,

998
00:41:40.424 --> 00:41:44.091
and this is one of the areas I'm working on.

999
00:41:47.599 --> 00:41:48.598
And I'm running out of time,

1000
00:41:48.598 --> 00:41:50.594
so I'll go fairly quickly here.

1001
00:41:50.594 --> 00:41:53.265
So one of the things that you have to realize

1002
00:41:53.265 --> 00:41:55.656
with assembly is that,

1003
00:41:55.656 --> 00:41:57.142
assembly is difficult,

1004
00:41:57.142 --> 00:41:58.698
you can have mistakes and not even know that

1005
00:41:58.698 --> 00:41:59.836
you have mistakes and so on.

1006
00:41:59.836 --> 00:42:01.798
So a big part of genome assembly,

1007
00:42:01.798 --> 00:42:03.249
or what we should be doing,

1008
00:42:03.249 --> 00:42:06.105
is evaluating whether the results are correct.

1009
00:42:06.105 --> 00:42:08.539
And there's surprisingly little work in this field.

1010
00:42:08.539 --> 00:42:11.097
There was a lot of work in the early days.

1011
00:42:11.097 --> 00:42:13.025
But essentially we're developing tools that look at

1012
00:42:13.025 --> 00:42:15.113
internal consistency of the assembly

1013
00:42:15.113 --> 00:42:16.992
to try to understand were there places

1014
00:42:16.992 --> 00:42:19.712
where the consistency, based on our assumptions

1015
00:42:19.712 --> 00:42:22.104
about the sequencing process, tell us something's wrong

1016
00:42:22.104 --> 00:42:26.446
and flag those regions so we can possibly correct them.

1017
00:42:26.446 --> 00:42:29.446
But we're also look at ways of using

1018
00:42:30.719 --> 00:42:32.924
essentially probabilistic generative models

1019
00:42:32.924 --> 00:42:36.106
to essentially ask, I have an assembly,

1020
00:42:36.106 --> 00:42:38.194
I have the data that went into the assembly,

1021
00:42:38.194 --> 00:42:41.191
how good is the fit between the two?

1022
00:42:41.191 --> 00:42:44.442
And the likelihood that these sequences

1023
00:42:44.442 --> 00:42:46.253
would have been generated from the assembly

1024
00:42:46.253 --> 00:42:48.226
by modeling the sequencing process

1025
00:42:48.226 --> 00:42:50.546
will tell us how good the assembly is.

1026
00:42:50.546 --> 00:42:52.476
And this actually works really well.

1027
00:42:52.476 --> 00:42:54.380
It's an approach that works really well

1028
00:42:54.380 --> 00:42:56.911
for comparing different assemblies of the same dataset.

1029
00:42:56.911 --> 00:43:01.392
And there's some issues with extrapolating beyond that.

1030
00:43:01.392 --> 00:43:03.778
In part because we don't really know how

1031
00:43:03.778 --> 00:43:05.618
to estimate the probability of a set of reads,

1032
00:43:05.618 --> 00:43:08.701
or the assembly itself at some level.

1033
00:43:11.191 --> 00:43:12.691
And the last part,

1034
00:43:15.017 --> 00:43:19.155
I think it's starting to push towards the future.

1035
00:43:19.155 --> 00:43:22.313
And that's the most exciting stuff that's happening.

1036
00:43:22.313 --> 00:43:24.305
So one thing that we discovered in the diarrhea dataset

1037
00:43:24.305 --> 00:43:25.972
was that if you use,

1038
00:43:27.027 --> 00:43:31.392
this is using standard epidemiological tests,

1039
00:43:31.392 --> 00:43:35.456
you can realize that if I have two different organisms,

1040
00:43:35.456 --> 00:43:38.590
so in this case I'm looking at rotavirus and shigella.

1041
00:43:38.590 --> 00:43:42.131
If I have the two different organisms in the sample,

1042
00:43:42.131 --> 00:43:45.458
then the likelihood that you have diarrhea in that sample

1043
00:43:45.458 --> 00:43:47.989
is severely increased.

1044
00:43:47.989 --> 00:43:49.494
So the way you'd read this,

1045
00:43:49.494 --> 00:43:53.771
this is the amount of diarrhea that can be explained

1046
00:43:53.771 --> 00:43:57.393
by rotavirus, this is the amount explained by shigella.

1047
00:43:57.393 --> 00:43:59.297
If you put them together you'd expect this,

1048
00:43:59.297 --> 00:44:01.195
but what you really get in our data is this.

1049
00:44:01.195 --> 00:44:03.685
So this tells you, shigella and rotavirus work together

1050
00:44:03.685 --> 00:44:05.729
to make you more sick.

1051
00:44:05.729 --> 00:44:09.562
So we discover interactions between organisms.

1052
00:44:11.859 --> 00:44:13.345
And some interactions are positive,

1053
00:44:13.345 --> 00:44:15.203
like they were there, and other interactions are negative.

1054
00:44:15.203 --> 00:44:16.732
In which case we're looking at lactobacillus,

1055
00:44:16.732 --> 00:44:19.311
and this is something some probiotics have.

1056
00:44:19.311 --> 00:44:22.651
And shigella again, and you'd expect this amount

1057
00:44:22.651 --> 00:44:25.230
of diarrhea when you put them both together,

1058
00:44:25.230 --> 00:44:27.950
but what you see is actually much less.

1059
00:44:27.950 --> 00:44:29.992
So this tells you, at least this lactobacillus

1060
00:44:29.992 --> 00:44:31.917
could help reduce diarrhea.

1061
00:44:31.917 --> 00:44:33.616
And this is something actually,

1062
00:44:33.616 --> 00:44:35.381
my colleagues at the School Of Medicine are chasing down.

1063
00:44:35.381 --> 00:44:37.192
They're actually trying to understand

1064
00:44:37.192 --> 00:44:41.359
what compound in lactobacillus might kill shigella.

1065
00:44:42.950 --> 00:44:45.249
We also looked at the networks of interactions,

1066
00:44:45.249 --> 00:44:47.988
and these are not quite interactions networks

1067
00:44:47.988 --> 00:44:49.197
in that diarrheal sample,

1068
00:44:49.197 --> 00:44:53.364
but the network of correlation networks, I call them.

1069
00:44:54.444 --> 00:44:55.443
Because we can't actually tell you

1070
00:44:55.443 --> 00:44:58.043
if any of these interactions are causal.

1071
00:44:58.043 --> 00:45:00.342
And what you see is that you look at diarrhea

1072
00:45:00.342 --> 00:45:02.523
versus non-diarrhea, it's not just that

1073
00:45:02.523 --> 00:45:04.313
the abundances of the organisms changed,

1074
00:45:04.313 --> 00:45:06.356
but the connections changed as well.

1075
00:45:06.356 --> 00:45:08.630
So understanding the disease might require to understand

1076
00:45:08.630 --> 00:45:11.972
interactions as much as it requires you to understand

1077
00:45:11.972 --> 00:45:16.689
how individual organisms work with treated disease.

1078
00:45:16.689 --> 00:45:19.266
So that's one area that we're looking at.

1079
00:45:19.266 --> 00:45:23.330
Together with Matthias Chung from Virginia Tech

1080
00:45:23.330 --> 00:45:26.487
we've been looking at OD type models.

1081
00:45:26.487 --> 00:45:28.856
Specifically the Lotka-Volterra models

1082
00:45:28.856 --> 00:45:30.621
to understand these interactions.

1083
00:45:30.621 --> 00:45:33.059
And the models we have work better

1084
00:45:33.059 --> 00:45:35.892
than the models from other papers.

1085
00:45:36.844 --> 00:45:40.768
I can give you more details later if you want.

1086
00:45:40.768 --> 00:45:45.319
Okay, so the question is, what's next for me?

1087
00:45:45.319 --> 00:45:47.432
In case anybody cares.

1088
00:45:47.432 --> 00:45:48.918
If you want me in the department for long

1089
00:45:48.918 --> 00:45:50.149
then you probably care.

1090
00:45:50.149 --> 00:45:51.981
So I'm very interested in this idea

1091
00:45:51.981 --> 00:45:53.469
of looking at the structure of the genomes,

1092
00:45:53.469 --> 00:45:55.252
understanding these patterns of variation,

1093
00:45:55.252 --> 00:45:59.298
understanding how it's not just the genome that changes,

1094
00:45:59.298 --> 00:46:03.891
but also how the genome structure changes across samples.

1095
00:46:03.891 --> 00:46:05.891
And how mixtures matter.

1096
00:46:06.983 --> 00:46:08.934
I'm also very interested in how interactions

1097
00:46:08.934 --> 00:46:10.536
actually shape microbial communities.

1098
00:46:10.536 --> 00:46:12.254
And this is something,

1099
00:46:12.254 --> 00:46:14.251
this is a big frustration of mine in the field in general.

1100
00:46:14.251 --> 00:46:16.618
Every time we discover something simple,

1101
00:46:16.618 --> 00:46:18.547
like looking at abundance and say hey,

1102
00:46:18.547 --> 00:46:20.148
this organism is more abundant in these samples

1103
00:46:20.148 --> 00:46:21.519
than it is in these other ones,

1104
00:46:21.519 --> 00:46:22.770
there's some biologist who says,

1105
00:46:22.770 --> 00:46:24.050
oh I saw that on a microscope before.

1106
00:46:24.050 --> 00:46:28.183
Or the saddest thing is a lot of times they say

1107
00:46:28.183 --> 00:46:30.180
well Pasteur saw that on a microscope before.

1108
00:46:30.180 --> 00:46:31.550
(audience laughing)

1109
00:46:31.550 --> 00:46:35.590
But interactions you cannot see under a microscope.

1110
00:46:35.590 --> 00:46:37.862
So there's a huge potential of actually uncovering

1111
00:46:37.862 --> 00:46:40.234
new biology by looking at interactions.

1112
00:46:40.234 --> 00:46:41.697
Because that's not something that's very easily done

1113
00:46:41.697 --> 00:46:42.530
in a lab.

1114
00:46:44.019 --> 00:46:46.016
The other stuff that I think is critical

1115
00:46:46.016 --> 00:46:48.733
for getting everything to work is,

1116
00:46:48.733 --> 00:46:50.683
we're generating software tools,

1117
00:46:50.683 --> 00:46:53.191
and we wanna make sure that those software tools work.

1118
00:46:53.191 --> 00:46:55.368
But most of the time the software tools we develop

1119
00:46:55.368 --> 00:46:56.755
are the output of the software tools

1120
00:46:56.755 --> 00:46:59.054
is the first time anyone has seen an output like it.

1121
00:46:59.054 --> 00:47:01.678
So how do you even know if that output is correct or not?

1122
00:47:01.678 --> 00:47:03.048
So the same problem with climate change,

1123
00:47:03.048 --> 00:47:05.254
many other problems.

1124
00:47:05.254 --> 00:47:08.580
And I assume a lot of these difficult machine learning

1125
00:47:08.580 --> 00:47:09.737
approaches and so on.

1126
00:47:09.737 --> 00:47:12.667
You get an output, well what does it mean?

1127
00:47:12.667 --> 00:47:14.079
And if you have a software bug,

1128
00:47:14.079 --> 00:47:15.918
and I have plenty of examples of papers

1129
00:47:15.918 --> 00:47:19.308
in Science and Nature withdrawn because of software bugs.

1130
00:47:19.308 --> 00:47:21.072
If you have a software bug, you don't know

1131
00:47:21.072 --> 00:47:22.837
if the result is due to a software bug

1132
00:47:22.837 --> 00:47:24.764
or it's truly a new discovery.

1133
00:47:24.764 --> 00:47:26.551
So the question is how do you do testing,

1134
00:47:26.551 --> 00:47:28.364
and I'm working with Atif Memmal on this

1135
00:47:28.364 --> 00:47:30.065
and trying to figure out ways to test software

1136
00:47:30.065 --> 00:47:34.232
without actually knowing what the answer looks like.

1137
00:47:35.887 --> 00:47:37.977
And the final thing for exploration,

1138
00:47:37.977 --> 00:47:40.182
the first thing, we're at the university,

1139
00:47:40.182 --> 00:47:44.986
I'm interested in education and trying to improve 131

1140
00:47:44.986 --> 00:47:46.452
among other things.

1141
00:47:46.452 --> 00:47:48.237
But just trying to figure out the best,

1142
00:47:48.237 --> 00:47:49.656
teach not just students here,

1143
00:47:49.656 --> 00:47:52.768
but also teach biologists about computational concepts.

1144
00:47:52.768 --> 00:47:54.243
Not about how to use tools,

1145
00:47:54.243 --> 00:47:56.599
but how to learn what those tools are doing,

1146
00:47:56.599 --> 00:47:58.248
and be able to make an informed decision

1147
00:47:58.248 --> 00:47:59.665
what tool to use.

1148
00:48:01.494 --> 00:48:02.497
So I think that's it.

1149
00:48:02.497 --> 00:48:04.494
I also have a strong belief that if you put computation

1150
00:48:04.494 --> 00:48:08.116
and biology together you get much better results.

1151
00:48:08.116 --> 00:48:10.531
(audience laughing)

1152
00:48:10.531 --> 00:48:13.271
And I want to thank everybody who contributed,

1153
00:48:13.271 --> 00:48:14.271
both my lab,

1154
00:48:15.291 --> 00:48:18.541
the environment at Maryland, CS, UMACS,

1155
00:48:20.051 --> 00:48:21.978
CBCB and so on.

1156
00:48:21.978 --> 00:48:24.521
Also I've been involved with a number of large projects

1157
00:48:24.521 --> 00:48:26.762
with the NIH that have been really useful,

1158
00:48:26.762 --> 00:48:30.171
and I had lots of collaborators and funders,

1159
00:48:30.171 --> 00:48:33.658
and of course my family who's with me so far.

1160
00:48:33.658 --> 00:48:37.350
So with that, I'll just take questions.

1161
00:48:37.350 --> 00:48:40.517
(audience applauding)

1162
00:48:45.983 --> 00:48:48.519
<v Audience Member>So one aspect you didn't discuss</v>

1163
00:48:48.519 --> 00:48:50.469
is a lot of the data that you're dealing with

1164
00:48:50.469 --> 00:48:53.000
probably has errors in it.

1165
00:48:53.000 --> 00:48:56.333
Is there a process for cleaning the data

1166
00:48:57.268 --> 00:48:59.337
before your software takes over?

1167
00:48:59.337 --> 00:49:01.034
Or how are you dealing with that angle?

1168
00:49:01.034 --> 00:49:03.380
<v ->Yeah, so the clustering is one example</v>

1169
00:49:03.380 --> 00:49:05.771
where the clustering is in part necessary

1170
00:49:05.771 --> 00:49:08.368
because of the errors in the data.

1171
00:49:08.368 --> 00:49:11.483
And through the clustering process you can realize,

1172
00:49:11.483 --> 00:49:13.411
well I only saw this sequence once

1173
00:49:13.411 --> 00:49:15.808
when looking at 3,000 samples,

1174
00:49:15.808 --> 00:49:17.480
that's probably an error and I can remove it.

1175
00:49:17.480 --> 00:49:21.102
So also, when you see many many similar things

1176
00:49:21.102 --> 00:49:24.005
they're probably not the errors.

1177
00:49:24.005 --> 00:49:26.838
So yeah, there is a fair amount of that.

1178
00:49:26.838 --> 00:49:29.577
There's a lot of work in error correction of various kinds.

1179
00:49:29.577 --> 00:49:33.218
I've tried to stay a little out of that,

1180
00:49:33.218 --> 00:49:36.218
because it's often so dependent on technology

1181
00:49:36.218 --> 00:49:38.912
that changes so quickly, and the last thing you want

1182
00:49:38.912 --> 00:49:40.700
is to have a student work on a project for two years

1183
00:49:40.700 --> 00:49:42.929
and then the technology's obsolete

1184
00:49:42.929 --> 00:49:45.530
and they have nothing to show for it.

1185
00:49:45.530 --> 00:49:47.410
So I've been trying to stay a little more

1186
00:49:47.410 --> 00:49:51.230
in the fundamental problems and use other people's software

1187
00:49:51.230 --> 00:49:53.813
to correct the errors up front.

1188
00:49:56.428 --> 00:49:58.892
<v Audience Member>I was wondering if you were able to,</v>

1189
00:49:58.892 --> 00:50:02.329
in your analysis, if you could, based on the clusterings,

1190
00:50:02.329 --> 00:50:04.860
tell when different samples came from different ones

1191
00:50:04.860 --> 00:50:06.253
of those four countries?

1192
00:50:06.253 --> 00:50:09.388
In other words, I'm wondering if there's,

1193
00:50:09.388 --> 00:50:11.686
rather than a single global profile for diarrhea,

1194
00:50:11.686 --> 00:50:13.777
that it's more localized?

1195
00:50:13.777 --> 00:50:15.704
<v ->Yes, we could see some differences,</v>

1196
00:50:15.704 --> 00:50:19.512
and actually, when we had to publish these results

1197
00:50:19.512 --> 00:50:22.644
we had to essentially be very careful that

1198
00:50:22.644 --> 00:50:24.922
everything that we said there was correct.

1199
00:50:24.922 --> 00:50:27.588
Because we're claiming, look all these people

1200
00:50:27.588 --> 00:50:30.402
have worked for tens of years trying to understand

1201
00:50:30.402 --> 00:50:34.535
what causes diarrhea, and we've run a computer program

1202
00:50:34.535 --> 00:50:36.393
and we tell you more.

1203
00:50:36.393 --> 00:50:38.251
So we did stratify by country,

1204
00:50:38.251 --> 00:50:40.154
we did stratify by age group,

1205
00:50:40.154 --> 00:50:41.780
because age group mattered a lot and so on.

1206
00:50:41.780 --> 00:50:44.055
And things that we found multiple times,

1207
00:50:44.055 --> 00:50:46.052
those are the only things we reported.

1208
00:50:46.052 --> 00:50:47.837
But there are clear differences.

1209
00:50:47.837 --> 00:50:50.487
Even epidemiologists will know, for example,

1210
00:50:50.487 --> 00:50:54.713
in the DC area you probably will get cholera,

1211
00:50:54.713 --> 00:50:56.037
or you can get cholera,

1212
00:50:56.037 --> 00:50:57.570
whereas if you're in the Rockies you won't.

1213
00:50:57.570 --> 00:51:00.217
Right, the organism doesn't exist there.

1214
00:51:00.217 --> 00:51:04.384
So there are clearly geographical differences that matter.

1215
00:51:05.371 --> 00:51:06.204
Yes.

1216
00:51:07.113 --> 00:51:08.692
<v Audience Member>So you kind of poked fun at them,</v>

1217
00:51:08.692 --> 00:51:11.966
but you said that you give biologists an assembly

1218
00:51:11.966 --> 00:51:15.049
and they claim that they can tell you

1219
00:51:15.936 --> 00:51:18.444
whether it's correct or not.

1220
00:51:18.444 --> 00:51:21.509
What information are they using to make that judgment?

1221
00:51:21.509 --> 00:51:23.085
<v ->The biologists who claim this</v>

1222
00:51:23.085 --> 00:51:26.060
are probably the ones who don't actually know.

1223
00:51:26.060 --> 00:51:28.336
(audience laughing)

1224
00:51:28.336 --> 00:51:29.822
So the respectful biologists,

1225
00:51:29.822 --> 00:51:31.981
well the ones who actually really want to work,

1226
00:51:31.981 --> 00:51:34.791
they fully understand the complexity.

1227
00:51:34.791 --> 00:51:38.038
But a lot of people just trust too much the software,

1228
00:51:38.038 --> 00:51:41.243
and just say it must be correct.

1229
00:51:41.243 --> 00:51:42.729
<v Audience Member>So in a sense it's very unlike</v>

1230
00:51:42.729 --> 00:51:44.218
the language case then?

1231
00:51:44.218 --> 00:51:45.301
<v ->Yeah. Yeah.</v>

1232
00:51:46.633 --> 00:51:47.980
I mean they should know that they can't understand

1233
00:51:47.980 --> 00:51:50.627
just by looking at the data.

1234
00:51:50.627 --> 00:51:51.974
<v Audience Member>Particularly it's a language</v>

1235
00:51:51.974 --> 00:51:52.996
that people don't know.

1236
00:51:52.996 --> 00:51:54.199
<v ->Yes.</v>

1237
00:51:54.199 --> 00:51:57.309
<v Audience Member>You don't speak the language.</v>

1238
00:51:57.309 --> 00:51:59.381
<v ->Yes, Francis.</v>

1239
00:51:59.381 --> 00:52:01.099
<v Audience Member>Do you think the second-grade</v>

1240
00:52:01.099 --> 00:52:02.887
core standards will give you new research directions?

1241
00:52:02.887 --> 00:52:06.510
(audience laughing)

1242
00:52:06.510 --> 00:52:08.991
(audience laughing)

1243
00:52:08.991 --> 00:52:11.824
You don't have to answer that one.

1244
00:52:15.011 --> 00:52:16.451
<v ->Okay, thank you.</v>

1245
00:52:16.451 --> 00:52:18.062
(audience applauding)

1246
00:52:18.062 --> 00:52:20.645
(upbeat music)

