Jednotka 2 / 11

Molekulové zastúpenie a chemická štruktúra: Validácia pomocou SMILES, InChI a RDKit

zisky:

  • Schopnosť identifikovať molekuly nie podľa názvu, ale podľa reprezentácie štruktúry (SMILES s ľuďmi, InChI/InChIKey s databázou)
  • Schopnosť odhaliť neplatné alebo nesprávne štruktúry analýzou, overením a kanonizáciou každého SMILES poskytnutého umelou inteligenciou pomocou RDKit
  • Byť schopný pochopiť, že deterministické veličiny, ako je molekulová hmotnosť a vzorec, by sa mali získať z nástroja založeného na pravidlách, nie z jazykového modelu.

Prvou podmienkou bezpečného používania AI v chémii je napísať molekulu v jazyku, ktorému rozumie stroj aj človek. Poviete „fenol“, AI to má správne; ale ked sa povie "kyselina" su tisice moznosti. Názvy sú nejednoznačné; reprezentácie štruktúry sú presné. V tomto celku sa naučíme dva základné zápisy, ktoré prekladajú molekulu do textu (SMILES a InChI) a nástroj, ktorý ich deterministicky overuje (RDKit). Náš cieľ: dať molekulu AI spôsobom, ktorý nikdy nepochopí, a pomocou nástroja potvrdiť štruktúru produkovanú AI.

Čo je SMILES?

SMILES (Simplified Molecular-Input Line-Entry System) je formát zápisu molekuly do jedného riadku textu. Atómy sú reprezentované písmenami, väzby symbolmi a kruhy číslami. Príklady:

  • Etanol: CCO (uhlík-uhlík-kyslík; implicitne vodíky).
  • Benzén: c1cccc1 (malé písmeno „c“ označuje aromatický uhlík; 1 uzatvára kruh).
  • Aspirín: CC(=O)Oc1cccccc1C(=O)O.
  • Kofeín: Cn1cnc2clc(=0)n(C)c(=0)n2C.

Sila SMILES je v tom, že nesie celú štruktúru odkazov v jednom riadku; Jeho slabinou je, že tá istá molekula môže mať viacero platných SMILES (toto sa nazýva nekanonickosť). O chvíľu to vyriešime s RDKit.

Tip: „Kanonický SMILES“ pre molekulu je jediný štandardný pravopis pre túto molekulu. Ak chcete zistiť, či sú dva SMILES rovnaké molekuly, kanonizujte ich a porovnajte ich; Nemali by byť textovo rovnaké, ale mali by to byť rovnaké molekuly.

čo je InChI?

InChI (International Chemical Identifier) ​​je štandardný identifikátor vyvinutý IUPAC. Rozdiel oproti SMILES je v tom, že tá istá molekula dáva vždy rovnaký InChI; to znamená, že má kánonickú povahu. Je dlhý a ťažko čitateľný, ale je ideálny na porovnávanie databáz. Na vyhľadávanie sa používa skratka „InChIKey“ (27-znakový súhrn).

  • Aspirín InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Pravidlo: Ľudia hovoria SMILES (čítajú), stroje a databázy zodpovedajú InChI/InChIKey (presne). Venujte AI SMILES; Potvrďte v databáze pomocou InChIKey.

RDKit: deterministický overovací mechanizmus

RDKit je open source cheminformatická knižnica. Na rozdiel od jazykového modelu je založený na pravidlách: analyzuje SMILES, vypočítava molekulovú hmotnosť, generuje kanonické SMILES, vracia InChI/InChIKey, kreslí molekulu. RDKit teda „vypočítava“, čo AI „predpovedá“. Toto je srdce pracovného toku: AI generuje, RDKit overuje.

Základný postup overenia:

from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molekulový vzorec:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molekulárna hmotnosť:/mol"2) ,Descriptors./mol. print("InChIKey:", Chem.MolToInchiKey(mol))

