Skip to content

Latest commit

 

History

History
97 lines (68 loc) · 11.5 KB

pipeline.md

File metadata and controls

97 lines (68 loc) · 11.5 KB

Основные этапы пайплайна

1. Извлечение комплексов

  • Получаем белковые структуры из базы PDB и сохраняем их в локальный каталог для дальнейшей обработки.

2. Декомпрессия файлов PDB

  • Распаковываем сжатые .ent.gz файлы в формат .pdb, чтобы подготовить их к обработке.

3. Удаление ДНК и РНК

  • Удаляем PDB файлы, содержащие последовательности ДНК или РНК, оставляя только белковые структуры.
    • Анализ файла: Проверяем строки SEQRES и ATOM на наличие нуклеотидов (A, T, G, C, U и их производных).
    • Удаление файлов: Если обнаружены нуклеотиды, файл удаляется.

4. Удаление файлов с несколькими моделями

  • Исключаем файлы с несколькими моделями для упрощения анализа.
    • Подсчёт моделей: Определяем количество моделей по строкам "MODEL" в каждом файле.
    • Удаление файлов: Удаляем файлы с более чем одной моделью.

5. Удаление воды

  • Удаляем молекулы воды из структур для очистки от лишних элементов, которые могут искажать анализ.

6. Удаление "мусорных" лигандов

  • Исключаем ненужные молекулы (например, ионы и буферные компоненты), используя список лигандов из файла trash_ligands.json. Составление списка происходило вручную и с использованием анализа в ноутбуке ligand_eda.ipynb после предварительной конвертации в форматы SMILES и SDF.

7. Конвертация в форматы SMILES и SDF

  • Преобразуем лигандные части PDB-файлов в форматы SMILES и SDF для удобства последующей обработки.

8. Извлечение комплексов с лигандами

  • Создаем JSON файл с информацией о комплексах белков с лигандами, а также информацию о сайтах связывания, полученную из PDB-файлов.

9. Фильтрация по сайтам связывания

  • Фильтруем лигандные комплексы, оставляя только те, которые находятся в известных сайтах связывания. Если информация о сайте отсутствует, комплекс не изменяется.

10. Удаление неиспользуемых файлов

  • Удаляем PDB файлы, не содержащие интересующие нас лиганды, или файлы, которые не прошли предыдущие этапы фильтрации.

11. Разделение на биомолекулы

  • Разделяем структуры на уникальные биомолекулы на основе информации из REMARK 350 и сохраняем только уникальные структуры.
    • Парсинг цепей биомолекул: Извлекаем информацию о цепях для каждой биомолекулы.
    • Сохранение уникальных структур: Удаляем дубликаты и структуры, в которых одна последовательность включает другую.

12. Разделение белок-лиганд комплексов

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

Процесс разделения:

  1. Загрузка PDB-файлов:

    • Читаем структуры из подготовленного каталога PDB, содержащие очищенные белково-лигандные комплексы.
  2. Определение белковых и лигандных атомов:

    • Определяем атомы белка и лиганда для каждой структуры, чтобы корректно разделить их и сконцентрироваться на изучении только ключевых взаимодействий.
  3. Поиск взаимодействующих цепей и лигандов:

    • Для каждого лиганда проверяем, находится ли он в пределах заданного расстояния (4.5 Å) от белковых атомов. Если лигандные атомы находятся достаточно близко к атомам белка, эти цепи включаются в текущий комплекс, в то время как остальные цепи исключаются. Таким образом, в финальный комплекс включаются только белковые цепи, которые действительно взаимодействуют с лигандом.
  4. Группировка лигандов:

    • Лиганды, находящиеся на расстоянии менее 4 Å друг от друга, объединяются в одну группу, формируя единый функциональный сайт. Это позволяет корректно сохранить функциональные группы лигандов, которые взаимодействуют с белком как единое целое.
  5. Фильтрация схожих структур:

    • Для каждой группы белок-лиганд вычисляется значение RMSD и идентичность последовательностей белка. Если идентичность более 98% и RMSD менее 2 Å, структура считается схожей с одной из ранее сохранённых и исключается, оставляя только уникальные комплексы.
  6. Сохранение разделённых комплексов:

    • Каждый уникальный белок-лиганд комплекс сохраняется как отдельный PDB-файл, с информацией о взаимодействующих цепях и лигандах.

Результат: Получается набор уникальных белок-лиганд комплексов, содержащих только взаимодействующие цепи и лигандные группы. Исключение неактивных цепей и схожих структур позволяет сосредоточиться на уникальных и значимых взаимодействиях для дальнейшего анализа.

13. Очистка путей

  • На этом этапе упрощаются названия файлов, чтобы стандартизировать их формат. Если название файла следует шаблону вида pdbXXXX.pdb, оно переименовывается в более компактный формат XXXX.pdb, где XXXX — идентификатор структуры.

14. Поиск дубликатов с использованием Foldseek

  • Создание базы данных Foldseek: Создается база данных для PDB-файлов, оптимизированная для поиска дубликатов.
  • Поиск идентичных структур: Foldseek выполняет сравнение структур по порогам TM-score (0.5) и идентичности последовательностей (0.9).
  • Формирование групп идентичных структур: Идентичные структуры объединяются в группы.
  • Сохранение результатов: Группы дубликатов сохраняются в JSON для дальнейшей фильтрации.

15. Удаление похожих структур

  • Определение наилучшей структуры в каждой группе: Выбирается структура с наилучшим разрешением.
  • Сортировка и отбор структур: Группы сортируются, исключаются вложенные группы.
  • Выбор структуры по разрешению: В каждой группе сохраняется структура с лучшим разрешением; если оно не указано, берется первая структура.
  • Удаление схожих структур: Удаляются все файлы, не вошедшие в финальный набор уникальных структур.

16. Удаление поверхностных лигандов

  • Удаление поверхностных лигандов: оценка погружённости Чтобы оценить, насколько лиганд погружен в белок и участвует в значимых взаимодействиях, для каждого атома лиганда вычисляется минимальное расстояние до ближайшего атома белка. Если достаточная доля атомов лиганда (например, 30%) находится на расстоянии менее 5 Å, лиганд считается погруженным. Иначе лиганд определяется как поверхностный и удаляется.

16.5 Удаляем клэши

  • Если струтуры накладываются друг на друга, удаляем. Клэш - это когда между структурами меньше 0.5 ангстрем

17. Добавление атомов водорода к лигандам

  • Добавляем атомы водорода к лигандам через obabel

18. Сохранение данных об удаленных файлах

  • Создаем JSON файл с данными об удаленных на каждом этапе файлах для дальнейшего анализа.

19. Отправка уведомления по email

  • Отправляем уведомление об успешном завершении обработки и всех этапов пайплайна.