Skip to content

Module of the DrugDesign project responsible for loading and pre-processing data from ChEMBL and PubChem, necessary for further modeling and analysis in drug development

License

Notifications You must be signed in to change notification settings

UmbrellaLeaf5/DrugDesign_data_analysis

Folders and files

NameName
Last commit message
Last commit date
Feb 20, 2025
Dec 14, 2024
Mar 17, 2025
Mar 16, 2025
Mar 17, 2025
Mar 16, 2025
Mar 16, 2025
Mar 17, 2025
Mar 17, 2025
Mar 16, 2025
Mar 1, 2025
Feb 17, 2025
Mar 1, 2025
Mar 1, 2025
Mar 1, 2025
Mar 16, 2025
Mar 2, 2025
Mar 1, 2025

Repository files navigation

DrugDesign Data Analysis

License: Unlicense Contributing

Contents

Description

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

Цель модуля:

  • Автоматическое скачивание данных о соединениях, активностях и мишенях из базы данных ChEMBL, а также данных о токсичности соединений из PubChem ChemIDplus.
  • Преобразование данных в формат, пригодный для обучения моделей машинного обучения.
  • Фильтрация и очистка данных для повышения качества моделей.

Documentation

Документация, созданная с помощью Doxygen.

Installation

  1. Клонирование репозитория:

    Перед тем как начать, вам необходимо клонировать репозиторий с исходным кодом проекта.

    git clone https://gitlab.com/UmbrellaLeaf5/drugdesign_parsing.git

    Перейдите в директорию, куда был клонирован репозиторий:

    cd DrugDesign_data_analysis
  2. Создание виртуального окружения:

    Откройте терминал или командную строку в корневой директории вашего проекта (там, где находится файл requirements.txt) и выполните следующую команду для создания виртуального окружения с именем .venv:

    python3 -m venv .venv

    или

    python -m venv .venv
    • Если у вас установлена только версия Python 3, можете использовать python вместо python3.
    • Если виртуальное окружение уже существует (вы его создавали ранее), пропустите этот шаг.
  3. Активация виртуального окружения:

    Активируйте виртуальное окружение, чтобы Python использовал библиотеки, установленные внутри него:

    • Linux/macOS:

      source .venv/bin/activate
    • Windows (Command Prompt):

      .venv\Scripts\activate
    • Windows (PowerShell):

      .venv\Scripts\Activate.ps1

    После активации вы увидите (.venv) в начале строки терминала, указывающее на то, что виртуальное окружение активно.

  4. Установка зависимостей из requirements.txt:

    Установите все библиотеки, перечисленные в файле requirements.txt, выполнив следующую команду:

    ./.venv/Scripts/pip install -r requirements.txt

    или просто:

    pip install -r requirements.txt

Configurations

Файл config.json содержит параметры конфигурации для загрузки и обработки данных, в основном сфокусированного на базах данных ChEMBL и PubChem. Он определяет настройки для загрузки соединений, активностей, клеточных линий и информации о мишенях из ChEMBL, а также данных о токсичности из PubChem.

Общие настройки

  • testing_flag: boolean - логический флаг, который, когда установлен в true, включает режим тестирования (ограничивает количество загружаемых данных для ускорения тестирования). При рабочей эксплуатации должен быть установлен в false.
  • skip_downloaded: boolean - логический флаг, указывающий, следует ли пропускать загрузку, если файлы уже существуют (полезно для повторного запуска скрипта без перезагрузки данных).
  • csv_separator: string - строка, определяющая разделитель полей в CSV-файлах (например, "," или ";").
  • keyboard_end_message: string - сообщение, которое выводится при завершении загрузки по нажатию клавиш (Ctrl+C/Ctrl+Z).

ChEMBL

ChEMBL_download_activities

Подзадача загрузки активностей с ChEMBL для различных мишеней и клеточных линий, которая выполняется при включении определенных флагов в других задачах.

  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей (для идентификации в логах).
  • logger_color: string - цветовой код для вывода журнала.
  • results_folder_name: string - имя папки для хранения загруженных данных об активности.
  • download_compounds_sdf: boolean - логический флаг, указывающий, следует ли догружать соединения в формате SDF.

