ProteinMPNN — Когда искусственный интеллект рисует белки будущего

14 Aug, 2024

Репозиторий давно не обновлялся

Последнее обновление было 1 год назад.

1,745
🔱 468
👥 27

Представьте себе мир, где создание нового белка с нуля — задача не для многолетних лабораторных экспериментов, а для нескольких строк кода. Звучит как научная фантастика? А вот и нет! Встречайте ProteinMPNN – проект, который приближает эту реальность, позволяя исследователям и разработчикам проектировать белковые последовательности на основе заданной трехмерной структуры. Если вы когда-либо задумывались о создании ферментов с новыми свойствами, вакцин или даже материалов, этот инструмент может стать вашим лучшим другом.

ProteinMPNN

Что такое ProteinMPNN и зачем он нужен?

ProteinMPNN – это, по сути, нейросеть, обученная "придумывать" аминокислотные последовательности, которые идеально вписываются в заданный белковый каркас. То есть, вы даете ей 3D-структуру (например, из PDB-файла), а она генерирует последовательность аминокислот, которая, по ее "мнению", должна сформировать именно такую структуру. Это задача, обратная предсказанию структуры белка по последовательности, и она не менее важна для современной биотехнологии и медицины.

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

Магия ProteinMPNN: ключевые возможности

Давайте посмотрим, что именно умеет этот инструмент и почему он так ценится в научном сообществе (кстати, его статья опубликована в Science!).

Реклама

1. Генерация последовательностей для любой структуры

Основная "фишка" ProteinMPNN – это способность генерировать новые аминокислотные последовательности для заданной белковой структуры. Вы можете взять любую известную структуру из базы данных PDB или даже свою собственную, и ProteinMPNN предложит варианты последовательностей, которые должны быть стабильны в этой конформации.

python protein_mpnn_run.py \
    --pdb_path examples/5L3H.pdb \
    --out_folder outputs/example_1 \
    --num_seq_per_target 10 \
    --sampling_temp "0.1"

Этот простой скрипт возьмет PDB-файл и сгенерирует 10 различных последовательностей, подходящих для этой структуры. Просто и эффективно!

2. Тотальный контроль над процессом дизайна

Настоящая мощь ProteinMPNN проявляется в его гибкости. Вы не просто генерируете последовательности "вслепую", а можете тонко управлять процессом:

  • Фиксация позиций: Представьте, что у вас есть активный центр фермента, который вы хотите сохранить неизменным. ProteinMPNN позволяет "зафиксировать" определенные аминокислоты, чтобы они не изменялись в процессе генерации.
    python protein_mpnn_run.py \
        --pdb_path examples/5L3H.pdb \
        --out_folder outputs/example_4_fixed \
        --fixed_positions_jsonl helper_scripts/fixed_positions_example.jsonl
    
  • Связывание позиций (симметрия): Если вы работаете с гомоолигомерами или хотите, чтобы разные части белка имели одинаковую последовательность, можно "связать" позиции, заставив их принимать одни и те же аминокислоты. Это очень удобно для создания симметричных структур.
    python protein_mpnn_run.py \
        --pdb_path examples/5L3H.pdb \
        --out_folder outputs/example_5_tied \
        --tied_positions_jsonl helper_scripts/tied_positions_example.jsonl
    
  • Смещение аминокислотного состава (Bias): Хотите, чтобы в вашем белке было больше лизина или меньше цистеина? Нет проблем! Вы можете задать "смещение" для определенных аминокислот, увеличивая или уменьшая их вероятность появления в последовательности.
    python protein_mpnn_run.py \
        --pdb_path examples/5L3H.pdb \
        --out_folder outputs/example_8_bias \
        --bias_AA_jsonl helper_scripts/bias_AA_example.jsonl
    
  • PSSM-интеграция: Для более продвинутых пользователей есть возможность использовать PSSM (Position-Specific Scoring Matrix) для учета эволюционных данных или предпочтений аминокислот в определенных позициях. Это позволяет генерировать последовательности, более похожие на природные или нацеленные на конкретные свойства.

3. Гибкость моделей

ProteinMPNN предлагает несколько предобученных моделей, каждая из которых оптимизирована для разных задач:

  • Модели для всего белкового каркаса (vanilla_model_weights): Стандартные модели, работающие со всеми атомами основной цепи.
  • Модели только для атомов C-альфа (ca_model_weights): Полезны, когда у вас есть только информация о положениях C-альфа атомов, что часто встречается в низкоразрешающих структурах или при моделировании.
  • Модели для растворимых белков (soluble_model_weights): Специализированные модели, обученные на белках, которые хорошо растворяются в воде, что критично для многих биотехнологических применений.

4. Оценка качества дизайна

Инструмент не только генерирует последовательности, но и предоставляет метрики для их оценки, такие как score (отрицательный логарифм вероятности сгенерированных аминокислот) и seq_recovery (процент совпадения с исходной последовательностью). Это помогает понять, насколько "уверен" алгоритм в своих предсказаниях и насколько новая последовательность похожа на оригинал.

Под капотом: немного о технике

ProteinMPNN построен на PyTorch и использует архитектуру на основе графовых нейронных сетей (GNN). Это позволяет модели эффективно обрабатывать сложную пространственную информацию белковых структур. Если вы знакомы с PyTorch, то установка и запуск не составят труда.

Вот как создать окружение Conda:

conda create --name mlfold
source activate mlfold
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

После этого достаточно клонировать репозиторий, и вы готовы к экспериментам!

Где это применимо? Реальные сценарии

  • Разработка лекарств: Дизайн новых белков, которые могут связываться с определенными мишенями, например, для создания новых антител или ингибиторов ферментов.
  • Инженерия ферментов: Изменение аминокислотных последовательностей существующих ферментов для улучшения их каталитической активности, стабильности или специфичности. Представьте, что можно "научить" фермент работать в экстремальных условиях или расщеплять новые субстраты!
  • Создание вакцин: Проектирование стабильных и иммуногенных белковых фрагментов для разработки новых вакцин.
  • Материаловедение: Дизайн белков с заданными физическими свойствами для создания новых биоматериалов, например, для самособирающихся наноструктур.
  • Фундаментальная биология: Изучение принципов фолдинга белков и взаимосвязи между структурой и последовательностью, что помогает лучше понять, как работают белки в живых организмах.

Мой вердикт: стоит ли погружаться?

Однозначно, да! ProteinMPNN – это не просто академическая разработка, это полноценный, хорошо документированный инструмент, который уже активно используется в биоинформатике и биотехнологии. Он дает в руки исследователей мощный рычаг для ускорения процессов дизайна белков, сокращая время и ресурсы, необходимые для экспериментов.

Если вы работаете в области, где дизайн белков играет ключевую роль, или просто интересуетесь передовыми методами машинного обучения в биологии, то ProteinMPNN – это must-try. Начните с изучения примеров в папке examples/, попробуйте поработать с Colab-ноутбуками, и, возможно, именно вы станете следующим, кто создаст белок с прорывными свойствами. Этот проект демонстрирует, как ИИ меняет правила игры в одной из самых сложных и увлекательных областей науки. Не упустите свой шанс прикоснуться к будущему!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.