Если вы устали от программирования для настольных компьютеров, телефонов и даже устройств Интернета вещей, то почему бы не перейти на следующий уровень. Виолончель-это язык программирования wetware, который буквально позволяет программировать бактерии.
Изображение: Джанет Иваса
Cello основана на Verilog, языке описания аппаратного обеспечения, который обычно используется для проектирования цифровых схем, но биологи Массачусетского технологического института нашли способ заставить его создавать схемы, закодированные ДНК. Вы пишете программу для виолончели, компилируете ее, и целью является последовательность ДНК. Поймите, что последовательность ДНК помещает ее в клетку, и у вас есть функциональность, которую вы разработали.
Ключевая идея заключается в том, что биологи уже разработали генетические модули, которые выполняют определенную работу и могут быть собраны в рабочие системы. Проблема в том, что использование этих модулей требовало больших знаний о том, как они работают. Можно сказать, что это похоже на старые времена электронного дизайна, когда схемы создавались вручную экспертами, которые знали характеристики устройств, с которыми они работали.
Исследовательская группа потратила много времени на разработку 14 различных реализаций ДНК логических элементов NOR/NOT, которые могли бы работать вместе в любой комбинации, не мешая действию друг друга. Частью процесса компиляции кода Verilog является поиск комбинаций NOR/NOT, которые естественным образом соединяются вместе, образуя желаемую схему. Эта комбинаторная задача решается либо с помощью поиска по ширине, либо с помощью имитационного отжига по методу Монте-Карло. Найденная лучшая схема затем преобразуется в одну из множества различных последовательностей ДНК, которые будут производить схему.
Удивительно то, что все это, кажется, работает. Процитируем статью, в которой сообщается о результатах:
«Виолончель была применена для разработки 60 схем для Escherichia coli, где функция схемы была определена с помощью кода Verilog и преобразована в последовательность ДНК. Последовательности ДНК были построены, как указано, без дополнительной настройки, что потребовало сборки 880 000 пар оснований ДНК. Из них 45 цепей работали правильно в каждом выходном состоянии (до 10 регуляторов и 55 деталей). Во всех цепях 92% из 412 выходных состояний функционировали так, как было предсказано.»
Схемы были разработаны для измерения таких вещей, как концентрация кислорода или глюкозы, и реагирования. Одна из схем использует семь логических элементов, и при 12 000 парах оснований это самая большая биологическая схема, которая еще не построена.
На приведенной ниже схеме показан пример схемы:
Пользователь указывает нужную функцию схемы в коде Verilog, и она преобразуется в последовательность ДНК. Показана примерная схема (0xF6); красные и синие кривые-прогнозируемые выходные состояния для популяций клеток, а сплошные черные распределения-экспериментальные данные проточной цитометрии. Выходы показаны для всех комбинаций состояний датчика; знаки плюс и минус указывают на наличие или отсутствие входного сигнала. RBS, сайт связывания рибосомы; RPU, относительная единица промотора; YFP, желтый флуоресцентный белок.
Очевидно, что возможность так легко создавать генетические схемы будет иметь практическое применение. Предложения включают улучшение дрожжевых клеток, чтобы они не отравляли себя токсичными продуктами во время брожения, программирование клеток для создания лекарств и так далее.
В настоящее время программное обеспечение настроено на генетику E. coli, но оно может работать с другими бактериями или даже дрожжевыми клетками. Идея заключается в том, что вы можете написать программу, а затем скомпилировать ее для «запуска» на разных организмах.
Программное обеспечение доступно на Github, и есть веб-сайт, где вы можете попробовать его.