ChEMBL_download_cell_lines

Задача по загрузке клеточных линий с ChEMBL.

  • download: boolean - логический флаг, указывающий, следует выполнять эту задачу в текущем запуске программы.
  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.
  • logger_color: string - цветовой код для вывода журнала.
  • results_folder_name: string - имя папки для хранения загруженных данных о клеточных линиях.
  • results_file_name: string - имя файла для сохранения данных о клеточных линиях.
  • download_activities: boolean - логический флаг, указывающий, следует ли загружать данные об активности для клеточных линий.
  • raw_csv_folder_name: string - имя папки для хранения необработанных данных в формате .csv.
  • raw_csv_g_drive_id: string - идентификатор Google.Drive архива, в котором лежат неочищенные файлы с необходимыми активностями (необходим, так как активности к клеточным линиям через интерфейс chembl_webresource_client или API ChEMBL - не вышло).
  • download_all: boolean - логический флаг, указывающий, следует ли загружать данные для всех клеточных линий или только для клеточных линий, указанных в id_list.
  • download_compounds_sdf: boolean - логический флаг, указывающий, следует ли загружать соединения в формате .sdf.
  • id_list: list[string] - список ChEMBL_ID для конкретных клеточных линий, для которых необходимо загрузить данные.

ChEMBL_download_compounds

Задача по загрузке соединений с ChEMBL.

  • download: boolean - логический флаг, указывающий, следует выполнять эту задачу в текущем запуске программы.
  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.
  • logger_color: string - цветовой код для вывода журнала.
  • results_folder_name: string - имя папки для хранения загруженных данных о соединениях.
  • molfiles_folder_name: string - имя папки для хранения mol- и sdf-файлов соединений.
  • combined_file_name: string - имя файла для сохранения объединенных данных о соединениях.
  • need_combining: boolean - логический флаг, указывающий, нужно ли объединять соединения в один файл.
  • delete_after_combining: boolean - логический флаг, указывающий, следует ли удалять оставшиеся данные после объединения.
  • mw_ranges: list[lists[float]] - список диапазонов молекулярной массы, используемых для фильтрации загрузки соединений.

ChEMBL_download_targets

Задача по загрузке мишеней с ChEMBL.

  • download: boolean - логический флаг, указывающий, следует выполнять эту задачу в текущем запуске программы.
  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.
  • logger_color: string - цветовой код для вывода журнала.
  • results_folder_name: string - имя папки для хранения загруженных данных о мишенях.
  • results_file_name: string - имя файла для сохранения данных о мишенях.
  • download_activities: boolean - логический флаг, указывающий, следует ли загружать данные об активностях для мишеней.
  • download_all: boolean - логический флаг, указывающий, следует ли загружать данные для всех мишеней или только для мишеней, указанных в id_list.
  • download_compounds_sdf: boolean - логический флаг, указывающий, следует ли загружать соединения в формате SDF.
  • id_list: list[string] - список ChEMBL_ID для конкретных мишеней, для которых необходимо загрузить данные.

PubChem

PubChem_download_toxicity

