Skip to main content

Ligand-protein complex extraction

Project description

LPCE: Ligand Processing and Cleaning Engine

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

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

├── README.md             <- Основной README-файл для разработчиков.
│
├── data                  <- Дополнительные данные.
│   ├── grouped_complexes.json          <- Группированные по цепям комплексы лигандов.
│   ├── site_info.json                  <- Информация о сайтах связывания лигандов.
│   ├── removed_ligands_summary.json    <- Сводка по удаленным лигандам.
│   ├── removed_files.json              <- Сводка по удаленным комплексам.
│   ├── trash_ligands.json              <- Список мусорных лигандов для удаления.
│   └── trash_ligands_mini.json         <- Сокращенный список мусорных лигандов для тестов.
│
├── lpce                  <- Исходный код проекта.
│   ├── cleanup           <- Скрипты для очистки PDB-файлов от ненужных компонентов.
│   │   ├── __init__.py
│   │   ├── filter_ligands.py           <- Скрипт для фильтрации лигандов.
│   │   ├── remove_dna_rna.py           <- Скрипт для удаления ДНК и РНК из PDB-файлов.
│   │   ├── remove_empty_structures.py  <- Скрипт для удаления пустых структур.
│   │   ├── remove_junk_ligands.py      <- Скрипт для удаления мусорных лигандов из PDB-файлов.
│   │   ├── remove_multiple_models.py   <- Скрипт для удаления моделей с несколькими конфигурациями.
│   │   ├── remove_water.c              <- Программа на C для удаления молекул воды.
│   │   └── remove_water.py             <- Python-обертка для удаления молекул воды.
│   │
│   ├── config            <- Настройки и конфигурации проекта.
│   │   ├── config.yaml                 <- Основной файл конфигурации.
│   │   └── config_trash_mini.yaml      <- Альтернативный конфиг для мини-набора данных.
│   │
│   ├── extraction        <- Скрипты для извлечения PDB-файлов и данных лигандов.
│   │   ├── __init__.py
│   │   ├── convert_pdb_to_smiles_sdf.py <- Конвертирует PDB в SMILES и SDF форматы.
│   │   ├── decompress_files.py          <- Распаковывает PDB-файлы.
│   │   ├── extract_complexes.py         <- Извлекает комплексы из PDB-файлов.
│   │   └── parse_dict.py                <- Создает словари и структурирует данные.
│   │
│   ├── pdb_manipulations <- Скрипты для манипуляции с PDB-файлами.
│   │   ├── __init__.py
│   │   ├── add_h_to_ligands.py         <- Добавляет атомы водорода к лигандам.
│   │   ├── foldseek.py                 <- Ищет дубликаты структур с помощью Foldseek.
│   │   ├── protein_ligand_separator.py <- Разделяет белки и лиганды в PDB-файлах.
│   │   ├── remove_not_buried_ligands.py <- Удаляет лиганды, не погруженные в белок.
│   │   ├── remove_similar_structures.py <- Удаляет похожие структуры.
│   │   └── split_bioml.py              <- Разделяет биологические сборки в PDB-файлах.
│   │
│   ├── tests             <- Тесты для проверки функциональности проекта.
│   │   ├── conftest.py                  <- Конфигурационный файл для pytest.
│   │   └── test_pipeline.py             <- Скрипт для запуска тестового конвейера обработки.
│   │
│   ├── utils             <- Утилиты и вспомогательные функции.
│   │   ├── __init__.py
│   │   ├── calc_descriptors.py         <- Вычисляет химические дескрипторы.
│   │   ├── clean_names.py              <- Очищает имена файлов и директорий.
│   │   ├── sdf2df.py                   <- Конвертирует SDF-файлы в DataFrame.
│   │   ├── send_email.py               <- Отправляет уведомления по электронной почте.
│   │   ├── smi2df.py                   <- Конвертирует SMILES в DataFrame.
│   │   └── utils.py                    <- Общие вспомогательные функции.
│   │
│   └── run_full_pipeline.py             <- Скрипт для запуска полного конвейера обработки.
│
├── notebook              <- Jupyter ноутбуки для анализа и визуализации данных.
│
├── Makefile              <- Скрипты для автоматизации сборки и запуска.
├── environment.yml       <- Описание зависимостей для создания окружения.
├── pyproject.toml        <- Конфигурационный файл проекта.
└── README.md             <- Этот файл.

Описание основных модулей

