Enota 2 / 11

Molekularna predstavitev in kemijska struktura: validacija s SMILES, InChI in RDKit

Dobički:

  • Sposobnost prepoznavanja molekul ne po imenu, temveč po predstavitvi strukture (SMILES z ljudmi, InChI/InChIKey z zbirko podatkov)
  • Sposobnost zaznavanja neveljavnih ali nepravilnih struktur z razčlenjevanjem, potrjevanjem in kanoniziranjem vsakega SMILES-a, ki ga poda umetna inteligenca z RDKit
  • Biti sposoben razumeti, da je treba deterministične količine, kot sta molekulska masa in formula, pridobiti iz orodja, ki temelji na pravilih, ne iz jezikovnega modela.

Prvi pogoj za varno uporabo AI v kemiji je pisanje molekule v jeziku, ki ga razumeta tako stroj kot človek. Rekli ste "fenol", AI razume prav; a ko rečeš "kislina", je na tisoče možnosti. Imena so dvoumna; predstavitve strukture so natančne. V tej enoti se bomo naučili dveh osnovnih notacij, ki prevedeta molekulo v besedilo (SMILES in InChI), in orodja, ki ju deterministično preveri (RDKit). Naš cilj: dati molekulo AI na način, ki je ne bo nikoli napačno razumel, in z orodjem potrditi strukturo, ki jo ustvari AI.

Kaj je SMILE?

SMILES (Simplified Molecular-Input Line-Entry System) je oblika zapisovanja molekule v eni vrstici besedila. Atomi so predstavljeni s črkami, vezi s simboli in obroči s številkami. Primeri:

  • Etanol: CCO (ogljik–ogljik–kisik; vodiki implicitni).
  • Benzen: c1ccccc1 (male črke "c" označujejo aromatski ogljik; 1 zapirajo obroč).
  • Aspirin: CC(=O)Oc1ccccc1C(=O)O.
  • Kofein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Moč SMILES je v tem, da nosi celotno strukturo povezav v eni vrstici; Njegova slabost je, da ima lahko ista molekula več veljavnih SMILES (to se imenuje nekanoničnost). To bomo rešili z RDKit v trenutku.

Namig: »Kanonični NASMEŠKI« za molekulo je enotno, standardno črkovanje za to molekulo. Če želite videti, ali sta dva SMILESa ista molekula, ju kanonizirajte in primerjajte; Besedilno ne smejo biti enaki, morajo pa biti enake molekule.

Kaj je InChI?

InChI (International Chemical Identifier) ​​je standardni identifikator, ki ga je razvil IUPAC. Razlika od SMILES je v tem, da ista molekula vedno daje isti InChI; to pomeni, da je kanonične narave. Je dolg in težak za branje, vendar je idealen za ujemanje podatkovnih baz. Za iskanje se uporablja skrajšani "InChIKey" (27-mestni povzetek).

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Pravilo: Ljudje govorijo NASMEŠKI (beri), stroji in baze podatkov se ujemajo z InChI/InChIKey (natančno). Podarite NASMEHE AI; Potrdite v bazi podatkov z InChIKey.

RDKit: deterministični mehanizem preverjanja

RDKit je odprtokodna knjižnica za kemijsko informatiko. Za razliko od jezikovnega modela temelji na pravilih: razčlenjuje SMILES, izračuna molekulsko maso, generira kanonične SMILES, vrne InChI/InChIKey, nariše molekulo. Torej RDKit "izračuna", kaj "napoveduje" AI. To je srce delovnega toka: AI ustvarja, RDKit preverja.

Osnovni tok preverjanja:

from rdkit import Chemfrom rdkit.Chem import Deskriptorji, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molekulska formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molekulska masa:", round(Descriptors.MolWt(mol), 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Če MolFromSmiles vrne None, vam je AI dal neveljavno molekulo; Že samo to je zelo dragoceno opozorilo. Če je veljaven, vam jezikovnega modela ni več treba vprašati za molekulsko maso; To je deterministično v vaših rokah.

Korak za korakom: medsebojno delovanje AI + RDKit

  1. Identificirajte molekulo: dajte AI ime, prosite za NASMEŠKE. Na primer, "preveri kanonične SMILES za paracetamol."
  2. Preveri: Razčleni dohodne SMILES z MolFromSmiles. Če ni, zavrnite.
  3. Canonicalize: Pridobite kanonično črkovanje z MolToSmiles; Od zdaj naprej to vedno uporabljajte.
  4. Izračunajte številke: pridobite molekulsko maso, formulo, število obročev, število donorjev/akceptorjev vodikove vezi itd. iz RDKit, ne iz AI.
  5. ID popravka: ustvarite InChIKey, poiščite v bazi podatkov (PubChem), potrdite, da je molekula res spojina, ki jo želite.

Štiri predloge za kopiranje

1) Zahtevanje NASMEŠKOV (od samostalnika do strukture):

Naloga: Navedite kanonične SMILE za naslednjo spojino. Sestavina: paracetamol (acetaminofen). Pravilo: Navedite samo niz SMILES in InChIKey, ne dodajajte nobene dodatne razlage. Če niste prepričani, napišite "NIS PREPRIČAN", ne izmišljujte se.

2) Zahteva za validacijo SMILES (od strukture do nadzora):

Preglejte spodnje SMILES: CC(=O)Nc1ccc(O)cc1Vprašanja:1) Ali je to veljaven SMILES?2) Kateri spojini ustreza (splošno ime)?3) Kakšna je molekulska formula?Opomba: Natančno molekulsko maso bom izračunal z RDKit; Vi samo podate svojo interpretacijo strukture.

3) Primerjava dveh predstavitev:

