templated: generated from UmbrellaLeaf5/template_python_usual
Этот модуль отвечает за загрузку и предварительную обработку данных из ChEMBL и PubChem, необходимых для дальнейшего моделирования и анализа при разработке лекарств.
Цель модуля:
- Автоматическое скачивание данных о соединениях, активностях и мишенях из базы данных ChEMBL, а также данных о токсичности соединений из PubChem ChemIDplus.
- Преобразование данных в формат, пригодный для обучения моделей машинного обучения.
- Фильтрация и очистка данных для повышения качества моделей.
Документация, созданная с помощью Doxygen.
-
Клонирование репозитория:
Перед тем как начать, вам необходимо клонировать репозиторий с исходным кодом проекта.
git clone https://gitlab.com/UmbrellaLeaf5/drugdesign_parsing.git
Перейдите в директорию, куда был клонирован репозиторий:
cd DrugDesign_data_analysis -
Создание виртуального окружения:
Откройте терминал или командную строку в корневой директории вашего проекта (там, где находится файл
requirements.txt) и выполните следующую команду для создания виртуального окружения с именем.venv:python3 -m venv .venv
или
python -m venv .venv
- Если у вас установлена только версия
Python 3, можете использоватьpythonвместоpython3. - Если виртуальное окружение уже существует (вы его создавали ранее), пропустите этот шаг.
- Если у вас установлена только версия
-
Активация виртуального окружения:
Активируйте виртуальное окружение, чтобы
Pythonиспользовал библиотеки, установленные внутри него:-
Linux/macOS:
source .venv/bin/activate -
Windows (Command Prompt):
.venv\Scripts\activate
-
Windows (PowerShell):
.venv\Scripts\Activate.ps1
После активации вы увидите
(.venv)в начале строки терминала, указывающее на то, что виртуальное окружение активно. -
-
Установка зависимостей из
requirements.txt:Установите все библиотеки, перечисленные в файле
requirements.txt, выполнив следующую команду:./.venv/Scripts/pip install -r requirements.txt
или просто:
pip install -r requirements.txt
Или просто используйте uv:
uv venv .venv-
Linux/macOS:
source .venv/bin/activate -
Windows (Git Bash):
source .venv/Scripts/activate -
Windows (Command Prompt):
.venv\Scripts\activate
-
Windows (PowerShell):
.venv\Scripts\Activate.ps1
uv pip install -r requirements.txtP.S. одной строкой:
uv venv .venv && source .venv/Scripts/activate && uv pip install -r requirements.txtФайл 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 для различных мишеней и клеточных линий, которая выполняется при включении определенных флагов в других задачах.
logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей (для идентификации в логах).logger_color: string - цветовой код для вывода журнала.results_folder_name: string - имя папки для хранения загруженных данных об активности.download_compounds_sdf: boolean - логический флаг, указывающий, следует ли догружать соединения в формате SDF.filtering: dictionary - словарь, содержащий параметры фильтрации данных об активностях.targets: dictionary - фильтрация для активностей мишеней.standard_relation: list[string] - список соотношений (например,=).standard_units: list[string] - список единиц измерения.target_organism: list[string] - список типов организмов.standard_type: list[string] - список типов измерений.assay_type: list[string] - список типов биологических тестов.
cell_lines: dictionary - фильтрация для активностей клеточных линий.standard_relation: list[string] - список соотношений (например,=).standard_units: list[string] - список единиц измерения.assay_organism: list[string] - список типов организмов.standard_type: list[string] - список типов измерений.assay_type: list[string] - список типов биологических тестов.
Задача по загрузке клеточных линий с 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: 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: 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 (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] - список способов введения для фильтрации.testtype: list[string] - список типов тестирования для фильтрации.
m3: dictionary - фильтрация для дозы, указанной вmg/m3.organism: list[string] - список организмов для фильтрации.route: list[string] - список способов введения для фильтрации.testtype: list[string] - список типов тестирования для фильтрации.
need_filtering_by_characteristics: boolean - логический флаг, указывающий, следует сохранять отфильтрованные по количеству вхождений характеристик выборки токсичности.occurrence_characteristics_number: integer - минимальное количество вхождений характеристик в соотв. выборки.characteristics_subfolder_name: string - имя подпапки для хранения отфильтрованных по количеству вхождений характеристик выборок токсичности.
sleep_time: float - число с плавающей точкой, представляющее время ожидания между запросами (в секундах, для предотвращения блокировки со стороны PubChem).start_page: integer - число, представляющее начальную страницу данных о токсичности.end_page: integer - число, представляющее последнюю страницу данных о токсичности.limit: integer - число, представляющее лимит для кол-ва данных за 1 запрос.
logger_label: string - метка, используемая для сообщений журнала, связанных с этой задачей.logger_color: string - цветовой код для вывода журнала.
verbose_print: boolean - логический флаг, указывающий, включен ли подробный вывод в консоль.message_ljust: integer - ширина левого выравнивания для сообщений лога.exceptions_file: string - имя файла для записи исключений.output_to_exceptions_file: boolean - логический флаг, указывающий, следует ли выводить весь вывод только в файл для записи исключений.
attempts_amount: integer - количество попыток по умолчанию.sleep_time: float - время ожидания между попытками (в секундах) по умолчанию.
- PubChemPy documentation. — Текст : электронный // Read the Docs : сайт
- Requests: HTTP for Humans™. — Текст : электронный // Read the Docs : сайт
- Loguru. Python loggig made (stupidly) simple. — Текст : электронный // Read the Docs : сайт
- 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 : сайт
- 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 : сайт