lpce/pdb_manipulations

  • add_h_to_ligands.py: Добавляет атомы водорода к лигандам с использованием Open Babel.
  • foldseek.py: Использует инструмент Foldseek для поиска дубликатов и схожих структур среди PDB-файлов.
  • protein_ligand_separator.py: Разделяет белки и лиганды в PDB-файлах, выделяя комплексы для дальнейшего анализа.
  • remove_not_buried_ligands.py: Удаляет лиганды, которые не взаимодействуют с белком на заданном уровне (не "погружены" в белок).
  • remove_similar_structures.py: Удаляет похожие структуры на основе последовательности и разрешения, оставляя наиболее качественные.
  • split_bioml.py: Разделяет биологические сборки в PDB-файлах на отдельные единицы для индивидуального анализа.

lpce/tests

  • conftest.py: Конфигурационный файл для pytest, содержит общие фикстуры и настройки тестирования.
  • test_pipeline.py: Скрипт для запуска полного конвейера обработки на тестовых данных, проверяет корректность работы всех модулей.

lpce/utils

  • calc_descriptors.py: Вычисляет химические дескрипторы для лигандов, необходимые для дальнейшего анализа.
  • clean_names.py: Очищает и стандартизирует имена файлов и директорий.
  • sdf2df.py: Преобразует файлы SDF в формат pandas DataFrame для удобства обработки.
  • send_email.py: Отправляет уведомления по электронной почте о статусе выполнения конвейера или возникновении ошибок.
  • smi2df.py: Конвертирует SMILES-формат лигандов в pandas DataFrame.
  • utils.py: Содержит вспомогательные функции, используемые в различных модулях проекта.

lpce/cleanup

  • filter_ligands.py: Фильтрует лиганды по заданным критериям (например, по размеру или составу).
  • remove_dna_rna.py: Удаляет ДНК и РНК из PDB-файлов, оставляя только белки и лиганды.
  • remove_empty_structures.py: Удаляет PDB-файлы, не содержащие необходимых компонентов после очистки.
  • remove_junk_ligands.py: Удаляет нежелательные или "мусорные" лиганды, указанные в списке.
  • remove_multiple_models.py: Удаляет дополнительные модели в PDB-файлах, оставляя только первую модель.
  • remove_water.c: Программа на языке C для эффективного удаления молекул воды из PDB-файлов.
  • remove_water.py: Python-обертка для взаимодействия с remove_water.c.

lpce/extraction

  • convert_pdb_to_smiles_sdf.py: Конвертирует PDB-файлы в форматы SMILES и SDF для химического анализа.
  • decompress_files.py: Распаковывает сжатые PDB-файлы для последующей обработки.
  • extract_complexes.py: Извлекает комплексы белок-лиганд из PDB-файлов.
  • parse_dict.py: Создает словари и структуры данных для удобства доступа к информации о лигандах и комплексах.

notebook

  • ligand_eda.ipynb: Проводит разведочный анализ данных (EDA) по лигандам, визуализирует различные свойства.
  • misato.ipynb: Содержит дополнительные исследования и анализы (детали могут быть специфичными для проекта).
  • pdb_fix.ipynb: Демонстрирует методы исправления и проверки PDB-файлов на ошибки и несоответствия.
  • protein_ligand_separator.ipynb: Визуализирует процесс разделения белков и лигандов из комплексных структур.
  • remove_similar.ipynb: Анализирует и визуализирует процесс удаления похожих структур из набора данных.

Установка

Для работы с проектом 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/.

Запуск

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

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

make tmux

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lpce-0.1.0.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lpce-0.1.0-py3-none-any.whl (45.3 kB view details)

Uploaded Python 3

File details

Details for the file lpce-0.1.0.tar.gz.

File metadata

  • Download URL: lpce-0.1.0.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.8

File hashes

Hashes for lpce-0.1.0.tar.gz
Algorithm Hash digest
SHA256 457107a1f5dc43643c2cd1a1372d8df6b556e19e4e62859959713ce48b8a956b
MD5 10ce124e1fa9b42fcb06424adb84b675
BLAKE2b-256 727bfa9c93ddd2f30350f119ada2dfcd5342f6ee45cffc1431b250745a463bb9

See more details on using hashes here.

File details

Details for the file lpce-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lpce-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 45.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.8

File hashes

Hashes for lpce-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8c64f01efb52cf65779285f5f8d5542f319c9b1c79f9edbcdf7c55498fcf601
MD5 c1d392c006c0c9a4052ad1f5b4db56e9
BLAKE2b-256 5df58f7c695d1d6c8960a0e51331f30adb715aa9e454e9c460bab62a9b1835fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page