Группа учёных под руководством исследователей из Калифорнийского технологического университета смогла сделать небольшой, но значимый шаг в разработке произвольно программируемых химических компьютеров. В качестве базовых вычислительных элементов в таких системах используются наборы ДНК, которые по своей природной сущности обладают способностью к самоорганизации и росту. Всё, что надо для работы вычислительных систем на основе ДНК ― это тёплая солоноватая вода, закодированный в ДНК алгоритм роста и базовые стандартные наборы ДНК-последовательностей.
Вычисления с помощью ДНК подобны работе ткацкого станка, где каждый новый слой ― это шаг исполнения одной команды (Erik Winfree/Caltech)
До сих пор «вычисления» с помощью ДНК проводились строго с использованием какой-либо одной последовательности. Для произвольных вычислений действующие методики не годились. Учёные из Калтеха (Caltech) смогли преодолеть это ограничение и представили технологию, которая может выполнять произвольные алгоритмы, используя один базовый набор из условно логических ДНК-элементов и отвечающую за алгоритм «расчёта» выборку из 355 базовых ДНК-последовательностей ― аналога компьютерных инструкций. В солевой раствор вносится логическое «семя» и набор «инструкций», после чего начинается расчёт ― сборка последовательности.
Примеры алгоритмов с использованием вентилей-ДНК и набором заданных последовательностей
Базовый элемент или «семя» представляет собой ДНК-свёртку (ДНК оригами) ― это нанотрубка длиной 150 нм и диаметром 20 нм. Структура «семени» остаётся практически неизменной вне зависимости от алгоритма, который будет вычисляться. Периферия «семени» сформирована таким образом, что на его окончании стартует сборка последовательностей ДНК. Растущая нить ДНК, как известно, собирается из последовательностей, которые по молекулярной структуре и химическому составу подходят предложенным последовательностям, а не случайным образом. Поскольку периферия «семени» представлена в виде шести условных вентилей, где каждый вентиль обладает двумя входами и двумя выходами, рост ДНК начинает подчиняться заданной логике (алгоритму) который, как уже сказано выше, представлен помещенным в раствор заданным набором ДНК-последовательностей из 355 базовых вариантов.
Учёные в ходе опытов показали возможность исполнения 21 алгоритма, включая счёт от 0 до 63, выбор лидера, определение деления на три и другие, хотя этими алгоритмами всё не ограничивается. Процесс вычисления идёт шаг за шагом, по мере роста нитей ДНК на всех шести выходах «семени». Этот процесс может занимать от одних до двух суток. На изготовление «семени» уходит существенно меньше времени ― от часа до двух. Результат расчётов можно воочию увидеть под электронным микроскопом. Трубка разворачивается в ленту, а на ленте в местах каждого значения «1» на последовательности ДНК присоединяется видимая в микроскоп молекула протеина. Нули в микроскоп не видны.
Развёрнутые последовательности ДНК под электронным микроскопом после вычисления . Цифры ― это код алгоритма, выгравированный на «семени», а всё что справа от цифр ― это последовательность выполнения команд в виде выросших нитей ДНК. На ленте видны только единицы благодаря молекулам протеина (Damien Woods/Maynooth University)
Безусловно, в представленном виде технология далека от выполнения полноценных расчётов. Пока это похоже на чтение ленты с телетайпа, растянутое на двое суток. Тем не менее, технология работает и оставляет за собой обширное поле для совершенствования. Стало понятно в каком направлении можно двигаться, и что необходимо делать для приближения химических компьютеров.