Этот модуль отвечает за загрузку и предварительную обработку данных из 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
Файл 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.
Задача по загрузке клеточных линий с 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] - список способов введения для фильтрации.
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 запрос.
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 : сайт