Задача по загрузке токсичности соединений линий с PubChem (ChemIDPlus).

  • download: boolean - логический флаг, указывающий, следует выполнять эту задачу в текущем запуске программы.
  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.
  • logger_color: string - цветовой код для вывода журнала.
  • results_folder_name: string - имя папки для хранения загруженных данных о токсичности.
  • molfiles_folder_name: string - имя папки для хранения mol- и sdf-файлов соединений.
  • results_file_name: string - имя файла для сохранения данных о токсичности.
  • combined_file_name: string - имя файла для сохранения объединенных данных о токсичности.
  • need_combining: boolean - логический флаг, указывающий, нужно ли объединять данные.
  • delete_after_combining: boolean - логический флаг, указывающий, следует ли удалять оставшиеся данные после объединения.
  • download_compounds_sdf: boolean - логический флаг, указывающий, следует ли загружать соединения в формате SDF.
  • filtering: dictionary - словарь, содержащий параметры фильтрации данных о токсичности.
    • kg: dictionary - фильтрация для дозы, указанной в mg/kg.
      • organism: list[string] - список организмов для фильтрации.
      • route: list[string] - список способов введения для фильтрации.
    • m3: dictionary - фильтрация для дозы, указанной в mg/m3.
      • organism: list[string] - список организмов для фильтрации.
      • route: list[string] - список способов введения для фильтрации.
    • need_filtering_by_characteristics: boolean - логический флаг, указывающий, следует сохранять отфильтрованные по количеству вхождений характеристик выборки токсичности.
    • occurrence_characteristics_number: integer - минимальное количество вхождений характеристик в соотв. выборки.
    • characteristics_folder_name: string - имя папки для хранения отфильтрованных по количеству вхождений характеристик выборок токсичности.
  • sleep_time: float - число с плавающей точкой, представляющее время ожидания между запросами (в секундах, для предотвращения блокировки со стороны PubChem).
  • start_page: integer - число, представляющее начальную страницу данных о токсичности.
  • end_page: integer - число, представляющее последнюю страницу данных о токсичности.
  • limit: integer - число, представляющее лимит для кол-ва данных за 1 запрос.

Utils

CombineCSVInFolder

  • logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.
  • logger_color: string - цветовой код для вывода журнала.

VerboseLogger

  • verbose_print: boolean - логический флаг, указывающий, включен ли подробный вывод в консоль.
  • message_ljust: integer - ширина левого выравнивания для сообщений лога.
  • exceptions_file: string - имя файла для записи исключений.
  • output_to_exceptions_file: boolean - логический флаг, указывающий, следует ли выводить весь вывод только в файл для записи исключений.

ReTry

  • attempts_amount: integer - количество попыток по умолчанию.
  • sleep_time: float - время ожидания между попытками (в секундах) по умолчанию.

Sources

Official Python libraries documentation:

  • PubChemPy documentation. — Текст : электронный // Read the Docs : сайт
  • Requests: HTTP for Humans™. — Текст : электронный // Read the Docs : сайт
  • Loguru. Python loggig made (stupidly) simple. — Текст : электронный // Read the Docs : сайт

ChEMBL sources:

  • A python client for accessing ChEMBL web services / Michal. — Текст : электронный // The ChEMBL-og : сайт
  • Explore Chemistry. Quickly find chemical information from authoritative sources. — Текст : электронный // PubChem: An official website of the United States government : сайт
  • ChEMBL is a manually curated database of bioactive molecules with drug-like properties. It brings together chemical, bioactivity and genomic data to aid the translation of genomic information into effective new drugs. — Текст : электронный // ChEMBL : сайт

PubChem sources:

  • Welcome to the IUPAC FAIR Chemistry Cookbook / International Union of Pure and Applied Chemistry. — Текст : электронный // GitHub Pages : сайт
  • PubChem_SDQ_Bibliometrics / Винсент Ф. Скальфани, Серена С. Ральф, Али Аль Альшейх, Джейсон Э. Бара. — Текст : электронный // GitHub Pages : сайт
  • PubChem_SDQ_LitSearch / Винсент Ф. Скальфани, Серена С. Ральф, Али Аль Альшейх, Джейсон Э. Бара. — Текст : электронный // GitHub Pages : сайт

Notebooks submodules (removed):

  • IUPAC WFChemCookbook repository / International Union of Pure and Applied Chemistry. — Текст : электронный // GitHub : сайт
  • FionaEBI ChEMBL notebooks repository / FionaEBI. — Текст : электронный // GitHub : сайт

About

Module of the DrugDesign project responsible for loading and pre-processing data from ChEMBL and PubChem, necessary for further modeling and analysis in drug development

Topics

Resources

License

Stars

Watchers

Forks