Исследовательский проект по atom-to-atom mapping химических реакций.
В рамках проекта воспроизводился подход AMNet, проводилось сравнение с LocalMapper и строилось ансамблевое решение на основе предсказаний двух моделей.
Atom-to-atom mapping — это задача сопоставления атомов реагентов и продуктов в химической реакции. Такое сопоставление используется для анализа реакционных механизмов, построения реакционных шаблонов, retrosynthesis prediction и других задач машинного обучения в химии.
В проекте рассматриваются два подхода к atom-to-atom mapping:
- AMNet — deep graph matching подход, в котором молекулы представляются как графы, а модель строит матрицу соответствий между атомами реагентов и продуктов.
- LocalMapper — ML-подход к atom mapping, основанный на химически размеченных реакциях.
Моя работа включала воспроизведение AMNet, подготовку данных и экспериментов, запуск и анализ предсказаний, сравнение результатов с LocalMapper и построение ансамблевого решения на основе двух подходов.
- Язык: Python
- ML / DL: PyTorch, PyTorch Geometric
- Хемоинформатика: RDKit, SMILES, reaction SMILES
- Графовые модели: GNN, GIN, graph matching
- Данные и анализ: pandas, NumPy
- Эксперименты: Jupyter Notebook, Python scripts
| Папка / файл | Содержание |
|---|---|
Atom_matching_network/ |
Воспроизведение и адаптация подхода AMNet |
Atom_matching_network/AMNet/ |
Компоненты архитектуры модели |
Atom_matching_network/dataset/ |
Подготовка данных и молекулярных графов |
Atom_matching_network/train/ |
Скрипты обучения модели |
Atom_matching_network/Test/ |
Тестирование и проверка модели |
Atom_matching_network/utils/ |
Вспомогательные функции |
experiment1/ |
Результаты одного из экспериментов |
experiment_folds_0–4/ |
Результаты экспериментов по нескольким фолдам |
full work.ipynb |
Ноутбук с основным ходом работы |
environment.yml |
Описание окружения |
- изучен подход AMNet к atom mapping через deep graph matching;
- воспроизведена часть пайплайна AMNet;
- подготовлены данные реакций для работы с моделью;
- реакции представлены в виде молекулярных графов;
- рассчитаны признаки атомов и связей с использованием RDKit;
- проведены эксперименты с обучением и проверкой модели;
- получены и проанализированы предсказания atom mapping;
- результаты AMNet сравнивались с предсказаниями LocalMapper;
- построен ансамблевый подход на основе двух моделей;
- результаты экспериментов сохранялись и анализировались по фолдам.
Воспроизводимая часть проекта основана на подходе AMNet, где atom mapping рассматривается как задача сопоставления двух графов: графа реагентов и графа продуктов.
В рамках работы:
- молекулы переводились в графовое представление;
- атомы рассматривались как вершины графа;
- связи между атомами рассматривались как рёбра;
- для атомов и связей рассчитывались признаки;
- модель строила матрицу соответствий между атомами реагентов и продуктов;
- качество сопоставления оценивалось по метрикам accuracy и hits@k.
LocalMapper использовался как второй подход для сравнения и ансамблирования.
В рамках проекта результаты LocalMapper сопоставлялись с результатами AMNet, после чего анализировались совпадения, различия и возможность объединения предсказаний двух моделей.
Ансамблевое решение строилось на основе предсказаний AMNet и LocalMapper.
Цель ансамблирования — проверить, можно ли улучшить качество atom mapping за счёт объединения двух разных подходов: graph matching модели и отдельной ML-модели для atom mapping.
В репозитории сохранены результаты нескольких запусков:
experiment1/;experiment_folds_0/;experiment_folds_1/;experiment_folds_2/;experiment_folds_3/;experiment_folds_4/.
Эти папки используются для хранения результатов обучения, метрик и промежуточных артефактов экспериментов.