Есть ли в ДНК что-нибудь вроде операторов IF, переходов GOTO или циклов WHILE?
В разработке программного обеспечения эти конструкции выполняют следующие функции:
Присутствуют ли конструкции, подобные этим, в ДНК? Если да, то как они реализованы и как называются?
Биологические примеры, похожие на операторы программирования:
IF
: Активатор транскрипции; когда он присутствует, ген будет транскрибирован. Как правило, события не прекращаются, пока не пропадет сигнал; программа заканчивается только со смертью клетки. Таким образом, IF
оператор всегда является частью цикла.WHILE
: репрессор транскрипции; ген будет транскрибироваться до тех пор, пока не исчезнет репрессор.function
звонков. Все события происходят в одном и том же пространстве и всегда есть вероятность вмешательства. Можно возразить, что органеллы могут действовать как компартменты, которые могут иметь function
сходные свойства, но они очень сложны и не являются просто какими-то устройствами ввода-вывода.GOTO
всегда зависит от условия. Это может произойти в случае определенных сетевых соединений, таких как петли прямой связи и разветвленные пути. Например, если есть такой сигнальный путь, как этот: Логические ворота были построены с использованием синтетических биологических схем. См. этот обзор для получения дополнительной информации.
Молекулярно-биологические процессы нельзя напрямую сравнивать с компьютерным кодом. Важна лежащая в основе логика, а не сама конструкция утверждения, и эти примеры не следует воспринимать как абсолютные аналогии. Следует также отметить, что ДНК — это всего лишь набор инструкций, а не полностью функциональная сущность (она в некоторой степени функциональна). Однако, даже будучи просто кодом, он сравним с кодом HLL, который должен быть скомпилирован для выполнения своих функций. См. также этот пост.
Важно также отметить, что клетка, как и многие другие физические системы, имеет аналоговую природу. Поэтому в большинстве ситуаций нет 0/1 (двоичного) значения переменных. Рассмотрим экспрессию генов. Если присутствует активатор транскрипции, ген будет транскрибирован. Однако, если вы продолжаете увеличивать концентрацию активатора, экспрессия этого гена будет увеличиваться, пока не достигнет точки насыщения. Так что цифровой логики здесь нет. Сказав это, я бы добавил, что поведение переключения возможно в биологических системах (включая экспрессию генов) и также используется во многих случаях. Определенные виды регулирующих сетевых структур могут привести к такой динамике. Кооперативность с положительной обратной связью или без нее является одним из механизмов, которые могут реализовать переключающее поведение. Подробнее читайте осверхчувствительность . Также проверьте « Может ли молекулярная генетика сделать логическую переменную из непрерывной переменной? »
BREAK
SWITCH-CASE
. Все это зависит. Логический вентиль здесь имеет большее значение, чем операторы программы. Ведь эти утверждения основаны на логических тестах.ДНК не аналогична компьютерному коду, который делает поиск в нем подобных конструкций бессмысленным. Чтобы привести пару простых примеров, почему это так:
Компьютерный код имеет последовательный порядок выполнения; ДНК действует параллельно и вне последовательности, она не «исполняется».
Компьютерный код имеет строгое и последовательное значение, поэтому строка if x==4 : x=7
всегда делает одно и то же; кодирующая ДНК преобразуется в аминокислоты, и именно сложные химические взаимодействия между этими кислотами придают белкам их функцию, поэтому ни одна часть кодирующей ДНК не может быть понята вне ее белка.
В биологических системах есть некоторые пути, которые работают подобно компьютерам, но вам следует искать их на уровне белков, а не на уровне ДНК, и даже в этом случае вы должны быть предельно осторожны, чтобы ваша аналогия не нарушила вашего понимания. что происходит на самом деле.
Конечно, можно провести некоторые сравнения между тем, как гены экспрессируются в ДНК, и логическими функциями, но они не очень удачны.
Но синтетическая биология — это действительно расцветающая новая область, которая пытается интегрировать логические функции в биологию, см., например, Siuti et al (2013) .
Вышеупомянутая статья является блестящим примером группы, использующей бактерии для хранения информации и сборки в биологические цепи, которые затем можно использовать для обработки логических функций. Так что это делается, но не совсем так, как вы предлагаете.
Просто чтобы добавить к предыдущим ответам, интерференция транскрипции (см., например , Shearwin et al., 2005 ) может рассматриваться как форма утверждения IF (или WHILE) в том смысле, что:
if(x transcribed){not y transcribed}
Однако интерференция не обязательно должна быть бинарной, и более распространены градуированные ответы. Транскрипционная интерференция также может иметь место на стадии РНК (см., например , Xue et al, 2014 ), с использованием антисмысловой РНК и часто обеспечивающей петлю отрицательной обратной связи, но затем интерференция удаляется из ДНК и не представляет собой прямое утверждение IF. аналог на стадии ДНК.
Для меня GOTO в основном имеет смысл для последовательного выполнения кода, и это не относится к ДНК (много транскрипций происходит все время параллельно). В более общем плане параллельное «выполнение» ДНК наряду с непрерывными взаимодействиями и петлями обратной связи между ДНК, транскриптами и белками (среди прочего) также означает, что клеточные процессы гораздо менее четкие и прослеживаемые, чем компьютерный код, а это означает, что компьютер код — очень неудачная метафора клеточных процессов и функционирования ДНК.
Как сказал WYSIWYG, для вызовов функций нет эквивалента, так как всегда будут некоторые помехи. Однако можно утверждать, что некоторые модульные пути (например, передача сигналов апоптоза) можно рассматривать как «блок кода», где определенный вход (почти) обязательно приведет к определенному эффекту. Аналогия с вызовами функций заключается в том, что при описании множества различных механизмов более короткий и эффективный «код» позволяет учитывать все, например, между. активация каспазы и утечка цитохрома как один блок. Кроме того, маркировку белка убиквитином можно рассматривать как функциональный вызов деградации.
Если вас интересуют строительные блоки для программирования с биологией, ознакомьтесь с программой biobricks.org, целью которой является определение модульных частей (кирпичиков), которые могут быть датчиками, логическими функциями, эффекторами и т. д.
Что касается вызовов функций:
Эквивалентов вызовов функций не существует. Все события происходят в одном и том же пространстве и всегда есть вероятность вмешательства. Можно возразить, что органеллы могут выступать в качестве компартментов, у которых могут быть функции, подобные свойствам, но они очень сложны и не являются просто какими-то устройствами ввода-вывода.
а также
Как сказал WYSIWYG, для вызовов функций нет эквивалента, так как всегда будут некоторые помехи.
Я думаю, что ядерные рецепторы — отличный пример вызова функции. Они висят в цитозоле, позволяя нормальному программированию функционировать нормативным образом. При активации своим лигандом они перемещаются в ядро, чтобы активировать подпрограммы репрессии/активации генов и последующие нижестоящие процессы.
Таким образом, можно даже утверждать, что большинство начальных взаимодействий лигандов, запускающих клеточную передачу сигналов, являются вызовами функций.
В дополнение к отличному ответу WYSIWYG, на более низком уровне есть некоторые конструкции, подобные программированию:
ааааа говорит восстановить Монику
пользователь
GOTO
выражение.файлпод водой
WYSIWYG
WYSIWYG
GOTO
с другой стороны, является частью основной программы и просто управляет потоком инструкций. В то время как информационный поток в биологической системе можно контролировать, практически невозможно обеспечить отдельную среду, необходимую для истинных функций.файлпод водой
WYSIWYG
GOTO
. В большинстве языков это устарело. Таким образом, действиеGOTO
может быть выполнено другими операторами. Так что вы правы. Более того,GOTO
требует меток; хотя промотор для определенного TF можно рассматривать как метку, это скорее логическое условие, которое необходимо выполнить. Поэтому более важным, чем фактические заявления, является лежащая в их основе логика.скаймнинген
Майкл
Кайл Стрэнд
Гонки легкости на орбите
Гонки легкости на орбите
Джонатон
Санчизес
display:none
в ДНК это вполне разрешено); эти элементы могут включать белок Javascript. Тут и там присутствует рудиментарная форма PHP (см. ответ @WYSIWYG).кон псих
ака DrHouse
Всегда в замешательстве
Джеймс