Прибуток:
- Можливість ідентифікувати молекули не за назвою, а за представленням структури (SMILES з людьми, InChI/InChIKey з базою даних)
- Можливість виявлення недійсних або неправильних структур шляхом аналізу, перевірки та канонізації кожного SMILES, наданого штучним інтелектом за допомогою RDKit
- Здатність зрозуміти, що детерміновані величини, такі як молекулярна маса та формула, слід отримувати з інструменту, заснованого на правилах, а не з мовної моделі.
Перша умова безпечного використання штучного інтелекту в хімії — написати молекулу мовою, яку можуть зрозуміти і машина, і людина. Ви кажете «фенол», ШІ правильно розуміє; але коли ви говорите «кислота», є тисячі можливостей. Назви неоднозначні; представлення структури є точними. У цьому розділі ми ознайомимося з двома основними позначеннями, які перетворюють молекулу в текст (SMILES і InChI), і інструментом, який їх детерміновано перевіряє (RDKit). Наша мета: передати молекулу штучному інтелекту таким чином, щоб він ніколи не зрозумів її неправильно, і підтвердити структуру, створену штучним інтелектом, за допомогою інструменту.
Що таке SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) — це формат запису молекули в одному рядку тексту. Атоми позначаються літерами, зв’язки символами, а кільця цифрами. приклади:
- Етанол: CCO (вуглець–вуглець–кисень; водень неявний).
- Бензол: c1ccccc1 (мала буква "c" позначає ароматичний вуглець; 1 замикає кільце).
- Аспірин: CC(=O)Oc1cccccc1C(=O)O.
- Кофеїн: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Сила SMILES полягає в тому, що він містить всю структуру посилань в одному рядку; Його слабкість полягає в тому, що одна й та сама молекула може мати кілька дійсних SMILES (це називається неканонічністю). За мить ми вирішимо це за допомогою RDKit.
Підказка: «Канонічні УСМІШКИ» для молекули — це єдине стандартне написання для цієї молекули. Щоб побачити, чи є дві SMILES однаковими молекулами, канонізуйте та порівняйте їх; Вони не повинні бути однаковими текстово, але вони повинні бути рівними молекулами.
Що таке InChI?
InChI (International Chemical Identifier) — це стандартний ідентифікатор, розроблений IUPAC. Відмінність від SMILES полягає в тому, що одна й та сама молекула завжди дає той самий InChI; тобто має канонічний характер. Він довгий і важкий для читання, але ідеальний для зіставлення бази даних. Для пошуку використовується скорочений «InChIKey» (27-символьний дайджест).
- Аспірин InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Правило: люди говорять ПОСМІШКАМИ (читати), машини та бази даних відповідають InChI/InChIKey (точно). Подаруйте СПІЛКИ ШІ; Підтвердьте в базі даних за допомогою InChIKey.
RDKit: механізм детермінованої перевірки
RDKit — це бібліотека хімічної інформатики з відкритим кодом. На відміну від мовної моделі, вона заснована на правилах: аналізує SMILES, обчислює молекулярну масу, генерує канонічні SMILES, повертає InChI/InChIKey, малює молекулу. Тож RDKit «обчислює» те, що «прогнозує» AI. Це серце робочого процесу: AI генерує, 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(mol))
Якщо MolFromSmiles повертає None, ШІ дав вам недійсну молекулу; Вже одне це є дуже цінним попередженням. Якщо дійсний, вам більше не потрібно запитувати молекулярну вагу в моделі мови; Це детерміновано у ваших руках.
Крок за кроком: взаємодія AI + RDKit
- Визначте молекулу: дайте ШІ назву, попросіть УСМІШКИ. Наприклад, «перевірити канонічні SMILES на парацетамол».
- Перевірте: аналізуйте вхідні SMILES за допомогою MolFromSmiles. Якщо немає, відхилити.
- Canonicalize: Отримайте канонічний правопис за допомогою MolToSmiles; Завжди використовуйте це відтепер.
- Обчислити числа: отримати молекулярну масу, формулу, кількість кілець, кількість донорів/акцепторів водневих зв’язків тощо з RDKit, а не з AI.
- Ідентифікатор виправлення: згенеруйте InChIKey, здійсніть пошук у базі даних (PubChem), підтвердьте, що молекула справді є потрібною сполукою.
Чотири шаблони, які можна копіювати
1) Прохання ПОСМІШКИ (від іменника до структури):
Завдання: Наведіть канонічні SMILES для наступної сполуки. Сполука: парацетамол (ацетамінофен). Правило: надайте лише рядок SMILES і InChIKey, не додавайте жодних додаткових пояснень. Якщо ви не впевнені, напишіть «НЕ Впевнений», не вигадуйте.
2) Запит перевірки SMILES (від структури до керування):
Перегляньте SMILES нижче: CC(=O)Nc1ccc(O)cc1Запитання:1) Чи це дійсний SMILES?2) Якій сполукі він відповідає (загальна назва)?3) Яка молекулярна формула? Примітка: я розрахую точну молекулярну масу за допомогою RDKit; Ви просто даєте свою інтерпретацію структури.
3) Порівняння двох представлень:
У мене два SMILES: A) OCCB) CCO Завдання: Це однакові молекули чи різні? Напишіть своє міркування. Примітка: я перевірю вашу відповідь, канонізуючи її в RDKit.
4) Пояснення структури (для навчання):
SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Прочитайте цей SMILES по частинах і поясніть значення кожного символу (атом, зв’язок, кільце, ароматність) простою турецькою мовою. Також скажіть, яка це сполука.
Слабка підказка / Сильна підказка
Слабкий:
Назвіть властивості ацетамінофену.
«Характеристика» розпливчаста; ШІ генерує випадкові числа від молекулярної маси до точки плавлення, деякі з яких будуть неправильними.
Сильний:
Сполука: ацетамінофен.1) Canonical SMILES та InChIKey ver.2) Укажіть молекулярну формулу. Правило: НЕ НАДАВАЙТЕ ЧИСЛОВИХ значень, таких як молекулярна маса, температура плавлення тощо; Я отримаю їх за допомогою RDKit/PubChem. Просто вкажіть ідентифікатор збірки.
Відмінність: ми спрямували ШІ на те, в чому він сильний (ідентичність структури), і від того, в чому він слабкий (експериментальні цифри).
Порівняння вражень
функція
ПОСМІШКИ
InChI / InChIKey
Читабельність
Високий (люди доброзичливі)
Низький (підходить для машини)
канонічність
Можливі зміни (потребує канонізації)
природно неодружений
Використання
людське спілкування, малювання, введення
Збіг бази даних, ідентичність
стереохімія
Підтримує (символи @)
Опори (шарові)
віддати АІ
ідеал
Ідеально підходить для конфірмації
міні-чохли
Випадок 1 — Дві назви, одна молекула. Студент подумав, що «N-ацетил-пара-амінофенол» і «парацетамол» — різні сполуки, і запланував два окремих експерименти. Коли канонізували їхні SMILES у RDKit, вони обидва виявилися CC(=O)Nc1ccc(O)cc1; Це була та сама молекула. Втрачено: півдня планування; посилення: можна було уникнути за допомогою 2-хвилинної перевірки канонізації.
Випадок 2 — Недійсний запис SMILES. ШІ повернув CC(=O)Nc1ccc(O)cc1C( для варіанту (дужки не закриті). Студент запустив MolFromSmiles, він повернув None, негайно побачив помилку та запросив виправлені SMILES. Без перевірки несправна структура поширилася б на всі облікові записи.
Випадок 3 — Неправильна молекулярна маса. YZ сказав «молекулярна маса 214,3 г/моль» для ібупрофену (C13H18O2). Розрахунок RDKit дав 206,28 г/моль. Різниця для 0,1 моль: 21,43 г з YZ, насправді 20,63 г. Ця різниця в 3,9% порушила б стехіометрію та розрахунок виходу. Це принесло детерміноване числення.
Поширені помилки
- Назвіть молекулу. Синоніми/торгові назви переплутані. Завжди включайте SMILES або InChI.
- Порівнюючи SMILES без канонізації. OCC і CCO різні за текстом, але однакові за молекулами.
- Запитування молекулярної маси моделі язика. Це детермінований розрахунок; Це робиться з RDKit або вручну з формули.
- Не помічаючи недійсних SMILES. Не перевіряється повернення MolFromSmiles None і продовжується з неправильною структурою.
- Нехтування стереохімією. Два енантіомери (ізомери дзеркального відображення) можуть виявляти різні біологічні ефекти; Пропуск знаків @/@@ у SMILES.
Увага: однакова молекулярна формула не означає різних молекул. C2H6O є і етанолом (CCO), і диметиловим ефіром (COC). Рівність формули не є рівністю тотожності; Для ідентифікації використовуйте InChIKey.
Підсумовуючи
- Ідентифікуйте молекули за нотацією структури, а не за назвою: SMILES з людиною, InChI/InChIKey з базою даних.
- RDKit є детермінованим; AI передбачає, RDKit обчислює та перевіряє.
- Проаналізуйте кожен AI SMILES за допомогою MolFromSmiles і перевірте відсутність, а потім канонізуйте.
- Отримайте такі числа, як молекулярна маса та формула, з RDKit, а не з моделі мови.
- Формульна рівність не означає молекулярної ідентичності; Для ідентифікації використовуйте InChIKey.
Аплікаційне завдання
Виберіть три сполуки (наприклад, кофеїн, ібупрофен, гліцин). Попросіть ШІ канонічні SMILES для кожного. Потім напишіть сценарій RDKit (використовуйте шаблон вище) і згенеруйте: канонічні SMILES, молекулярну формулу, молекулярну масу, InChIKey. Скільки SMILES, наданих ШІ, були дійсними? Якщо YZ також дав молекулярну масу, обчисліть різницю у відсотках із значенням RDKit. Занесіть свої висновки в невелику таблицю.
контрольний список
- [ ] Я знаю, що таке SMILES та InChI/InChIKey і коли ними користуватися.
- [ ] Я перевіряю кожен SMILES, наданий штучним інтелектом, за допомогою MolFromSmiles.
- [ ] Я канонізую SMILES перед тим, як порівнювати їх.
- [ ] Я отримую молекулярну масу та формулу з RDKit, а не з мовної моделі.
- [ ] Я підтверджую ідентичність молекули в базі даних за допомогою InChIKey.
- [ ] Я знаю ситуації, коли стереохімія важлива.