Ak MolFromSmiles vráti None, AI vám dala neplatnú molekulu; Už len toto je veľmi cenné varovanie. Ak je to platné, už nemusíte žiadať od jazykového modelu molekulovú hmotnosť; Je to vo vašich rukách deterministicky.

Krok za krokom: Interoperabilita AI + RDKit

  1. Identifikujte molekulu: Pomenujte AI, požiadajte o SMILES. Napríklad "overiť kanonické SMILES pre paracetamol."
  2. Overenie: Analyzujte prichádzajúce SMILES pomocou MolFromSmiles. Ak Žiadne, odmietnite.
  3. Canonicalize: Získajte kanonický pravopis pomocou MolToSmiles; Odteraz to vždy používajte.
  4. Vypočítajte čísla: Získajte molekulovú hmotnosť, vzorec, počet kruhov, počet donorov/akceptorov vodíkových väzieb atď. z RDKit, nie z AI.
  5. Oprava ID: Vygenerujte InChIKey, vyhľadajte v databáze (PubChem), potvrďte, že molekula je skutočne zlúčenina, ktorú chcete.

Štyri kopírovateľné šablóny

1) Žiadosť o SMILES (od podstatného mena po štruktúru):

Úloha: Dajte kanonické SMILES pre nasledujúcu zlúčeninu. Zlúčenina: paracetamol (acetaminofén). Pravidlo: Uveďte iba reťazec SMILES a InChIKey, nepridávajte žiadne ďalšie vysvetlenie. Ak si nie ste istá, napíšte „NEISTÁ“, nevymýšľajte.

2) Žiadosť o overenie SMILES (od štruktúry po kontrolu):

Preskúmajte SMILES nižšie: CC(=O)Nc1ccc(O)cc1Questions:1) Je toto platný SMILES?2) Akej zlúčenine zodpovedá (bežnému názvu)?3) Aký je molekulový vzorec?Poznámka: Presnú molekulovú hmotnosť vypočítam pomocou RDKit; Vy len dáte výklad svojej štruktúry.

3) Porovnanie dvoch zobrazení:

Mám dva ÚSMEVY: A) OCCB) CCOTask: Sú to rovnaké alebo odlišné molekuly? Napíšte svoje zdôvodnenie. Poznámka: Vašu odpoveď skontrolujem tak, že ju kanonizujem v RDKit.

4) Vysvetlenie štruktúry (na vzdelávacie účely):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTÚloha: Prečítajte si tento SMILES kúsok po kúsku a vysvetlite, čo jednotlivé symboly znamenajú (atóm, väzba, kruh, aromaticita) v obyčajnej turečtine. Povedzte tiež, o akú zlúčeninu ide.

Slabá výzva / Silná výzva

slabé:

Uveďte vlastnosti acetaminofénu.

"Funkcia" je vágna; AI generuje náhodné čísla od molekulovej hmotnosti po bod topenia, z ktorých niektoré budú nesprávne.

Silný:

Zlúčenina: acetaminofén.1) Kanonické SMILES a InChIKey ver.2) Uveďte molekulárny vzorec.Pravidlo: NEUVÁDZAJTE ČÍSELNÉ hodnoty, ako je molekulová hmotnosť, bod topenia atď.; Získam ich pomocou RDKit/PubChem. Stačí zadať ID zostavy.

Rozdiel: Nasmerovali sme AI na to, v čom je silná (identita štruktúry) a preč od toho, v čom je slabá (experimentálne čísla).

Porovnanie dojmov

vlastnosť

ÚSMEVY

InChI / InChIKey

Čitateľnosť

Vysoká (priateľské k ľuďom)

Nízke (strojovo vhodné)

kanonickosť

Zmeny vyhradené (vyžaduje kanonizáciu)

prirodzene single

Použitie

ľudská komunikácia, kresba, vstup

Zhoda databázy, identita

stereochémia

Podporuje (symboly @)

Podporuje (vrstvené)

dať AI

ideálne

Ideálne na potvrdenie

mini prípady

