Американские исследователи разработали язык программирования для биохимических реакций
Синтетическая биология является новым направлением в биологии, она занимается проектированием биологических систем с заданными свойствами. Вместе с тем, управление молекулами является достаточно трудоемким процессом, так как требует учитывать огромное множество различных биохимических факторов.
Однако ситуация, похоже, может радикально измениться в ближайшем будущем. Команда исследователей из Техасского университета в Остине представила язык программирования высокого уровня под названием CRN++ для биохимиков, предназначенный для строгого описания химических реакций, позволяющий переводить текст программы в записи химических уравнений.
Исследователи объясняют, чтомолекулы взаимодействуют между собой посредством химических реакций. Следовательно, чтобы «запрограммировать» биологическую систему, достаточно направить химические реакции в определенное русло.Таким образом, ключевой задачей синтетической биологии является создание своего рода химического контроллера. Один из возможных вариантов решения этой проблемы и представили американские ученые.
«При разработке программного обеспечения программист пишет на понятном для него высокоуровневом языке, затем набранные строчки компилируются в машинный код, который трудно понять человеку, но легко — компьютеру, — объясняет Марко Васик, один из разработчиков CRN++. — Разработанный нами биохимический императивный язык работает примерно так же, только наоборот — он формализует описание происходящих на молекулярном уровне процессов, соответствующих химических реакциям.
Благодаря этому, если исследователь возьмется повторить химическую реакцию на основе кода, написанного кем-то ранее, он получит такой же результат».
Отметим, что исследователи выложили исходники CRN++ в открытый доступ.
«Мы создали язык программирования, который соответствует всем типам химических реакций. При этом CRN++ — это язык с открытым кодом, так что ученые могут вносить в него свои поправки, изменять его под собственные нужды, находить ошибки и пробовать новые подходы, получая на выходе нужный результат, не прибегая к долгим и сложным расчетам»