Skip to content

The LPCE project is designed to purify and process PDB structures to extract and filter ligands and remove unwanted components such as water molecules and junk ligands.

Notifications You must be signed in to change notification settings

SergeiNikolenko/LPCE

Repository files navigation

LPCE: Ligand Processing and Cleaning Engine

Проект LPCE предназначен для очистки и обработки структур PDB с целью извлечения и фильтрации лигандов, а также удаления ненужных компонентов, таких как молекулы воды и мусорные лиганды.

Структура проекта

├── README.md             <- Основной README-файл для разработчиков.
│
├── data                  <- Данные проекта.
│   ├── complexes.json                  <- Извлеченные комплексы лигандов.
│   ├── grouped_complexes.json          <- Группированные по цепям комплексы лигандов.
│   ├── site_info.json                  <- Информация о сайтах связывания лигандов.
│   ├── removed_ligands_summary.json    <- Сводка по удаленным лигандам.
│   └── trash_ligands.json              <- Список мусорных лигандов для удаления.
│
├── lpce                  <- Исходный код проекта.
│   ├── cleanup           <- Скрипты для очистки PDB-файлов от ненужных компонентов.
│   │   ├── filter_ligands.py           <- Скрипт для фильтрации лигандов.
│   │   ├── remove_dna_rna.py           <- Скрипт для удаления ДНК и РНК из PDB-файлов.
│   │   ├── remove_junk_ligands.py      <- Скрипт для удаления мусорных лигандов из PDB-файлов.
│   │   ├── remove_water.c              <- Программа на C для удаления молекул воды.
│   │   └── remove_water.py             <- Python-обертка для удаления молекул воды.
│   │
│   ├── config            <- Настройки и конфигурации проекта.
│   │   └── settings.py                  <- Файл с настройками путей и переменных окружения.
│   │
│   ├── extraction        <- Скрипты для извлечения и обработки лигандов.
│   │   ├── convert_pdb_to_smiles_sdf.py <- Скрипт для конвертации PDB в SMILES и SDF форматы.
│   │   ├── decompress_files.py          <- Скрипт для распаковки PDB-файлов.
│   │   ├── extract_complexes.py         <- Скрипт для извлечения комплексов из PDB-файлов.
│   │   └── parse_dict.py                <- Скрипт для создания словарей и структурирования данных.
│   │
│   ├── notifications     <- Скрипты для уведомлений.
│   │   └── send_email.py                <- Скрипт для отправки уведомлений по электронной почте о завершении обработки.
│   │
│   ├── run_cleanup_pipeline.py          <- Скрипт для запуска очистки данных.
│   └── run_full_pipeline.py             <- Скрипт для полного запуска всех этапов обработки данных.
│
├── notebook              <- Jupyter ноутбуки для анализа и обработки данных.
│   └── trash_ligands.ipynb              <- Ноутбук для анализа и работы с мусорными лигандами.
│
└── scripts               <- Скрипты для дополнительных задач.
    ├── calc_descriptors.py
    ├── sdf2df.py
    └── smi2df.py

Основные файлы

  • lpce/cleanup/remove_junk_ligands.py: Фильтрация PDB-файлов от мусорных лигандов на основе списка trash_ligands.json.
  • lpce/cleanup/remove_water.c: Программа на C для удаления молекул воды из PDB-файлов.
  • lpce/cleanup/remove_dna_rna.py: Удаление ДНК и РНК из PDB-файлов.
  • lpce/cleanup/filter_ligands.py: Фильтрация лигандов по заданным критериям.
  • lpce/extraction/extract_complexes.py: Извлечение комплексов лигандов из PDB-файлов.
  • lpce/extraction/convert_pdb_to_smiles_sdf.py: Конвертация PDB-файлов в SMILES и SDF форматы.
  • lpce/extraction/parse_dict.py: Группировка и структурирование извлеченных комплексов.
  • lpce/run_full_pipeline.py: Скрипт для полного запуска всех этапов обработки данных, включая очистку, фильтрацию и извлечение лигандов.
  • lpce/notifications/send_email.py: Отправка уведомлений по завершении обработки.

Установка

Для работы с проектом LPCE вам необходимо активировать специальное виртуальное окружение. Убедитесь, что файл environment.yml находится в корне проекта, затем выполните следующие шаги:

  1. Установка окружения:

    В терминале выполните команду для создания окружения на основе существующего файла environment.yml:

    conda env create -f environment.yml
  2. Активация окружения:

    После успешного создания окружения активируйте его с помощью команды:

    conda activate lpce

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

Сборка remove_water.c

Если бинарный файл remove_water уже присутствует и совместим с вашей системой, сборка не требуется.

Сборка на новом ПК

Если бинарный файл отсутствует или несовместим:

  1. Перейдите в директорию с remove_water.c:

    cd lpce/cleanup
  2. Скомпилируйте:

    gcc -o remove_water remove_water.c

Это создаст исполняемый файл remove_water для использования в проекте.

Конфигурация

Основные параметры проекта, такие как пути к директориям и переменные окружения, настраиваются в lpce/config/settings.py.

Запуск

Полный запуск всех этапов обработки данных

Для запуска полной обработки данных выполните:

python lpce/run_full_pipeline.py

Этот скрипт выполнит последовательную обработку, очистку и извлечение лигандов, а также отправит уведомление о завершении работы.

Запуск отдельных этапов через Makefile

Вы также можете запускать отдельные этапы пайплайна или весь процесс с помощью Makefile. Убедитесь, что вы находитесь в корне проекта, затем используйте следующие команды:

  • Для запуска полного пайплайна:

    make all
  • Для запуска отдельных этапов:

    • Извлечение комплексов:

      make extract_complexes
    • Удаление ДНК/РНК:

      make remove_dna_rna
    • Удаление молекул воды:

      make remove_water
    • Удаление мусорных лигандов:

      make remove_junk_ligands
    • Конвертация PDB в SMILES и SDF:

      make convert_pdb
    • Фильтрация лигандов:

      make filter_ligands

About

The LPCE project is designed to purify and process PDB structures to extract and filter ligands and remove unwanted components such as water molecules and junk ligands.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published