Pull to refresh

Часть №5. Биовычисления по сворачиванию. Одна фундаментальная проблема

Algorithms *
В этой статье мы рассмотрим как свернуть одну спираль в РНК. Для понимания нужно прочитать все предыдущие части От белков к РНК, Мат. критерии, Как уменьшить число поворотов цепи?, Как оценить ход сворачивания односпиральной РНК?, Ограничение оптимизирующих методов в играх с противником и без. Если ранее у нас все шло как по маслу, то здесь мы столкнемся с серьезной проблемой. Может кто-то подскажет как её решить.



Повторим рисунок вторичной структуры рибозима который мы будем сворачивать.



Здесь уделим внимание спирали L1. В предыдущей части мы ввели целевую функцию для образования водородных связей между одной парой нуклеотидов (назовем её F(x-y), где x-y пара нуклеотидов). Здесь же нам надо образовать целых шесть: между нуклеотидами 14-22, 13-23, 12-24, 11-25, 10-26, 9-27. Когда мы их образуем цепь РНК свернется в спираль сама собой -> таково геометрическое расположение атомов, которые образуют водородные связи.

Казалось бы мы можем взять и использовать такую целевую функцию:

Fo = F(14-22) + F(13-23) + F(12-24) + F(11-25) + F(10-26) + F(9-27)

Но получится так, что связи на конце спирали, т.е. между нуклеотидами 10-26, 9-27 будут образовываться быстрее. Почему? Ну в общем-то понятно, длина цепи для концов больше, возможностей состыковаться больше, вероятность быстрее найти нужные повороты больше.

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

Так вот, если почти образовались связи 10-26, 9-27, то при условии «не развалить эти связи», а наша целевая функция это предполагает, это почти сводит к нулю возможность образовать затем связи в начале цепи, т.е. между нуклеотидами 14-22, 13-23.

Конечно это связано с расчетами, а не с природой. В природе все хорошо.

Но как вращается цепь. В игре FoldIt — есть такая возможность — инструмент Rebuild (посмотрите ролик, станет понятнее о чем речь). Он закрепляет конец цепи, и начинает вращать нуклеотиды. При этом если скажем проворачиваем 18 нуклеотид, то все нуклеотиды до него 1-17 остаются неподвижными. Но после поворота 18 нуклеотида обязательно изменят свое положение все остальные дальше, т.е. 19-61. Причем чем они дальше от 18-го тем сильнее они поменяют расположение.

Так вот, если мы образовали связь 9-27, и желаем образовать связь 14-22, то на это влияют повороты внутри петли 15, 16, 17, 18, 19, 20, 21… допустим поворот Х в 18 нуклеотиде сильно уменьшает целевую функцию F(14-22), но он одновременно разрывает связь 9-27, и целевая функция F(9-27) очень сильно возрастает. Понятно, что при общей целевой функции Fo мы такой поворот никогда не осуществим, а значит не сможем двигаться к намеченной цели.

В игре FoldIt есть такая возможность заморозить нуклеотиды. И тогда инструмент Rebuild вращает цепь только не замороженных нуклеотидов (это и наблюдается в ролике выше). Например, он может заморозить нуклеотиды 9-27, т.е. там где мы образовали связь, и вращать внутри между точками 9 — 27, не сдвигая их. Как он это делает? Прошу подскажите.

Я же вышел из этой проблемы изменением целевой функции Fo. Она видна на слайде



Идея очень простая — регулировать коэффициентом сжатия какие пары водородных связей нужно образовать в начале, а какие позже. При коэффициенте =1, эта функция превращается просто в сумму как и в Fo.

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

upd. Важное дополнение см. ниже в комментариях с 3 рисунками сворачиваемого рибозима.
Tags:
Hubs:
Total votes 11: ↑7 and ↓4 +3
Views 1.2K
Comments Comments 48