So, people argue vigorously about the definition of life. They ask if it should have reproduction in it, or metabolism, or evolution. And I don't know the answer to that, so I'm not going to tell you. I will say that life involves computation. So this is a computer program. Booted up in a cell, the program would execute, and it could result in this person; or with a small change, it could result in this person; or another small change, this person; or with a larger change, this dog, or this tree, or this whale.
Как вы знаете, люди очень живо обсуждают, как дать определение жизни. Обсуждают, следует ли включать туда воспроизводство, метаболизм, эволюцию. Ответ на это я не знаю, и говорить об этом не собираюсь. Но я хочу сказать, что жизнь включает в себя вычисления. То есть это – компьютерная программа. Будучи загруженной в клетку, программа выполнится, и в результате получится этот человек, или, при небольшом изменении, может получиться этот человек – или, ещё одно изменение, и – этот, или, при более серьезном изменении – эта собака, или это дерево, или этот кит.
So now, if you take this metaphor [of] genome as program seriously, you have to consider that Chris Anderson is a computer-fabricated artifact, as is Jim Watson, Craig Venter, as are all of us. And in convincing yourself that this metaphor is true, there are lots of similarities between genetic programs and computer programs that could help to convince you. But one, to me, that's most compelling is the peculiar sensitivity to small changes that can make large changes in biological development -- the output. A small mutation can take a two-wing fly and make it a four-wing fly. Or it could take a fly and put legs where its antennae should be. Or if you're familiar with "The Princess Bride," it could create a six-fingered man.
Так вот, если серьёзно принять такую метафору генома как программы, то придется считать, что Крис Андерсон – это продукт работы компьютера, равно как и Джим Уотсон, Крейг Вентер, а также любой из нас. Что касается убедительности этой метафоры, то достаточно найти много схожего между генетическими и компьютерными программами, чтобы иметь возможность убедиться. Лично для меня самый убедительный аргумент – это удивительная чувствительность к малым изменениям, которая, как результат, приводит к большим вариациям биологического развития. Малая мутация способна превратить двукрылую муху в 4-х-крылую. Или способна у мухи посадить ножки там, где у неё должны быть усики. Или, для тех, кому знаком [роман и фильм] «Принцесса-невеста», малая мутация способна создать человека с 6-ю пальцами.
Now, a hallmark of computer programs is just this kind of sensitivity to small changes. If your bank account's one dollar, and you flip a single bit, you could end up with a thousand dollars. So these small changes are things that I think that -- they indicate to us that a complicated computation in development is underlying these amplified, large changes.
Так вот, характерной чертой компьютерных программ является как раз такого рода чувствительность к малым изменениям. Если на вашем банковском счету 1 доллар, и вы поменяете всего один бит, там может оказаться 1000 долларов. Эти малые изменения, по моему мнению, и указывают на то, что в основе усиления амплитуды изменений лежит сложный вычислительный процесс.
So now, all of this indicates that there are molecular programs underlying biology, and it shows the power of molecular programs -- biology does. And what I want to do is write molecular programs, potentially to build technology. And there are a lot of people doing this, a lot of synthetic biologists doing this, like Craig Venter. And they concentrate on using cells. They're cell-oriented. So my friends, molecular programmers, and I have a sort of biomolecule-centric approach. We're interested in using DNA, RNA and protein, and building new languages for building things from the bottom up, using biomolecules, potentially having nothing to do with biology. So, these are all the machines in a cell. There's a camera. There's the solar panels of the cell, some switches that turn your genes on and off, the girders of the cell, motors that move your muscles. My little group of molecular programmers are trying to refashion all of these parts from DNA. We're not DNA zealots, but DNA is the cheapest, easiest to understand and easy to program material to do this. And as other things become easier to use -- maybe protein -- we'll work with those.
При этом всё указывает на наличие молекулярных программ в основе биологических процессов, и мощь молекулярных программ доказывается биологией. Моя цель – писать молекулярные программы с потенциалом создания технологии. Занимается этим масса специалистов по синтетической биологии, таких как Крейг Вентер; они концентрируются на использовании клеток. Их работы – ориентированы на клетки. Мы с моими друзьями, молекулярными программистами, сконцентрировались на, как бы, био-молекулярном подходе. Мы начинаем с ДНК, РНК и белка, и строим новые языки для построения снизу вверх, с использованием биомолекул, что в принципе может не иметь ничего общего с биологией. Итак, внутри клетки имеются вот эти машины. Вот – камера. Вот – солнечные батареи клетки, переключатели для включения и выключения генов, опорные балки для клетки, моторчики для движения мускулов. Мы в нашей небольшой группе молекулярных программистов пытаемся переделать все эти элементы из ДНК. Мы не энтузиасты ДНК, но ДНК – это наиболее дешёвый, наиболее понятный и наиболее легко программируемый для этого материал. По мере того, как станет легче использовать прочие вещи – возможно, белок, – мы будем работать и с ними.
If we succeed, what will molecular programming look like? You're going to sit in front of your computer. You're going to design something like a cell phone, and in a high-level language, you'll describe that cell phone. Then you're going to have a compiler that's going to take that description and it's going to turn it into actual molecules that can be sent to a synthesizer and that synthesizer will pack those molecules into a seed. And what happens if you water and feed that seed appropriately, is it will do a developmental computation, a molecular computation, and it'll build an electronic computer. And if I haven't revealed my prejudices already, I think that life has been about molecular computers building electrochemical computers, building electronic computers, which together with electrochemical computers will build new molecular computers, which will build new electronic computers, and so forth.
Как будет выглядеть молекулярное программирование если мы добьемся успеха? Вы садитесь за свой компьютер, и собираетесь проектировать, скажем, сотовый телефон. Вы описываете желаемый телефон на высокоуровневом языке, а затем запускаете компилятор, который, исходя из вашего описания, преобразует его в описание реальных молекул. Это описание отправляется в синтезатор, а синтезатор упаковывает эти молекулы и получается одно семя. Если это семя соответствующим образом поливать и питать, то оно проделает все необходимые для его развития вычисления, молекулярные вычисления, и построит электронный компьютер. А раз уж я ещё не раскрывал свои убеждения, скажу, что, по моему мнению, жизнь идёт путём того, что молекулярные компьютеры строят электрохимические компьютеры, которые строят электронные компьютеры, которые, вместе с электрохимическими компьютерами, построят новые молекулярные компьютеры, которые построят новые электронные компьютеры, и т.д.
And if you buy all of this, and you think life is about computation, as I do, then you look at big questions through the eyes of a computer scientist. So one big question is, how does a baby know when to stop growing? And for molecular programming, the question is how does your cell phone know when to stop growing? (Laughter) Or how does a computer program know when to stop running? Or more to the point, how do you know if a program will ever stop? There are other questions like this, too. One of them is Craig Venter's question. Turns out I think he's actually a computer scientist. He asked, how big is the minimal genome that will give me a functioning microorganism? How few genes can I use? This is exactly analogous to the question, what's the smallest program I can write that will act exactly like Microsoft Word? (Laughter) And just as he's writing, you know, bacteria that will be smaller, he's writing genomes that will work, we could write smaller programs that would do what Microsoft Word does.
Если вы готовы всё это принять, и считаете, также как и я, что жизнь всецело состоит из вычислений, тогда вы будете смотреть на мир глазами специалиста по компьютерным технологиям. Тут возникает один большой вопрос. Откуда ребёнок знает, что пора прекращать рост? Для молекулярного программиста вопрос состоит в том, откуда сотовому телефону знать, что пора прекращать рост? (Смех) Или, откуда компьютерной программе знать, что пора остановиться? А ещё точнее, откуда мы знаем, что программа вообще остановится? Есть и другие вопросы, подобные этому. Один из них – вопрос, поставленный Крейг Вентером. Оказывается, Крейг – настоящий, как я считаю, специалист по компьютерным наукам. Он спросил, каков минимальный размер генома, который необходим для создания функционирующего микроорганизма? Насколько малым числом ген можно обойтись? Это в точности аналогично вопросу о том, программу какого минимального размера можно написать, чтобы она работала в точности, как Microsoft Word? (Смех) Аналогично тому, как он пишет малые бактерии – он пишет геномы, которые сделают дело – так же и мы могли бы написать малые программы, которые бы делали всё, что делает Microsoft Word.
But for molecular programming, our question is, how many molecules do we need to put in that seed to get a cell phone? What's the smallest number we can get away with? Now, these are big questions in computer science. These are all complexity questions, and computer science tells us that these are very hard questions. Almost -- many of them are impossible. But for some tasks, we can start to answer them. So, I'm going to start asking those questions for the DNA structures I'm going to talk about next. So, this is normal DNA, what you think of as normal DNA. It's double-stranded, it's a double helix, has the As, Ts, Cs and Gs that pair to hold the strands together. And I'm going to draw it like this sometimes, just so I don't scare you. We want to look at individual strands and not think about the double helix. When we synthesize it, it comes single-stranded, so we can take the blue strand in one tube and make an orange strand in the other tube, and they're floppy when they're single-stranded. You mix them together and they make a rigid double helix. Now for the last 25 years, Ned Seeman and a bunch of his descendants have worked very hard and made beautiful three-dimensional structures using this kind of reaction of DNA strands coming together. But a lot of their approaches, though elegant, take a long time. They can take a couple of years, or it can be difficult to design.
Но в молекулярном программировании вопрос стоит так: сколько молекул необходимо поместить в семя, чтобы получить телефон? Каким их минимальным числом можно обойтись? Так вот, для компьютерных технологий – это большие проблемы. Это вопросы уровня сложности, и в компьютерных технологиях они считаются очень трудными вопросами. Многие из них неразрешимы. Но в отношении некоторых задач, всё же, можно попытаться ответить на них. Потому, я поставлю эти вопросы для структур ДНК, о которых сейчас расскажу. Вот – нормальная ДНК. Та, которую принято считать нормальной. Она имеет две нити и двойную спираль. Имеет парные A, T, C, G, которые удерживают нити вместе. Иногда я это буду показывать вот так, просто чтобы не напугать вас. Мы будем рассматривать отдельные нити и не думать о двойной спирали. При синтезировании мы получаем однонитевые структуры, поэтому мы можем взять синюю нить в одной пробирке, и сделать оранжевую нить – в другой; они гибкие, пока находятся по отдельности. Но если их перемешать, они составят негнущуюся двойную спираль. За последние 25 лет Нед Симан и целый ряд его последователей очень интенсивно потрудились и создали трёхмерные структуры, используя эту реакцию ДНК на перемешивание. Однако многие из их, в общем-то, элегантных подходов требуют много времени. Может понадобиться несколько лет, или их может быть тяжело проектировать.
So I came up with a new method a couple of years ago I call DNA origami that's so easy you could do it at home in your kitchen and design the stuff on a laptop. But to do it, you need a long, single strand of DNA, which is technically very difficult to get. So, you can go to a natural source. You can look in this computer-fabricated artifact, and he's got a double-stranded genome -- that's no good. You look in his intestines. There are billions of bacteria. They're no good either. Double strand again, but inside them, they're infected with a virus that has a nice, long, single-stranded genome that we can fold like a piece of paper. And here's how we do it.
И вот пару лет назад, я предложил новый метод, который я назвал ДНК-оригами. Он настолько прост, что вы можете этим заниматься дома на кухне, и спроектировать всё на портативном компьютере. Однако, для этого нужна очень длинная нить ДНК, а её технически очень трудно получить. Можно обратиться к естественному источнику. Можно заглянуть внутрь этого продукта работы компьютера, но его 2-х-нитевой геном ничего не даст. Можно заглянуть внутрь его кишечного тракта, где есть миллиарды бактерий – тоже без толку. Опять двойные нити, но внутри они заражены вирусом, который имеет прекрасный, длинный, однонитевой геном. Мы можем сложить его как лист бумаги, и вот как мы это делаем.
This is part of that genome. We add a bunch of short, synthetic DNAs that I call staples. Each one has a left half that binds the long strand in one place, and a right half that binds it in a different place, and brings the long strand together like this. The net action of many of these on that long strand is to fold it into something like a rectangle.
Это – часть того генома. Мы добавляем серию коротких синтетических ДНК, которые я назвал «скрепками». Каждая из них имеет левую половинку, которая стыкуется с длинной нитью в одном пункте, и правую половинку, которая стыкуется с ней в другом пункте, и завязывает длинную нить примерно так. Результатом воздействия многих скрепок на длинную нить является укладка её в нечто типа прямоугольника.
Now, we can't actually take a movie of this process, but Shawn Douglas at Harvard has made a nice visualization for us that begins with a long strand and has some short strands in it. And what happens is that we mix these strands together. We heat them up, we add a little bit of salt, we heat them up to almost boiling and cool them down, and as we cool them down, the short strands bind the long strands and start to form structure. And you can see a little bit of double helix forming there. When you look at DNA origami, you can see that what it really is, even though you think it's complicated, is a bunch of double helices that are parallel to each other, and they're held together by places where short strands go along one helix and then jump to another one. So there's a strand that goes like this, goes along one helix and binds -- it jumps to another helix and comes back. That holds the long strand like this.
Киносъёмку этого процесса сделать невозможно, но Шон Дуглас в Гарварде создал для нас хорошую визуализацию, которая начинается с длинной нити и нескольких коротких нитей. Наши действия состоят в перемешивании этих нитей. Нагреваем, добавляем немного соли, нагреваем почти до кипения, охлаждаем, и по мере охлаждения короткие нити стыкуются с длинными и начинают формировать структуру. Здесь видно начало формирования двойной спирали. Если посмотреть на ДНК-оригами, то можно увидеть, что на самом деле, даже если это покажется сложным, здесь – серия параллельных друг другу двойных спиралей, удерживаемых вместе через те пункты, где короткие нити идут вдоль одной спирали, но затем перепрыгивают на другую. Так что, вот нить, которая идёт вот так, идёт вдоль одной спирали и стыкуется, перепрыгивает на другую спираль и возвращается, и это удерживает длинную нить вот таким образом.
Now, to show that we could make any shape or pattern that we wanted, I tried to make this shape. I wanted to fold DNA into something that goes up over the eye, down the nose, up the nose, around the forehead, back down and end in a little loop like this. And so, I thought, if this could work, anything could work. So I had the computer program design the short staples to do this. I ordered them; they came by FedEx. I mixed them up, heated them, cooled them down, and I got 50 billion little smiley faces floating around in a single drop of water. And each one of these is just one-thousandth the width of a human hair, OK?
Чтобы доказать, что мы можем создать какую угодно форму и фигуру, я попробовал вот эту форму. Я хотел, чтобы ДНК уложилась вот так: вверх к глазу, вниз по носу, вверх по носу, вокруг лба, обратно вниз и кончик в виде такой вот петельки. Идея была в том, что если удастся это, то удастся и всё, что угодно. А потому я заставил компьютерную программу спроектировать для этой цели короткие «скрепки». Я заказал их, получил по [срочной почте] FedEx перемешал, подогрел, охладил, и получил 50 миллиардов смайликов, свободно плавающих в одной капле воды. Каждая из них имеет размер, представьте себе, в одну тысячную толщины человеческого волоса.
So, they're all floating around in solution, and to look at them, you have to get them on a surface where they stick. So, you pour them out onto a surface and they start to stick to that surface, and we take a picture using an atomic-force microscope. It's got a needle, like a record needle, that goes back and forth over the surface, bumps up and down, and feels the height of the first surface. It feels the DNA origami. There's the atomic-force microscope working and you can see that the landing's a little rough. When you zoom in, they've got, you know, weak jaws that flip over their heads and some of their noses get punched out, but it's pretty good. You can zoom in and even see the extra little loop, this little nano-goatee.
Вот все они плавают в растворе, но, чтобы их увидеть, надо сделать так, чтобы они прилипли к какой-нибудь поверхности. А потому мы выливаем их на поверхность, и они начинают к ней прилипать, а мы делаем съёмку с помощью атомно-силового микроскопа. Он оснащён иглой, подобно проигрывателю, которая ходит взад-вперёд по поверхности, и, сталкиваясь с неровностями, чувствует высоту первой поверхности. Он чувствует ДНК-оригами. Вот атомно-силовой микроскоп в действии, вам видно, что результат грубоват. Если увеличить, то видно, как слабые челюсти взлетели выше головы, некоторые носы разбиты, но всё же неплохо. Приблизившись ещё, можно даже увидеть маленькую петлю, в виде нано-бородки.
Now, what's great about this is anybody can do this. And so, I got this in the mail about a year after I did this, unsolicited. Anyone know what this is? What is it? It's China, right? So, what happened is, a graduate student in China, Lulu Qian, did a great job. She wrote all her own software to design and built this DNA origami, a beautiful rendition of China, which even has Taiwan, and you can see it's sort of on the world's shortest leash, right? (Laughter) So, this works really well and you can make patterns as well as shapes, OK? And you can make a map of the Americas and spell DNA with DNA.
Самое лучшее в этом – то, что это способен создать каждый. Примерно через год после того, как мне удалось это сделать, я получаю вот что от неизвестного мне отправителя. Кто знает, что это? Это – Китай. Одна китайская студентка магистратуры, по имени Лулу Цзянь, сделала прекрасную вещь. Она сама написала программу для проектирования и создала это ДНК-оригами, красивое изображение Китая, на котором даже есть Тайвань. Видно, что его держат на самом, по-видимому, коротком в мире поводке. (Смех) [ревностность реакции КНР на Тайвань] Итак, это прекрасно функционирует и мы можем создавать фигуры и формы. Можно создать карту двух Америк, надпись ДНК с помощью ДНК.
And what's really neat about it -- well, actually, this all looks like nano-artwork, but it turns out that nano-artwork is just what you need to make nano-circuits. So, you can put circuit components on the staples, like a light bulb and a light switch. Let the thing assemble, and you'll get some kind of a circuit. And then you can maybe wash the DNA away and have the circuit left over. So, this is what some colleagues of mine at Caltech did. They took a DNA origami, organized some carbon nano-tubes, made a little switch, you see here, wired it up, tested it and showed that it is indeed a switch. Now, this is just a single switch and you need half a billion for a computer, so we have a long way to go. But this is very promising because the origami can organize parts just one-tenth the size of those in a normal computer. So it's very promising for making small computers.
Самая прекрасная сторона в этом… вообще-то всё это похоже на произведения искусства нано-размеров, но дело в том, что нано-искусство – это и есть всё, что надо для создания нано-схем. Значит, можно поставить компоненты схем на скрепки, подобно лампочке и переключателю, запустить процесс сборки и получить некую схему. А потом, может быть, удастся смыть ДНК и получить в осадке схему. Это и сделали мои коллеги в Калтехе. Они взяли ДНК-оригами, организовали углеродные нано-пробирки, сделали вот тут маленький переключатель, соединили его, протестировали и убедились, что это действительно переключатель. Так вот, это – всего лишь один переключатель, а для компьютера нужно полмиллиарда, так что ещё есть, над чем поработать. Но это многообещающе, потому что оригами может создать элементы размера 1/10 того, что имеется в обычном компьютере. Значит, это очень перспективно для создания малых компьютеров.
Now, I want to get back to that compiler. The DNA origami is a proof that that compiler actually works. So, you start with something in the computer. You get a high-level description of the computer program, a high-level description of the origami. You can compile it to molecules, send it to a synthesizer, and it actually works. And it turns out that a company has made a nice program that's much better than my code, which was kind of ugly, and will allow us to do this in a nice, visual, computer-aided design way.
Теперь я вернусь к компилятору. ДНК-оригами является доказательством того, что компилятор на самом деле работает. Итак, запускаем что-то в компьютере. Получаем высокоуровневое описание программы, высокоуровневое описание оригами. Можно скомпилировать его в молекулы, послать всё на синтезатор, и это всё на самом деле функционирует. Как оказалось, одна фирма создала прекрасную программу намного лучше моей, совершенно некрасивой на вид. Их программа позволяет работать с помощью красивого, визуального интерфейса.
So, now you can say, all right, why isn't DNA origami the end of the story? You have your molecular compiler, you can do whatever you want. The fact is that it does not scale. So if you want to build a human from DNA origami, the problem is, you need a long strand that's 10 trillion trillion bases long. That's three light years' worth of DNA, so we're not going to do this. We're going to turn to another technology, called algorithmic self-assembly of tiles. It was started by Erik Winfree, and what it does, it has tiles that are a hundredth the size of a DNA origami. You zoom in, there are just four DNA strands and they have little single-stranded bits on them that can bind to other tiles, if they match. And we like to draw these tiles as little squares. And if you look at their sticky ends, these little DNA bits, you can see that they actually form a checkerboard pattern. So, these tiles would make a complicated, self-assembling checkerboard. And the point of this, if you didn't catch that, is that tiles are a kind of molecular program and they can output patterns. And a really amazing part of this is that any computer program can be translated into one of these tile programs -- specifically, counting. So, you can come up with a set of tiles that when they come together, form a little binary counter rather than a checkerboard. So you can read off binary numbers five, six and seven.
Теперь возникает вопрос: если всё так прекрасно, почему же дело не кончается на ДНК-оригами? У вас есть молекулярный компьютер, теперь вы можете делать всё, что угодно. Проблема в том, что результаты не масштабируются. Например, для создания человека из ДНК-оригами, потребуется очень длинная нить, в 10 триллионов триллионов основ. Это – ДНК длиной в 3 световых года, то есть просто нереально. И мы обращаемся к другой технологии, которая называется алгоритмическая самосборка плиток. Начало ей дал Эрик Уинфри, и вот что она делает. Имеются плитки размером 1/100 от ДНК-оригами, увеличив, мы видим лишь 4 нити ДНК, на которых есть маленькие однонитевые кусочки. Они могут, если найдут себе пару, состыковать одну плитку с другой. Эти плитки мы будем рисовать как квадратики. Если приглянуться к их липким краям, к этим кусочкам ДНК, то можно видеть, что они располагаются в шахматном порядке. Значит, эти плитки образуют сложную само-собирающуюся шахматную доску. Если вы ещё не догадались, смысл этого в том, что плитки – это нечто типа молекулярной программы, и они производят фигуры. А самое потрясающее – это то, что любая компьютерная программа может быть преобразована в одну их этих плиточных программ, – в частности, такова программа подсчёта. Значит, можно получить набор плиток, которые будучи собранными вместе образуют маленький бинарный счётчик, а не просто шахматную доску. То есть, можно с неё считывать бинарные числа: пять, шесть и семь.
And in order to get these kinds of computations started right, you need some kind of input, a kind of seed. You can use DNA origami for that. You can encode the number 32 in the right-hand side of a DNA origami, and when you add those tiles that count, they will start to count -- they will read that 32 and they'll stop at 32. So, what we've done is we've figured out a way to have a molecular program know when to stop going. It knows when to stop growing because it can count. It knows how big it is. So, that answers that sort of first question I was talking about. It doesn't tell us how babies do it, however.
И чтобы правильно начать этот тип вычислений, нужны исходные данные, нужно нечто типа семени. Для этого можно использовать ДНК-оригами. Можно закодировать число 32 в правой части ДНК-оригами, и, когда подсчитывающие плитки будут складываться, они начнут подсчёт, прочитают число 32 и на 32 остановятся. Значит, мы нашли способ заставить молекулярную программу понять, когда остановить рост. Она понимает, когда надо остановить рост, потому что она умеет считать. Она знает, насколько она велика. Это – ответ на первый вопрос, о котором я говорил. Однако это ничего не говорит нам о том, как же дети делают это.
So now, we can use this counting to try and get at much bigger things than DNA origami could otherwise. Here's the DNA origami, and what we can do is we can write 32 on both edges of the DNA origami, and we can now use our watering can and water with tiles, and we can start growing tiles off of that and create a square. The counter serves as a template to fill in a square in the middle of this thing. So, what we've done is we've succeeded in making something much bigger than a DNA origami by combining DNA origami with tiles. And the neat thing about it is, is that it's also reprogrammable. You can just change a couple of the DNA strands in this binary representation and you'll get 96 rather than 32. And if you do that, the origami's the same size, but the resulting square that you get is three times bigger.
Теперь мы можем использовать эту программу подсчёта и попытаться получить более крупные вещи, чем с помощью только ДНК-оригами. Вот – ДНК-оригами. Мы можем вписать число 32 с обоих концов ДНК-оригами, использовать нашу лейку, начать взращивать плитки и создать квадрат. Счётчик служит шаблоном для заполнения пространства посередине этой штуки. Значит, теперь нам удалось сделать нечто намного большее, чем ДНК-оригами путём комбинирования ДНК-оригами с плитками. И тут есть еще одно хорошее свойство – всё это поддаётся перепрограммированию. Можно просто изменить пару нитей ДНК в этом бинарном представлении, и вместо 32 получить 96. Если так сделать, то оригами останется того же размера, но полученный квадрат будет в три раза больше.
So, this sort of recapitulates what I was telling you about development. You have a very sensitive computer program where small changes -- single, tiny, little mutations -- can take something that made one size square and make something very much bigger. Now, this -- using counting to compute and build these kinds of things by this kind of developmental process is something that also has bearing on Craig Venter's question. So, you can ask, how many DNA strands are required to build a square of a given size? If we wanted to make a square of size 10, 100 or 1,000, if we used DNA origami alone, we would require a number of DNA strands that's the square of the size of that square; so we'd need 100, 10,000 or a million DNA strands. That's really not affordable. But if we use a little computation -- we use origami, plus some tiles that count -- then we can get away with using 100, 200 or 300 DNA strands. And so we can exponentially reduce the number of DNA strands we use, if we use counting, if we use a little bit of computation. And so computation is some very powerful way to reduce the number of molecules you need to build something, to reduce the size of the genome that you're building.
Итак, это сводит вместе всё то, что я говорил о развитии. Имеется очень чувствительная компьютерная программа, где малые изменения – единичные, малейшие мутации – превращают то, что производило квадрат одного размера в нечто, выдающее квадрат намного больший. Так вот, использование программы подсчёта для вычисления и построения такого рода вещей путём подобного процесса развития имеет отношение вопросу, поставленному Крейг Вентером. Можно спросить, а сколько нитей ДНК потребуется для построения квадрата заданной длины? Если нужно построить квадраты размеров 10, 100 или 1000 и разрешается использовать только ДНК-оригами, то число нитей ДНК, которые потребуются для создания квадрата равно квадрату его размера, то есть 100, 10 тысяч или 1 миллион нитей ДНК. Ясно, что это – вне пределов досягаемости. Но если воспользоваться небольшими вычислениями – если использовать ДНК-оригами плюс несколько плиток со счётчиком – то тогда можно обойтись числом в 100, 200 или 300 нитей ДНК. Таким образом, число нитей ДНК можно экспоненциально сократить при помощи программы подсчёта, при помощи небольших вычислений. То есть, вычисление представляет собой очень мощный способ сокращения числа необходимых для построения молекул, сокращения размера создаваемого генома.
And finally, I'm going to get back to that sort of crazy idea about computers building computers. If you look at the square that you build with the origami and some counters growing off it, the pattern that it has is exactly the pattern that you need to make a memory. So if you affix some wires and switches to those tiles -- rather than to the staple strands, you affix them to the tiles -- then they'll self-assemble the somewhat complicated circuits, the demultiplexer circuits, that you need to address this memory. So you can actually make a complicated circuit using a little bit of computation. It's a molecular computer building an electronic computer. Now, you ask me, how far have we gotten down this path? Experimentally, this is what we've done in the last year. Here is a DNA origami rectangle, and here are some tiles growing from it. And you can see how they count. One, two, three, four, five, six, nine, 10, 11, 12, 17. So it's got some errors, but at least it counts up. (Laughter)
И наконец, я возвращаюсь к этой сумасбродной идее о том, что компьютеры строят компьютеры. Если взглянуть на созданный из оригами квадрат и на взращенные на нём программы подсчёта, то можно увидеть, что его структура – это в точности структура, нужная для создания памяти компьютера. Значит, если присовокупить к плиткам провода и переключатели, то есть, использовать скрепки не для нитей, а для плиток, то они будут само-собираться в довольно сложные схемы: демультиплексные схемы, необходимые для адресации этой памяти. Значит, при помощи небольших вычислений можно создать сложные схемы. Вот как молекулярный компьютер строит электронный компьютер. Теперь вы меня спросите, а насколько далеко мы продвинулись в этом деле? Вот – экспериментальный результат прошлого года. Это – прямоугольник ДНК оригами, а это – взращенные на нём плитки. Можете посмотреть, как они считают. Один, два, три, четыре, пять, шесть, девять, 10, 11, 12, 17. Ошибки налицо, но, по крайней мере, правильное направление счёта. (Смех)
So, it turns out we actually had this idea nine years ago, and that's about the time constant for how long it takes to do these kinds of things, so I think we made a lot of progress. We've got ideas about how to fix these errors. And I think in the next five or 10 years, we'll make the kind of squares that I described and maybe even get to some of those self-assembled circuits.
Дело в том, что эти идеи у нас были ещё девять лет назад. Это даёт вам представление о константе времени, о том, сколь долго нужно для такого рода вещей, и я считаю, что мы продвинулись далеко. Мы представляем себе, как можно будет исправить эти ошибки. И в следующие 5-10 лет, как я думаю, мы создадим описанные мною плитки и, может быть даже, доберёмся до самосборочных схем.
So now, what do I want you to take away from this talk? I want you to remember that to create life's very diverse and complex forms, life uses computation to do that. And the computations that it uses, they're molecular computations, and in order to understand this and get a better handle on it, as Feynman said, you know, we need to build something to understand it. And so we are going to use molecules and refashion this thing, rebuild everything from the bottom up, using DNA in ways that nature never intended, using DNA origami, and DNA origami to seed this algorithmic self-assembly.
Итак, что же я хотел донести до вас в этом выступлении? Я хотел бы, чтобы вы помнили, что при создании разнообразия и сложности своих форм, жизнь использует вычисления. Используемые вычисления – это молекулярные вычисления, а для их понимания, для более полного управления, нужно, как говорил Фейнман, строить: «Что не могу воспроизвести, того не понимаю». Вот мы и собираемся использовать молекулы и преобразовать эту штуку, перестроить всё снизу вверх, применяя ДНК так, как природа никогда и не предполагала, применяя ДНК-оригами и ДНК-оригами для выращивания алгоритмической самосборки.
You know, so this is all very cool, but what I'd like you to take from the talk, hopefully from some of those big questions, is that this molecular programming isn't just about making gadgets. It's not just making about -- it's making self-assembled cell phones and circuits. What it's really about is taking computer science and looking at big questions in a new light, asking new versions of those big questions and trying to understand how biology can make such amazing things. Thank you. (Applause)
Всё это очень круто, конечно, но я хотел бы, чтобы вы вынесли из этого выступления, из этих больших, как я надеюсь, вопросов, понимание того, что молекулярное программирование не сводится к созданию очередных технических ухищрений. Эта область не просто создаёт самосборочные телефоны и схемы. На самом деле молекулярное программирование начинает с того, что представляет крупные проблемы науки вычислений в новом свете, ставит вопросы по-новому, в попытке понять, как биология может создавать такие изумительные создания. Благодарю вас. (Аплодисменты)