Jednotka 2 / 11

Molekulární reprezentace a chemická struktura: Validace pomocí SMILES, InChI a RDKit

zisky:

  • Schopnost identifikovat molekuly nikoli podle názvu, ale podle reprezentace struktury (SMILES s lidmi, InChI/InChIKey s databází)
  • Schopnost odhalit neplatné nebo nesprávné struktury analýzou, ověřením a kanonizací každého SMILES poskytnutého umělou inteligencí pomocí RDKit
  • Schopnost pochopit, že deterministické veličiny, jako je molekulová hmotnost a vzorec, by měly být získány z nástroje založeného na pravidlech, nikoli z jazykového modelu.

První podmínkou bezpečného používání umělé inteligence v chemii je napsat molekulu v jazyce, kterému rozumí stroj i člověk. Říkáte „fenol“, AI to má správně; ale když se řekne "kyselina", jsou tisíce možností. Jména jsou nejednoznačná; reprezentace struktury jsou přesné. V této lekci se naučíme dva základní zápisy, které převádějí molekulu do textu (SMILES a InChI) a nástroj, který je deterministicky ověřuje (RDKit). Náš cíl: předat molekulu AI způsobem, který nikdy nepochopí, a potvrdit strukturu vytvořenou AI pomocí nástroje.

Co je SMILES?

SMILES (Simplified Molecular-Input Line-Entry System) je formát zápisu molekuly do jednoho řádku textu. Atomy jsou reprezentovány písmeny, vazby symboly a kruhy čísly. Příklady:

  • Ethanol: CCO (uhlík–uhlík–kyslík; implicitně vodíky).
  • Benzen: c1ccccc1 (malé „c“ označuje aromatický uhlík; 1 uzavírá kruh).
  • Aspirin: CC(=O)Oc1cccccc1C(=O)O.
  • Kofein: Cn1cnc2clc(=O)n(C)c(=O)n2C.

Síla SMILES spočívá v tom, že nese celou strukturu odkazů v jedné linii; Jeho slabinou je, že stejná molekula může mít více platných SMILES (to se nazývá nekanonickost). To za chvíli vyřešíme s RDKit.

Tip: „Kanonický SMILES“ pro molekulu je jediný standardní pravopis pro tuto molekulu. Chcete-li zjistit, zda jsou dva SMILES stejnou molekulou, kanonizujte je a porovnejte je; Neměly by být stejné textově, ale měly by to být stejné molekuly.

Co je InChI?

InChI (International Chemical Identifier) ​​je standardní identifikátor vyvinutý IUPAC. Rozdíl oproti SMILES je v tom, že stejná molekula dává vždy stejný InChI; to znamená, že má kanonický charakter. Je dlouhý a obtížně čitelný, ale je ideální pro vyhledávání v databázi. Pro vyhledávání se používá zkrácený „InChIKey“ (27znakový výtah).

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Pravidlo: Lidé mluví SMILES (čtení), stroje a databáze odpovídají InChI/InChIKey (přesně). Dejte SMILES AI; Potvrďte v databázi pomocí InChIKey.

RDKit: deterministický ověřovací engine

RDKit je open source cheminformatics knihovna. Na rozdíl od jazykového modelu je založen na pravidlech: analyzuje SMILES, vypočítává molekulovou hmotnost, generuje kanonické SMILES, vrací InChI/InChIKey, kreslí molekulu. RDKit tedy „vypočítá“, co AI „předpovídá“. Toto je srdce pracovního postupu: AI generuje, RDKit ověřuje.

Základní ověřovací postup:

from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molekulární vzorec:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molekulární hmotnost:/mol"), kolo (Descriptors./mol) print("InChIKey:", Chem.MolToInchiKey(mol))

Pokud MolFromSmiles vrátí None, AI vám dala neplatnou molekulu; Už jen toto je velmi cenné varování. Pokud je to platné, nemusíte se již ptát jazykového modelu na molekulovou hmotnost; Je to deterministicky ve vašich rukou.

Krok za krokem: Interoperace AI + RDKit

  1. Identifikujte molekulu: Dejte AI jméno, požádejte o SMILES. Například "ověřte kanonické SMILES pro paracetamol."
  2. Ověřte: Analyzujte příchozí SMILES pomocí MolFromSmiles. Pokud Žádné, odmítněte.
  3. Canonicalize: Získejte kanonický pravopis pomocí MolToSmiles; Od této chvíle to vždy používejte.
  4. Vypočítejte čísla: Získejte molekulovou hmotnost, vzorec, počet kruhů, počet donorů/akceptorů vodíkových vazeb atd. z RDKit, nikoli z AI.
  5. Oprava ID: Vygenerujte InChIKey, vyhledejte v databázi (PubChem), potvrďte, že molekula je skutečně sloučenina, kterou chcete.

Čtyři kopírovatelné šablony

1) Požadavek SMILES (od podstatného jména po strukturu):

Úkol: Dejte kanonické SMILES pro následující sloučeninu. Sloučenina: paracetamol (acetaminofen). Pravidlo: Uveďte pouze řetězec SMILES a InChIKey, nepřidávejte žádné další vysvětlení. Nejste-li si jisti, napište "NEJISTO", nevymýšlejte.

2) Žádost o ověření SMILES (od struktury po kontrolu):

Prozkoumejte SMILES níže: CC(=O)Nc1ccc(O)cc1Questions:1) Je toto platný SMILES?2) Jaké sloučenině odpovídá (běžnému názvu)?3) Jaký je molekulární vzorec?Poznámka: Přesnou molekulovou hmotnost vypočítám pomocí RDKit; Jen dáte svůj výklad struktury.

3) Porovnání dvou reprezentací:

Mám dva SMILES:A) OCCB) CCOTask: Jsou to stejné molekuly nebo různé? Napište své zdůvodnění. Poznámka: Vaši odpověď zkontroluji kanonizací v RDKit.

4) Vysvětlení struktury (pro účely učení):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTÚkol: Přečtěte si tento SMILES kousek po kousku a vysvětlete, co jednotlivé symboly znamenají (atom, vazba, kruh, aromaticita) v jednoduché turečtině. Řekněte také, o jakou sloučeninu se jedná.

Slabá výzva / Silná výzva

slabé:

Uveďte vlastnosti acetaminofenu.

"Funkce" je vágní; AI generuje náhodná čísla od molekulové hmotnosti po bod tání, z nichž některá budou chybná.

Silný:

Sloučenina: acetaminofen.1) Kanonické SMILES a InChIKey ver.2) Uveďte molekulární vzorec.Pravidlo: NEUVÁDĚJTE ČÍSELNÉ hodnoty, jako je molekulová hmotnost, bod tání atd.; Dostanu je pomocí RDKit/PubChem. Stačí zadat ID sestavení.

Rozdíl: Nasměrovali jsme AI na to, v čem je silná (strukturní identita) a pryč od toho, v čem je slabá (experimentální čísla).

Porovnání dojmů

funkce

ÚSMĚVY

InChI / InChIKey

Čitelnost

Vysoká (přátelské k lidem)

Nízká (strojově šetrná)

kanonicita

Změny vyhrazeny (vyžaduje kanonizaci)

přirozeně single

Využití

lidská komunikace, kresba, vstup

Shoda databáze, identita

stereochemie

Podporuje (symboly @)

Podporuje (vrstvené)

dát AI

ideální

Ideální pro potvrzení

mini pouzdra

Případ 1 – Dvě jména, jedna molekula. Student si myslel, že "N-acetyl-para-aminofenol" a "paracetamol" jsou různé sloučeniny a naplánoval dva samostatné experimenty. Když kanonizovali své SMILES v RDKit, oba se ukázali jako CC(=O)Nc1ccc(O)cc1; Byla to stejná molekula. Ztraceno: půl dne plánování; zisk: bylo možné se mu vyhnout 2minutovou kontrolou kanonizace.

Případ 2 — Neplatné zachycení SMILES. Umělá inteligence vrátila CC(=O)Nc1ccc(O)cc1C( pro variantu (závorky nejsou uzavřeny). Student spustil MolFromSmiles, vrátil None, okamžitě viděl chybu a požádal o opravené SMILES. Bez ověření by se chybná struktura rozšířila na všechny účty.

Případ 3 – Nesprávná molekulová hmotnost. YZ uvedl "molekulová hmotnost 214,3 g/mol" pro ibuprofen (C13H18O2). Výpočet RDKit poskytl 206,28 g/mol. Rozdíl pro 0,1 mol: 21,43 g s YZ, ve skutečnosti 20,63 g. Tento rozdíl 3,9 % by narušil stechiometrii a výpočet výtěžku. Přineslo to deterministický kalkul.

Časté chyby

  • Uvedení molekuly jménem. Synonyma/obchodní názvy jsou zmatené. Vždy zahrňte SMILES nebo InChI.
  • Porovnání SMILES bez kanonizace. OCC a CCO se liší v textu, ale stejné v molekulách.
  • Zeptání se na molekulovou hmotnost modelu jazyka. Toto je deterministický výpočet; Provádí se z RDKit nebo ručně ze vzorce.
  • Nevšimnete si neplatných SMILES. Nekontroluje návrat MolFromSmiles Žádný a pokračuje se špatnou strukturou.
  • Zanedbání stereochemie. Dva enantiomery (izomery se zrcadlovým obrazem) mohou vykazovat různé biologické účinky; Přeskakování znaků @/@@ ve SMILES.
Pozor: Stejný molekulární vzorec neznamená různé molekuly. C2H6O je jak ethanol (CCO), tak dimethylether (COC). Rovnost vzorce není rovnost identity; Pro identifikaci použijte InChIKey.

V souhrnu

  • Identifikujte molekuly podle struktury, nikoli podle jména: SMILES s člověkem, InChI/InChIKey s databází.
  • RDKit je deterministický; AI předpovídá, RDKit počítá a ověřuje.
  • Analyzujte každý AI SMILES pomocí MolFromSmiles a zkontrolujte, zda neobsahuje None, pak kanonizujte.
  • Získejte čísla jako molekulová hmotnost a vzorec z RDKit, nikoli z jazykového modelu.
  • Rovnost vzorce neznamená molekulární identitu; Pro identifikaci použijte InChIKey.

Aplikační úkol

Vyberte tři sloučeniny (např. kofein, ibuprofen, glycin). Požádejte AI o kanonické SMILES pro každého. Poté napište skript RDKit (použijte šablonu výše) a vygenerujte: kanonické SMILES, molekulární vzorec, molekulovou hmotnost, InChIKey. Kolik ze SMILES poskytnutých AI bylo platných? Pokud YZ udává také molekulovou hmotnost, vypočítejte rozdíl jako procento s hodnotou RDKit. Zapište své poznatky do malé tabulky.

kontrolní seznam

  • [ ] Vím, co jsou SMILES a InChI/InChIKey a kdy je použít.
  • [ ] Ověřuji každý SMILES daný AI pomocí MolFromSmiles.
  • [ ] Před porovnáním SMILES kanonizujem.
  • [ ] Molekulární hmotnost a vzorec získávám z RDKit, ne z jazykového modelu.
  • [ ] Potvrzuji identitu molekuly v databázi pomocí InChIKey.
  • [ ] Znám situace, kdy je stereochemie důležitá.