Предсказание 3D-структуры белка "с нуля"

Предсказание 3D-структуры белка "с нуля"


С предсказанием структуры белка ab initio, то есть «с нуля» последнее время лучше всего справляются нейросети (например, AlphaFold), однако об этом будет в следующей серии, так что подписывайтесь на канал. В этой статье мы объясним принципы более классических алгоритмов.

Один из самых эффективных подходов — это разделение последовательности белка на небольшие участки по несколько аминокислот, по такому принципу работает алгоритм Rosetta. Для каждого из фрагментов находят такие же последовательности в базе данных (когда фрагменты маленькие, это всегда удаётся), при этом каждому фрагменту соответствует несколько вариантов найденных пространственных структур.

Затем из этих кусочков, как из конструктора, собирается пространственная структура. Но возникает вопрос: как получить результат, если для каждого фрагмента есть много 3D-структур, а перебирать все варианты — слишком долго? Тут на помощь приходит метод Монте-Карло. Суть этой стратегии в том, что много раз берутся случайные комбинации фрагментов, а затем выбираются наилучшие. Rosetta разделяет получающиеся варианты на группы, и для каждой группы выдает наилучшие пространственные структуры

Как же алгоритм понимает, что определенный набор фрагментов лучше, чем другой? Есть много параметров, на которые можно опираться: например, можно учитывать «компактность» молекулы: чем компактнее структура, тем лучше. Однако главная идея, которая помогает наилучшим образом состыковывать разные фрагменты — это наши знания о том, какие аминокислоты из разных фрагментов могут взаимодействовать между собой в пространстве. Например, два цистеина образуют S-S сшивки в белках, гидрофобным аминокислотам выгодно притягиваться к друг другу.

Более умный способ понять, какие аминокислоты, предположительно, взаимодействуют в моделируемом белке — посмотреть на другие белки. Суть такова: сравнив много разных белков, можно заметить, что определенные аминокислоты эволюционируют вместе, то есть, если мутирует аминокислота в одной позиции, то с большой вероятностью мутирует и аминокислота в другой.

Основываясь на всех этих предпосылках, Rosetta собирает итоговый «пазл» с достаточно высокой эффективностью. К сожалению, правильность работы алгоритма сильно снижается, когда мы имеем дело с белками, сильно отличающимися от всех белков, которые имеются в базе.

Ещё один метод, который обычно менее эффективен, чем Rosetta, но раньше использовался достаточно часто — это Threading. Он основывается на том, что большая часть известных белков описывается не бесконечным количеством стандартных структур (в пределах нескольких тысяч).

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

Принцип Threading

Таким образом выбирается «заготовка», на основе которой вычисляется 3D-структура белка, при этом используются методы выравнивания, о которых мы писали раньше.

Также есть неплохо работающие методы, которые совмещают эти два подхода — например, I-TASSER. В таком случае за счёт Threading выбирается белок-заготовка, он сравнивается с имеющиммися в базе белками. Фрагменты, которым нет соответствия, моделируются с помощью Rosetta. Результат получается достаточно хорошим, так как Rosetta позволяет точно смоделировать структуру локально, а Threading позволяет правильно выбрать «заготовку».

Report Page