Трехмерный движок в коде… ДНК

Лучшие публикации за сутки.
В предыдущих выпусках:
1. Трехмерный движок на формулах Excel для чайников
2. Трехмерный движок внутри запроса SQL

Эта статья началась с шуточного ответа коллеги на мой вопрос о том, на какой популярный язык разметки портировать трехмерный движок в очередной раз.

Вообще, меня всегда интересовало, на что может быть похоже программирование внутриклеточных процессов. Как выглядят переменные, условия и циклы? Как вообще можно управлять молекулами, которые просто свободно перемещаются в цитоплазме?

Ответ довольно неожиданный — lingua franca для моделирования сложных процессов в клетках является реакции вида

$A \rightarrow A + B\\ B + B \rightarrow C $

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

— Неужели при помощи этих примитивных реакций можно что-то программировать?
— Да, а то, что написано выше, вычисляет

$B = \sqrt{A}$

.

В этом пошаговом туториале мы вместе взорвем себе мозг, чтобы получить 14 таких реакций, которые производят рендер трехмерного куба.

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

Как обычно, я сделал веб-приложение с эмулятором таких реакций, в котором можно поупражняться в «реактивном» программировании. Вы сможете удивлять химиков способностью вычисления конечных концентраций в сложных системах реакций методом пристального взгляда.

Для понимания статьи никаких предварительных знаний не требуется, необходимые сведения из школьной программы по биологии мы повторим в начале статьи. Также мы разберем типичные паттерны, которые использует эволюция для достижения сложного поведения в живых клетках. Читать дальше →

Добавить комментарий

Ваш адрес email не будет опубликован.