Prípad 1 – Dve mená, jedna molekula. Študent si myslel, že "N-acetyl-para-aminofenol" a "paracetamol" sú rôzne zlúčeniny a naplánoval dva samostatné experimenty. Keď kanonizovali svoje SMILES v RDKit, obaja sa ukázali ako CC(=O)Nc1ccc(O)cc1; Bola to tá istá molekula. Stratené: pol dňa plánovania; zisk: dalo sa mu vyhnúť 2-minútovou kontrolou kanonizácie.

Prípad 2 – Neplatné zachytenie SMILES. AI vrátilo CC(=O)Nc1ccc(O)cc1C( pre variant (zátvorky nie sú zatvorené). Študent spustil MolFromSmiles, vrátil None, okamžite videl chybu a požiadal o opravené SMILES. Bez overenia by sa chybná štruktúra rozšírila na všetky účty.

Prípad 3 – Nesprávna molekulová hmotnosť. YZ uviedol „molekulová hmotnosť 214,3 g/mol“ pre ibuprofén (C13H18O2). Výpočet RDKit poskytol 206,28 g/mol. Rozdiel pre 0,1 mol: 21,43 g s YZ, v skutočnosti 20,63 g. Tento rozdiel 3,9 % by narušil stechiometriu a výpočet výťažku. Prinieslo to deterministický kalkul.

Časté chyby

  • Uvedenie molekuly menom. Synonymá/obchodné názvy sú zamieňané. Vždy zahrňte SMILES alebo InChI.
  • Porovnávanie SMILES bez kanonizácie. OCC a CCO sú odlišné v texte, ale rovnaké v molekulách.
  • Opýtanie sa na molekulovú hmotnosť modelu jazyka. Toto je deterministický výpočet; Vykonáva sa z RDKit alebo ručne zo vzorca.
  • Nevšimnú si neplatné SMILES. Nekontroluje návrat MolFromSmiles None a pokračuje s nesprávnou štruktúrou.
  • Zanedbanie stereochémie. Dva enantioméry (izoméry so zrkadlovým obrazom) môžu vykazovať rôzne biologické účinky; Preskakovanie znakov @/@@ v SMILES.
Pozor: Rovnaký molekulový vzorec neznamená rôzne molekuly. C2H60 je etanol (CCO) aj dimetyléter (COC). Rovnosť vzorca nie je rovnosť identity; Na identifikáciu použite InChIKey.

V súhrne

  • Identifikujte molekuly podľa zápisu štruktúry, nie podľa mena: SMILES s človekom, InChI/InChIKey s databázou.
  • RDKit je deterministický; AI predpovedá, RDKit vypočítava a overuje.
  • Analyzujte každý AI SMILES pomocou MolFromSmiles a skontrolujte, či neobsahuje None, potom kanonizujte.
  • Získajte čísla ako molekulová hmotnosť a vzorec z RDKit, nie z jazykového modelu.
  • Rovnosť vzorca neznamená molekulovú identitu; Na identifikáciu použite InChIKey.

Aplikačná úloha

Vyberte si tri zlúčeniny (napr. kofeín, ibuprofén, glycín). Požiadajte AI ​​o kanonické SMILES pre každého. Potom napíšte skript RDKit (použite šablónu vyššie) a vygenerujte: kanonické SMILES, molekulový vzorec, molekulovú hmotnosť, InChIKey. Koľko úsmevov poskytnutých AI bolo platných? Ak YZ udával aj molekulovú hmotnosť, vypočítajte rozdiel ako percento s hodnotou RDKit. Zaznamenajte svoje zistenia do malej tabuľky.

kontrolný zoznam

  • [ ] Viem, čo sú SMILES a InChI/InChIKey a kedy ich použiť.
  • [ ] Overujem každý SMILES daný AI pomocou MolFromSmiles.
  • [ ] Pred porovnaním SMILES kanonizujem.
  • [ ] Molekulárnu hmotnosť a vzorec získavam z RDKit, nie z jazykového modelu.
  • [ ] Potvrdzujem identitu molekuly v databáze pomocou InChIKey.
  • [ ] Poznám situácie, kde je dôležitá stereochémia.