Прибыль:
- Способность идентифицировать молекулы не по названию, а по представлению структуры (УЛЫБКИ с людьми, InChI/InChIKey с базой данных)
- Возможность обнаруживать недействительные или неправильные структуры путем анализа, проверки и канонизации каждого SMILES, предоставленного искусственным интеллектом, с помощью RDKit.
- Способность понимать, что детерминированные величины, такие как молекулярная масса и формула, должны быть получены с помощью инструмента, основанного на правилах, а не из языковой модели.
Первое условие безопасного использования ИИ в химии — написать молекулу на языке, понятном как машине, так и человеку. Вы говорите «фенол», ИИ понимает это правильно; но когда вы говорите «кислота», открываются тысячи возможностей. Имена неоднозначны; представления структур являются точными. В этом модуле мы изучим две основные нотации, которые переводят молекулу в текст (SMILES и InChI), а также инструмент, который их детерминированно проверяет (RDKit). Наша цель: передать молекулу ИИ так, чтобы он никогда не понял ее неправильно, и подтвердить структуру, созданную ИИ, с помощью инструмента.
Что такое УЛЫБКИ?
SMILES (упрощенная система молекулярного ввода) — это формат записи молекулы в одну строку текста. Атомы обозначаются буквами, связи — символами, кольца — цифрами. Примеры:
- Этанол: CCO (углерод-углерод-кислород; подразумеваемые атомы водорода).
- Бензол: c1cccc1 (строчная буква «c» обозначает ароматический углерод; 1 замыкает кольцо).
- Аспирин: CC(=O)Oc1ccccc1C(=O)O.
- Кофеин: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Преимущество SMILES в том, что он переносит всю структуру ссылок в одну строку; Его слабость в том, что одна и та же молекула может иметь несколько действительных УЛЫБОК (это называется неканоничностью). Мы решим эту проблему с помощью RDKit через мгновение.
Подсказка: «Канонические УЛЫБКИ» для молекулы — это единственное стандартное написание этой молекулы. Чтобы увидеть, являются ли две УЛЫБКИ одной и той же молекулой, канонизируйте и сравните их; Текстуально они не должны быть равными, но должны быть равными молекулами.
Что такое ИнЧИ?
InChI (Международный химический идентификатор) — стандартный идентификатор, разработанный ИЮПАК. Отличие от SMILES в том, что одна и та же молекула всегда дает один и тот же InChI; то есть оно канонично по своей природе. Он длинный и трудный для чтения, но идеально подходит для сопоставления с базами данных. Для поиска используется сокращенный вариант «InChIKey» (27-значный дайджест).
- Аспирин InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Правило: Люди говорят УЛЫБКАМИ (читай), машины и базы данных соответствуют InChI/InChIKey (точно). Подарите УЛЫБКИ ИИ; Подтвердить в базе данных с помощью InChIKey.
RDKit: механизм детерминированной проверки
RDKit — это хемоинформатическая библиотека с открытым исходным кодом. В отличие от языковой модели, она основана на правилах: анализирует SMILES, вычисляет молекулярную массу, генерирует канонические SMILES, возвращает InChI/InChIKey, рисует молекулу. Итак, RDKit «вычисляет» то, что «предсказывает» ИИ. Это суть рабочего процесса: ИИ генерирует, RDKit проверяет.
Базовый процесс проверки:
from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Молекулярная формула:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Молекулярная масса:", round(Descriptors.MolWt(mol), 2), "г/моль") print("InChIKey:", Chem.MolToInchiKey(моль))
Если MolFromSmiles возвращает None, ИИ дал вам недопустимую молекулу; Уже одно это является очень ценным предупреждением. Если это действительно так, вам больше не нужно запрашивать молекулярную массу у языковой модели; Это определенно в ваших руках.
Шаг за шагом: взаимодействие AI + RDKit
- Определите молекулу: дайте ИИ имя, попросите УЛЫБКУ. Например, «проверьте канонические УЛЫБКИ на предмет парацетамола».
- Проверка: анализ входящих SMILES с помощью MolFromSmiles. Если нет, отклонить.
- Канонизировать: получить каноническое написание с помощью MolToSmiles; Всегда используйте это с этого момента.
- Рассчитывайте числа: получайте молекулярную массу, формулу, количество колец, количество доноров/акцепторов водородных связей и т. д. из RDKit, а не из AI.
- Идентификатор исправления: создайте InChIKey, выполните поиск в базе данных (PubChem), подтвердите, что молекула действительно является тем соединением, которое вам нужно.
Четыре копируемых шаблона
1) Просьба УЛЫБКИ (от существительного к структуре):
Задание: Приведите канонические УЛЫБКИ к следующему составному слову. Соединение: парацетамол (ацетаминофен). Правило: Укажите только строку SMILES и InChIKey, никаких дополнительных пояснений не добавляйте. Если не уверены, напишите «НЕ УВЕРЕНЫ», не придумывайте.
2) Запрос на проверку SMILES (от структуры к элементу управления):
Изучите УЛЫБКИ ниже: CC(=O)Nc1ccc(O)cc1Вопросы:1) Это действительный SMILES?2) Какому соединению оно соответствует (общее название)?3) Какова молекулярная формула?Примечание. Я рассчитаю точную молекулярную массу с помощью RDKit; Вы просто даете интерпретацию своей структуры.
3) Сравнение двух представлений:
У меня есть две УЛЫБКИ: А) OCCB) CCOT Задача: Это одна и та же молекула или разные? Напишите свои аргументы. Примечание. Я перепроверю ваш ответ, канонизировав его в RDKit.
4) Объяснение структуры (в целях обучения):
УЛЫБКИ: Cn1cnc2c1c(=O)n(C)c(=O)n2CЗадание: Прочитайте эти УЛЫБКИ по частям и объясните, что означает каждый символ (атом, связь, кольцо, ароматичность) на простом турецком языке. Также скажите, что это за соединение.
Слабая подсказка / Сильная подсказка
Слабый:
Назовите свойства ацетаминофена.
«Особенность» расплывчата; ИИ генерирует случайные числа от молекулярной массы до температуры плавления, некоторые из которых будут неправильными.
Сильный:
Соединение: ацетаминофен.1) Canonical SMILES и InChIKey ver.2) Дайте молекулярную формулу. Правило: НЕ ДАВАЙТЕ ЧИСЛОВЫЕ значения, такие как молекулярная масса, температура плавления и т. д.; Я получу их с помощью RDKit/PubChem. Просто укажите идентификатор сборки.
Разница: мы направили ИИ в сторону того, в чем он силен (идентичность структуры), и от того, в чем он слаб (экспериментальные цифры).
Сравнение впечатлений
особенность
УЛЫБКИ
ИнЧИ / ИнЧИКей
Читабельность
Высокий (дружественный к людям)
Низкий (совместим с машиной)
каноничность
Возможны изменения (нужна канонизация)
естественно одинокий
Использование
человеческое общение, рисование, ввод
Соответствие базы данных, идентичность
стереохимия
Поддерживает (@ символы)
Опоры (многослойные)
отдать ИИ
идеальный
Идеально для подтверждения
мини-чехлы
Случай 1 — Два имени, одна молекула. Студент подумал, что «N-ацетил-парааминофенол» и «парацетамол» — это разные соединения, и запланировал два отдельных эксперимента. Когда их SMILES канонизировали в RDKit, они оба оказались CC(=O)Nc1ccc(O)cc1; Это была та же самая молекула. Проиграно: полдня планирования; выигрыш: можно было избежать с помощью двухминутной проверки канонизации.
Случай 2 — Неверный захват SMILES. ИИ вернул CC(=O)Nc1ccc(O)cc1C( для варианта (скобки не закрыты). Студент запустил MolFromSmiles, он вернул None, сразу увидел ошибку и запросил исправленные SMILES. Без проверки ошибочная структура распространилась бы на все учетные записи.
Случай 3 — Неверная молекулярная масса. YZ сообщил, что ибупрофен (C13H18O2) имеет «молекулярную массу 214,3 г/моль». Расчет RDKit дал 206,28 г/моль. Разница для 0,1 моля: 21,43 г с YZ, реально 20,63 г. Эта разница в 3,9% может нарушить стехиометрию и расчет выхода. Оно принесло детерминистическое исчисление.
Распространенные ошибки
- Даём молекуле имя. Синонимы/торговые названия перепутаны. Всегда включайте SMILES или InChI.
- Сравнение УЛЫБОК без канонизации. OCC и CCO различаются по тексту, но одинаковы по молекулам.
- Задаем молекулярный вес модели языка. Это детерминированный расчет; Делается это из RDKit или вручную по формуле.
- Не замечая недействительных УЛЫБОК. Не проверять возврат MolFromSmiles None и продолжать работу с неправильной структурой.
- Пренебрежение стереохимией. Два энантиомера (изомеры зеркального отображения) могут проявлять разные биологические эффекты; Пропуск знаков @/@@ в УЛЫБКАХ.
Внимание: одна и та же молекулярная формула не означает разные молекулы. C2H6O представляет собой одновременно этанол (CCO) и диметиловый эфир (COC). Равенство формулы не есть равенство тождества; Используйте InChIKey для идентификации.
В заключение
- Идентифицируйте молекулы по структурным обозначениям, а не по названию: SMILES с человеком, InChI/InChIKey с базой данных.
- RDKit является детерминированным; ИИ прогнозирует, RDKit рассчитывает и проверяет.
- Проанализируйте каждый AI SMILES с помощью MolFromSmiles и проверьте «Нет», а затем канонизируйте.
- Получайте такие числа, как молекулярная масса и формулы, из RDKit, а не из языковой модели.
- Равенство формул не означает молекулярную идентичность; Используйте InChIKey для идентификации.
Задача приложения
Выберите три соединения (например, кофеин, ибупрофен, глицин). Попросите у ИИ канонические УЛЫБКИ для каждого. Затем напишите скрипт RDKit (используйте шаблон выше) и сгенерируйте: канонические SMILES, молекулярную формулу, молекулярную массу, InChIKey. Сколько УЛЫБОК, выданных ИИ, были действительными? Если YZ также указал молекулярную массу, рассчитайте разницу в процентах со значением RDKit. Запишите свои выводы в небольшую таблицу.
контрольный список
- [ ] Я знаю, что такое SMILES и InChI/InChIKey и когда их использовать.
- [ ] Я проверяю каждую УЛЫБКУ, предоставленную ИИ, с помощью MolFromSmiles.
- [ ] Я канонизирую УЛЫБКИ, прежде чем сравнивать их.
- [ ] Я получаю молекулярную массу и формулу из RDKit, а не из языковой модели.
- [ ] Подтверждаю идентичность молекулы в базе данных InChIKey.
- [ ] Я знаю ситуации, когда важна стереохимия.