Imam dva NASMEŠKA:A) OCCB) CCONaloga: Ali sta to isti molekuli ali različni? Napišite svojo utemeljitev. Opomba: vaš odgovor bom navzkrižno preveril tako, da ga bom kanoniziral v RDKit.

4) Razlaga strukture (za učne namene):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Preberite ta SMILES po delih in razložite, kaj vsak simbol pomeni (atom, vez, obroč, aromatičnost) v navadni turščini. Povejte tudi, za katero spojino gre.

Šibek poziv/močan poziv

Šibko:

Navedite lastnosti acetaminofena.

"Funkcija" je nejasna; AI ustvarja naključna števila od molekulske mase do tališča, od katerih bodo nekatera napačna.

Močno:

Spojina: acetaminophen.1) Canonical SMILES in InChIKey ver.2) Navedite molekulsko formulo. Pravilo: NE PODAJTE ŠTEVILSKIH vrednosti, kot so molekulska masa, tališče itd.; Dobil jih bom z RDKit/PubChem. Samo navedite ID gradnje.

Razlika: Umetno inteligenco smo usmerili proti temu, v čemer je močna (identiteta strukture), in stran od tistega, v čemer je šibka (eksperimentalne številke).

Primerjava vtisov

funkcija

NASMEHKI

InChI / InChIKey

Berljivost

Visoko (ljudem prijazno)

Nizka (stroju prijazna)

kanoničnost

Pridržujemo si pravico do sprememb (potrebna kanonizacija)

naravno samski

Uporaba

človeška komunikacija, risanje, vnos

Ujemanje baze podatkov, identiteta

stereokemija

Podpira (simboli @)

Podpore (slojne)

dati AI

idealno

Idealno za birmo

mini etuiji

Primer 1 — Dve imeni, ena molekula. Študent je menil, da sta "N-acetil-para-aminofenol" in "paracetamol" različni spojini in je načrtoval dva ločena poskusa. Ko so njune SMILES kanonizirali v RDKit, se je izkazalo, da sta oba CC(=O)Nc1ccc(O)cc1; Bila je ista molekula. Izgubljeno: pol dneva načrtovanja; dobiček: lahko bi se mu izognili z 2-minutnim preverjanjem kanonikalizacije.

Primer 2 — Neveljaven zajem SMILES. AI je vrnil CC(=O)Nc1ccc(O)cc1C( za različico (oklepaji niso zaprti). Študent je zagnal MolFromSmiles, ta je vrnil None, takoj videl napako in zahteval popravljene SMILES. Brez preverjanja bi se napačna struktura razširila na vse račune.

Primer 3 – Napačna molekulska masa. YZ je rekel "molekulska masa 214,3 g/mol" za ibuprofen (C13H18O2). Izračun RDKit je dal 206,28 g/mol. Razlika za 0,1 mol: 21,43 g z YZ, dejansko 20,63 g. Ta razlika 3,9 % bi motila stehiometrijo in izračun donosa. Prinesel je deterministični račun.

Pogoste napake

  • Poimenovanje molekule. Sinonimi/trgovska imena so zmedeni. Vedno vključite SMILES ali InChI.
  • Primerjava SMILES, ne da bi ga kanonizirali. OCC in CCO sta različna v besedilu, vendar enaka v molekulah.
  • Vprašanje molekulske mase modela jezika. To je deterministični izračun; Izvede se iz RDKit ali ročno iz formule.
  • Ne opazim neveljavnih NASMEŠKOV. Ne preverja vrnitve MolFromSmiles None in nadaljuje z napačno strukturo.
  • Zanemarjanje stereokemije. Oba enantiomera (izomera zrcalne slike) lahko kažeta različne biološke učinke; Preskakovanje znakov @/@@ v NASMEHIH.
Pozor: Ista molekulska formula ne pomeni različnih molekul. C2H6O je tako etanol (CCO) kot dimetil eter (COC). Enakost formule ni enakost identitete; Za identifikacijo uporabite InChIKey.

Če povzamem

  • Identificirajte molekule po zapisu strukture, ne po imenu: SMILES s človekom, InChI/InChIKey z zbirko podatkov.
  • RDKit je determinističen; AI napove, RDKit izračuna in preveri.
  • Razčlenite vsak AI SMILES z MolFromSmiles in preverite za None, nato ga kanonizirajte.
  • Pridobite številke, kot sta molekulska masa in formula, iz RDKit, ne iz jezikovnega modela.
  • Enakost formule ne pomeni molekularne identitete; Za identifikacijo uporabite InChIKey.

Aplikacijska naloga

Izberite tri spojine (npr. kofein, ibuprofen, glicin). Prosite AI ​​za kanonične NASMEHE za vsakega. Nato napišite skript RDKit (uporabite zgornjo predlogo) in ustvarite: kanonične NASMEŠKE, molekulsko formulo, molekulsko maso, InChIKey. Koliko NASMEŠKOV, ki jih je dal AI, je bilo veljavnih? Če je YZ navedel tudi molekulsko maso, izračunajte razliko v odstotkih z vrednostjo RDKit. Svoje ugotovitve vnesite v majhno tabelo.

kontrolni seznam

  • [ ] Vem, kaj sta SMILES in InChI/InChIKey in kdaj ju uporabiti.
  • [ ] Z MolFromSmiles preverim vsak NASMEH, ki ga poda AI.
  • [ ] SMILES pred primerjavo kanoniziram.
  • [ ] Molekularno maso in formulo dobivam iz RDKit, ne iz jezikovnega modela.
  • [ ] Identiteto molekule v bazi podatkov potrdim z InChIKey.
  • [ ] Poznam situacije, kjer je stereokemija pomembna.