Skip to content

Latest commit

 

History

History
167 lines (120 loc) · 8.62 KB

README.md

File metadata and controls

167 lines (120 loc) · 8.62 KB

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