Первый программируемый компьютер на ДНК

Первый программируемый компьютер на ДНК
Экспериментальный протокол и реализация алгоритма сортировки на программируемом ДНК-компьютере

Учёные давно ведут эксперименты с хранением информации в ДНК и с обработкой этой информации. Например, учёные из Вашингтонского университета и Microsoft недавно построили «первый в мире DNA-винчестер» (фото). Эта конструкция способна впервые обеспечить запись и считывание информации в ДНК-хранилище без участия человека. Весьма значительное достижение, если учесть, что в ДНК можно записывать информацию с плотностью 2,2 петабайта на грамм. ДНК — компактный контейнер с плотностью записи в тысячи раз больше, чем у существующих носителей.

Однако у всех существующих ДНК-систем есть проблема: всё это уникальные проприетарные разработки, у которых напрочь отсутствует какая бы ни было гибкость. Если сравнить с кремниевой техникой, то каждая группа исследователей с нуля разрабатывает новую архитектуру компьютера, для которого нужно писать новый софт. Но ситуация может измениться благодаря первому программируемому ДНК-компьютеру, разработанному в Калифорнийском университете в Дейвисе (UC Davis), Калифорнийского технологического института и Университета Мейнут.

Первый программируемый компьютер на ДНК описан в научной статье, которая опубликована 20 марта 2019 года в журнале Nature. Авторы показали, что с помощью простого триггера один и тот же базовый набор молекул ДНК способен реализовать множество различных алгоритмов. Хотя исследование представляет собой чисто лабораторный эксперимент, но программируемые молекулярные алгоритмы в будущем могут быть использованы, например, для программирования ДНК-роботов, которые уже успешно доставляют лекарства в раковые клетки.

«Это одна из знаковых работ в данной области, — говорит Торстен-Ларс Шмидт, доцент по экспериментальной биофизике в Университете штата Кент, который не участвовал в исследованиях. — Раньше уже демонстрировали алгоритмическую самосборку, но не до такой степени сложности».

В электронных компьютерах биты — это двоичные единицы информации. Они представляют собой дискретное физическое состояние базового оборудования, например, наличие или отсутствие электрического тока. Эти биты, или, скорее, электрические сигналы пропускаются через схемы, состоящие из логических элементов, которые выполняют операцию на одном или нескольких входных битах и производят один бит в качестве выхода.

Объединяя эти простые строительные блоки снова и снова, компьютеры могут запускать удивительно сложные программы. Идея ДНК-вычислений заключается в замене электрических сигналов химическими связями, а кремния — нуклеиновыми кислотами для создания биомолекулярного программного обеспечения.


Абстрактная иерархия архитектуры и практической реализации полной 6-битной логической схемы IBC (Iterated Boolean Circuit)

По словам Эрика Винфри, учёного из Калифорнийского технологического института и соавтора статьи, молекулярные алгоритмы используют естественные возможности обработки информации в ДНК, но вместо того, чтобы позволить природе взять бразды правления в свои руки, вычисления в ДНК производятся в соответствии с программой, написанной человеком.

За последние 20 лет было проведено несколько успешных экспериментов с молекулярными алгоритмами, например, для игры в крестики-нолики или сборки молекул различной формы. В каждом случае требовалась тщательная разработка последовательности ДНК, чтобы выполнить один конкретный алгоритм, который будет генерировать структуру ДНК. В данном случае отличие состоит в том, что исследователи разработали систему, в которой одни и те же базовые фрагменты ДНК могут быть упорядочены для создания совершенно разных алгоритмов — и, следовательно, получения совершенно разного результата.

Процесс начинается с техники ДНК-оригами, то есть складывания длинной цепочки ДНК в желаемую форму. Этот сложенный кусочек работает как seed, который запускает алгоритмическую сборочную линию. Seed остаётся практически неизменным, независимо от алгоритма. Для каждого эксперимента в него вносят лишь небольшие изменения в несколько последовательностей.


Перепрограммирование логической схемы

После создания «семени» оно добавляется в раствор с сотней других нитей ДНК, известных как ДНК-плитки (DNA tiles). Учёные разработали 355 таких плиток. У каждой уникальное расположение азотистых оснований. Соответственно, для каждого алгоритма исследователи просто выбирают другой набор стартовых плиток. Поскольку эти фрагменты ДНК соединяются в процессе сборки, они образуют схему, которая реализует выбранный молекулярный алгоритм на входных битах, предоставляемых «семенем».

Используя эту систему, исследователи разработали и проверили 21 алгоритм для выполнения таких задач, как распознавание деления на три, выбор лидера, генерация паттернов и счёт с 0 до 63. Все эти алгоритмы реализованы с использованием различных комбинаций одних и тех же 355 плиток ДНК.

Конечно, непросто писать код, сбрасывая в пробирку фрагменты ДНК, но если автоматизировать процесс, то будущим молекулярным программистам даже не придётся задумываться о биомеханике, как сегодняшним программистам необязательно понимать физику транзисторов, чтобы писать хорошие программы.

 
Источник

Читайте также