AlphaFold2
AlphaFold2. Что это и с чем его едят?
Сетка посвящена не этим вашим развлекательным целям, а реально важжжным вещам, ну по сути построению представлению белка в 3-х мерном пространстве, имея сиквенс аминокислот.
Мне кажется, что для кого-то это все может звучать сложно (например для меня еще 2 недели назад))), поэтому опишу мотивацию такого предсказания. Белки – основная часть построения любого организма. Они состоят из аминокислот. Очень важно понимать трехмерную структуру белка, так как по ней можно понять функцию, которую он несет и подобрать новое лекарство в фармаиндустрии
Небольшое отступление. Я не претендую на глубокое понимание самой молекулярной биологии, так как только начала в ней разбираться. Мне показалось, что будет классно написать углубляясь в тех детали ИИ в этом обзоре с технической точки зрения. Тем не менее придется вложить биологический контекст к тому, что вообще подается на вход сетке и отчего мы пляшем
У каждого вида белки работают по-разному, тем не менее процесс эволюции оставляет за собой формирование схожих белков у видов с общим родителем. Именно поэтому первым шагом, обращаясь к базам данных, мы пытаемся найти схожие сиквенсы аминокислот. Такой двумерный массив будет называться выравниваем, сокращается в статье, как MSA. Вот как я поняла смысл этого шага. По итогу может получится, что схожие аминокислотные остатки могут совпасть по всему столбу. Такой эффект будет показателем того, что данная аминокислота важна для формирования конкретного белка по всем видам
Таким же образом мы ищем шаблон структуры, найдя который мы можем представить 3d структуру белка по аминокислотам значительно быстрее. Если такая структура нашлась, то мы строим матрицу взаимодействия по аминокислотам внутри последовательности. Если шаблон не удалось найти, то такая матрица инициализируются рандомно, а позже с помощью сеток, мы уже определяем взаимодействие разных аминокислот в исходном сиквенсе
Как превращаем в эмбединги и обрабатываем?
Дальше обе матрицы прогоняются через конволюции и мы получаем эмбединги по матрицам, после чего 48 блоков подряд выполняем следующие действия. Прогоняем нечто похожее на то, что происходит в трансформере. Отличие в механизме внимания, но небольшое.
В чем отличие от ванильного трансформера?
В матрице остатков мы проходимся механизмом самовнимания по столбцам и по строкам. В матрице взаимодействия то же самое, только параллельно с этим, мы хотим выполнить правило треугольника, когда сумма сторон должна быть больше третьей. Таким образом мы используем 2 ребра взаимодействия аминокислот для обновления третьего. Интересный момент для меня в том, что при прогоне внимания всегда в качестве bias, мы даем обращать внимание на вторую матрицу. Как будто напрашивается для меня как раз cross-attention, но полагаю, что существует вариант, когда все поломается из-за этого действия
Как формируем 3D структуру по эмбедингам?
Ну и наконец, обработав 2 матрицы в отдельности, мы можем переходить к заключительному шагу – воспроизведение 3d структуры. Сначала алгоритм обновляет данные, не меняя их местоположение в пространстве, используя процесс, похожий на внимание в нейросетях, но с учетом геометрии белка. Затем осуществляется обновление, которое сохраняет взаимное расположение частей белка. Это делается так, чтобы предсказания были устойчивы к поворотам и переносам всего белка.
Далее для каждой части белка вычисляются изменения в его структуре. Эти изменения помогают уточнить предсказание структуры белка. Также создаются предсказания для боковых цепей аминокислот и оценивается точность структуры белка.
Интересный хак (ну вообще не очень то и хак, простое noisy student training) для повышения эффективности
Также интересно, что авторам помогло оснащение сета синтетикой с первой версии обучения, и обучением второй версии на увеличенном сете. Тут исходя из своего опыта меня заинтересовала фильтрация выдачи первой версии модели, но такой информации я нигде не нашла, а жаль
В общем-то на этом все, буду рада обратной связи, реакциям. Надеюсь вскоре написать такой же обзор на еще более новые подходы в биотехе.
Где можно еще поискать информацию по теме:
- Короткий обзор
- Обзор, который дал мне хорошее понимание с биологической точки зрения
- Статья
- Код