Здравствуйте, я химик-вычислитель, погружающийся в мир химико-информатики.

Мой интерес к хемоинформатике начался с проекта на работе.

Я все больше и больше увлекался этим, и, чтобы ускорить свое обучение, я решил поработать над личным проектом. Я одновременно изучал науку о данных и машинное обучение и хотел применить полученные знания к своей новой страсти.

Ниже вы видите результат. Цель состояла в том, чтобы учиться на своих ошибках, поэтому любые отзывы или комментарии будут оценены!

Вопрос, на который я хотел ответить:

Как модель машинного обучения для прогнозирования молекулярных свойств (Chemprop) будет работать с небольшими объемами искаженных данных в качестве обучающего набора?

- Используемые инструменты: Chemprop и Chemplot для прогнозирования и визуализации набора данных Tox21.

- Используемые данные: Tox21

- Как я собирался ответить на вопрос выше:

  1. Сделайте несколько наборов искаженных, отобранных данных из набора Tox21.
  2. Отправьте эти искаженные, отобранные данные в Chemprop для обучения.
  3. Попросите Chemprop предсказать 100 случайно выбранных наборов молекул.
  4. Сравните результаты предсказания.
  5. Объясните результаты прогнозов с помощью визуализации химического пространства с помощью Chemplot.

- Что такое Химпроп?

Chemprop — это нейронная сеть с передачей сообщений (MPNN) для предсказания молекулярных свойств.

Я рекомендую читателю прочитать оригинальную статью о химпропе, написанную Yang et al. [1]

Chemprop отличается от других моделей машинного обучения, таких как SVM и случайный лес, где для молекулярного описания используются отпечатки пальцев или дескрипторы.
Вместо этого Chemprop использует гибридное представление, которое сочетает в себе дескрипторы и изученные представления. Кроме того, он отличается от MPNN тем, что молекулярные коды выполняются с учетом связей, а не атомов. Модель ML, используемая в Chemprop, называется D-MPNN (D обозначает направленные связи).

D-MPNN в основном черпал вдохновение из этих двух замечательных работ. Гилер и др. [2] и Дай и др. [3]

Я призываю всех, кто хочет получить более полную картину, прочитать две приведенные выше статьи.

- Предостережение к моему проекту:

В исходной статье Chemprop обучался на большом наборе данных;

Мы всесторонне оцениваем нашу модель и другие недавно опубликованные нейронные архитектуры с более чем 850 экспериментами на 19 общедоступных тестах от Wu et al.2 и Mayr et al.12 и на 16 собственных наборах данных от Amgen, Novartis и BASF (Badische Anilin und Soda). Фабрик). Наша цель — оценить, насколько производительность моделей в общедоступных наборах данных и их относительный рейтинг соответствуют их рейтингу в закрытых наборах данных.

Однако в своем проекте я использую небольшой (~ 1000 молекул) набор данных. Chemrop решает именно этот сценарий.

Из статьи Chemrop;

Мы также отмечаем, что на небольших наборах данных (до 1000 обучающих молекул) модели отпечатков пальцев могут превзойти изученные представления, на которые отрицательно влияет разреженность данных.

В этом проекте моя цель — познакомиться с химико-информатикой. Поэтому, хотя мой набор данных слишком мал, чтобы продемонстрировать весь потенциал Chemprop, я буду использовать его для этого проекта.

- Что такое Чемплот?

Chemplot — это библиотека Python для визуализации химического пространства. Это отличный инструмент, который прост в использовании.

У создателей Chemplot есть статья Соркуна и др. [4]

Как создается визуализация химического пространства на Chemplot:

  1. Упрощенная система молекулярного ввода (SMILES) преобразуется в отпечатки пальцев расширенного подключения (ECFP) с использованием RDKit, где подструктуры извлекаются, затем хэшируются и отображаются в битовый вектор фиксированного размера из 2048 бит.
  2. Количество битов определяет общее количество измерений, и они используются в качестве входных данных для фазы уменьшения размерности.
  3. В Chemprop доступно несколько методов уменьшения размеров, таких как PCA, t-SNE и UMAP.

- Что такое набор данных Tox21?

Tox21 — это набор данных, в котором для каждой молекулы есть бинарные метки, представляющие результат (активный/неактивный) 12 различных токсикологических экспериментов.

подробнее об этом здесь;
https://ncats.nih.gov/tox21/projects/nrassays

Теперь давайте продолжим и изучим данные Tox21, с которыми мы будем работать. Пожалуйста, следите за моим Jupyter Notebook!

Изучение данных Tox21

Здесь мы видим, что каждый SMILES имеет 12 данных о рецепторах. Позже мы выберем один из этих 12 для окончательного анализа данных.

Мы также видим много NaN, но мы оставим их как есть, так как они представляют реальные данные, которые часто отсутствуют и беспорядочны.

1 — попадание, 0 — не попадание, NaN — нет данных.

Вишневые данные

Здесь мы «отбираем» молекулы с определенными улыбками, чтобы создать меньший, искаженный набор данных для обучения.

Я буду тренировать Chemprop с a. меньшее количество данных b. отобранные данные.

Цель состоит в том, чтобы;

а. Проверьте ограничения возможностей Chemprop по прогнозированию (помните, что небольшие объемы данных, такие как мои, приведут к менее точному прогнозу)

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

Я выбрал четыре разных набора данных из набора данных Tox21;

1. Случайно выбранный набор данных
2. SMILES со стереоцентрами
3. SMILES с зарядами (+/- или оба)
4. SMILES с кольцами

Я буду обучать D-MPNN с каждым из этих четырех различных наборов входных файлов и анализировать полученные прогнозы от Chemprop. Я также сравню результат с «базовым» прогнозом, когда весь набор (не отобранный) данных Tox21 был передан модели ML.

Чтобы увидеть, как я выбрал четыре разных набора данных, загляните на мой github.

Чтобы выбрать SMILES с кольцами, я использовал изящный код, написанный Пэтом Уолтером, как показано в его блоге, практическая химическая информатика. Пожалуйста, ознакомьтесь с его постом и google colab, так как я не показал весь потенциал его кода.

Обучите chemprop с наборами искаженных данных и набором случайных данных

Во-первых, я тренирую chemprop с наборами данных, которые я сделал.

Затем я попросил chemprop спрогнозировать 100 случайно выбранных строк данных Tox21.

Обработка данных

А вот и необработанный результат предсказания chemprop. Здесь вывод не 0 или 1. Скорее, он показывает вероятность.

сырой вывод:

Чтобы преобразовать его обратно в двоичный вывод 0 или 1, я взял на себя смелость преобразовать все, что выше 0,3, в 1, а все, что 0,3 и ниже, — в ноль. (=IF(B2>0,3,1,0) в excel)
Я принял это решение, попробовав разные значения от 0,0 до 0,9 с шагом 0,1, и оказалось, что 0,3 является тем, где преобладают единицы. больше всего похоже на число 1 в необработанных данных.

Затем из 12 различных рецепторов я решил выбрать «SR-MMP», так как в его столбце было больше всего единиц.

Анализ данных

Chemplot предлагает несколько методов визуализации химического пространства, и здесь я покажу PCA, t-SNE и UMAP.

В первом столбце (цветные точки) показано химическое пространство отобранных данных,
а во втором столбце (синие точки) показано химическое пространство всего набора Tox21 (не отобранные, все 7831 точка данных).

* Chemplot зависит от версии 0.24.2 программы scikit Learn. Мне пришлось удалить мою более позднюю версию scikit Learn и загрузить эту конкретную версию scikitlearn, чтобы запустить chemplot.

Наблюдения:

1. Выборочные данные не охватывают химическое пространство, а также весь набор данных Tox21. Видны карманы данных.

2. Из отобранных данных случайные (оранжевые) и кольцевые (зеленые) охватывают более широкое химическое пространство, чем многозарядные (синие) и стерео (красные).

Затем я решил сравнить значения AUC для разных наборов данных. С этой целью я провел тест ANOVA с использованием R, где я изучил значение p между значениями AUC baseline_tox21 и числами AUC отобранных наборов данных.

** baseline_tox21 — это результат предсказания chemprop, когда я обучил его всему набору данных Tox21 (не отобранных)

Вот результат:

Из значений p (подчеркнуто розовым) видно, что существует статистическая значимость между baseline_tox21 и всеми выбранными данными, но наиболее значимыми являются «кольца», за которыми следуют «случайно», «стерео» и «многозарядный». Это совпадает с данными о химическом пространстве, которые мы видели выше, где «случайно» и «кольца» охватывают самое большое химическое пространство.

Интересно, что значение p «кольца» больше, чем значение p «случайно».

Предположительно, это связано с тем, что определение кольца включает в себя широкий спектр молекулярных видов, в отличие от зарядов и стерео, где были выбраны определенные символы (+/- и @).

Простой выбор SMILES с помощью +/- и @ приводит к сильно искаженным данным.

Это связано с тем, что часто молекулы с зарядами ограничиваются молекулами, содержащими нитрогруппу, сульфонильную группу, сульфонатную группу, фосфатную группу или соли. Кроме того, в случае набора данных Tox21 молекулы со стереоцентрами обычно имели несколько колец, что еще больше искажало набор «стерео» данных.

Заключение

Вопрос, на который я хотел ответить:

Как модель машинного обучения для прогнозирования молекулярных свойств (Chemprop) будет работать с небольшими объемами искаженных данных в качестве обучающего набора?

Ответ на вопрос:

Более асимметричные данные (меньший охват химического пространства) приводят к более низкой точности предсказания. В наборе данных Tox21 молекулы с зарядами и стереоцентрами покрывают меньшую часть химического пространства по сравнению с молекулами с кольцами. Это связано с тем, что «кольца» охватывают широкий спектр молекулярных видов, тогда как молекулы с зарядами и стереоцентрами, как правило, имеют определенные функциональные группы. Это подтверждает важность разнообразия молекул в обучающих наборах для предсказания молекулярных свойств.

Рекомендации

[1] Ян К., Суонсон К., Джин В., Коли С., Эйден П., Гао Х.; Гусман-Перес, А.; Хоппер, Т .; Келли, Б.; Матея, М.; Палмер, А .; Сеттельс, В.; Яаккола, Т .; Дженсен, К.; Регина Барзилай, Р. Анализ изученных молекулярных представлений для предсказания свойств. Дж. Хим. Инф. Модель. 2019, 59, 8, 3370–3388

[2] Гилмер, Дж.; Шенхольц, С.С.; Райли, П.Ф.; Виньялс, О .; Даль, Г. Э. Передача нейронных сообщений для квантовой химии. Материалы 34-й Международной конференции по машинному обучению 2017, 70, 1263–1272.

[3] Дай, Х.; Дай, Б.; Сонг, Л. Дискриминативные вложения моделей скрытых переменных для структурированных данных. Международная конференция по машинному обучению 2016, 27:02–27:11

[4] Соркун, M.C.; Мулладж, Д.; Кельман, JMVA; Er, S. ChemPlot, библиотека Python для визуализации химического пространства. Химия — Методы 2022, 2