Jedinica 2 / 11

Molekularni prikaz i kemijska struktura: Validacija sa SMILES, InChI i RDKit

Dobici:

  • Sposobnost identificiranja molekula ne po imenu, već po strukturi (SMILES s ljudima, InChI/InChIKey s bazom podataka)
  • Sposobnost otkrivanja nevažećih ili netočnih struktura raščlanjivanjem, potvrđivanjem i kanoniziranjem svakog SMILES-a koji daje umjetna inteligencija s RDKit-om
  • Biti u stanju razumjeti da se determinističke veličine kao što su molekularna težina i formula trebaju dobiti iz alata temeljenog na pravilima, a ne iz jezičnog modela.

Prvi uvjet za sigurno korištenje umjetne inteligencije u kemiji je pisanje molekule jezikom koji razumiju i stroj i čovjek. Kažete "fenol", AI je dobro shvatio; ali kad kažete "kiselina" postoje tisuće mogućnosti. Imena su dvosmislena; prikazi strukture su precizni. U ovoj jedinici naučit ćemo dvije osnovne notacije koje prevode molekulu u tekst (SMILES i InChI) i alat koji ih deterministički provjerava (RDKit). Naš cilj: dati molekulu umjetnoj inteligenciji na način koji nikada neće krivo razumjeti i potvrditi strukturu koju proizvodi umjetna inteligencija pomoću alata.

Što je SMILES?

SMILES (Simplified Molecular-Input Line-Entry System) je format pisanja molekule u jednom retku teksta. Atomi su predstavljeni slovima, veze simbolima, a prstenovi brojevima. Primjeri:

  • Etanol: CCO (ugljik–ugljik–kisik; vodik implicitno).
  • Benzen: c1ccccc1 (malo slovo "c" označava aromatski ugljik; 1 zatvaraju prsten).
  • Aspirin: CC(=O)Oc1ccccc1C(=O)O.
  • Kofein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Snaga SMILES-a je u tome što nosi cijelu strukturu veze u jednom retku; Njegova slabost je što ista molekula može imati više valjanih SMILES-a (to se zove nekanoničnost). Ovo ćemo riješiti s RDKitom za koji trenutak.

Savjet: "Kanonski SMILES" za molekulu je jedan, standardni način pisanja za tu molekulu. Da biste vidjeli jesu li dva SMILESa ista molekula, kanonizirajte ih i usporedite; Ne bi smjele biti jednake tekstualno, ali bi trebale biti jednake molekule.

Što je InChI?

InChI (International Chemical Identifier) ​​je standardni identifikator koji je razvio IUPAC. Razlika od SMILES-a je u tome što ista molekula uvijek daje isti InChI; odnosno kanonske je naravi. Dug je i težak za čitanje, ali je idealan za uparivanje baze podataka. Za pretraživanje se koristi skraćeni "InChIKey" (sažetak od 27 znakova).

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Pravilo: Ljudi govore SMILE (čitaj), strojevi i baze podataka odgovaraju InChI/InChIKey (točno). Dajte SMIJEŠKE AI; Potvrdite u bazi podataka pomoću InChIKeya.

RDKit: deterministički mehanizam za provjeru

RDKit je kemoinformatička biblioteka otvorenog koda. Za razliku od jezičnog modela, temelji se na pravilima: analizira SMILES, izračunava molekularnu težinu, generira kanonske SMILES, vraća InChI/InChIKey, crta molekulu. Tako RDKit "izračunava" ono što AI "predviđa". Ovo je srce tijeka rada: AI generira, RDKit provjerava.

Osnovni tok provjere:

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

Ako MolFromSmiles vrati None, AI vam je dao nevažeću molekulu; Već samo ovo je vrlo vrijedno upozorenje. Ako je valjano, više ne morate tražiti molekularnu težinu od jezičnog modela; To je deterministički u vašim rukama.

Korak po korak: AI + RDKit međuoperacija

  1. Identificirajte molekulu: Dajte umjetnoj inteligenciji ime, tražite SMIJEŠKE. Na primjer, "provjeri kanonske SMILES za paracetamol."
  2. Provjerite: analizirajte dolazne SMILES s MolFromSmiles. Ako nema, odbaciti.
  3. Canonicalize: Dohvatite kanonski pravopis uz MolToSmiles; Uvijek ovo koristite od sada.
  4. Izračunajte brojeve: Uzmite molekularnu težinu, formulu, broj prstenova, broj donora/akceptora vodikove veze itd. iz RDKit-a, ne iz AI-ja.
  5. ID popravka: Generirajte InChIKey, potražite u bazi podataka (PubChem), potvrdite da je molekula doista spoj koji želite.

Četiri predloška za kopiranje

1) Traženje OSMIJEHA (od imenice do strukture):

Zadatak: Navedite kanonske SMILOVE za sljedeći spoj. Spoj: paracetamol (acetaminofen). Pravilo: Dajte samo niz SMILES i InChIKey, nemojte dodavati daljnja objašnjenja. Ako niste sigurni, napišite "NISIGURNI", nemojte izmišljati.

2) SMILES zahtjev za provjeru valjanosti (od strukture do kontrole):

Pregledajte SMILES u nastavku: CC(=O)Nc1ccc(O)cc1Pitanja:1) Je li ovo važeći SMILES?2) Kojem spoju odgovara (uobičajeno ime)?3) Koja je molekularna formula? Napomena: izračunat ću točnu molekularnu težinu pomoću RDKita; Vi samo dajte svoju interpretaciju strukture.

3) Usporedba dva prikaza:

Imam dva SMILESA:A) OCCB) CCOTask: Jesu li to iste molekule ili različite? Napišite svoje obrazloženje. Napomena: unakrsno ću provjeriti vaš odgovor tako što ću ga kanonizirati u RDKitu.

4) Objašnjenje strukture (u svrhu učenja):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Pročitajte ovaj SMILES dio po dio i objasnite što svaki simbol znači (atom, veza, prsten, aromatičnost) na čistom turskom. Recite i koji je to spoj.

Slab upit / Jak upit

Slabo:

Navedite svojstva acetaminofena.

"Značajka" je nejasna; AI generira nasumične brojeve od molekularne težine do tališta, od kojih će neki biti pogrešni.

Jako:

Spoj: acetaminophen.1) Canonical SMILES i InChIKey ver.2) Navedite molekularnu formulu. Pravilo: NEMOJTE DAVATI NUMERIČKE vrijednosti kao što su molekularna težina, točka taljenja itd.; Dobit ću ih s RDKit/PubChem. Samo dajte ID izrade.

Razlika: Usmjerili smo AI prema onome u čemu je jak (identitet strukture) i dalje od onoga u čemu je slab (eksperimentalni brojevi).

Usporedba dojmova

značajka

OSMJESI SE

InChI / InChIKey

Čitljivost

Visoko (ljubazan prema ljudima)

Nizak (pogodan za stroj)

kanoničnost

Podložno promjenama (potrebna kanonizacija)

prirodno samac

Korištenje

ljudska komunikacija, crtanje, unos

Podudaranje baze podataka, identitet

stereokemija

Podržava (simboli @)

Nosači (slojeviti)

dati AI

idealno

Idealno za krizmu

mini kućišta

Slučaj 1 — Dva imena, jedna molekula. Student je mislio da su "N-acetil-para-aminofenol" i "paracetamol" različiti spojevi i planirao je dva odvojena eksperimenta. Kada su njihove SMILESe kanonizirali u RDKit-u, pokazalo se da su obojica CC(=O)Nc1ccc(O)cc1; Bila je to ista molekula. Izgubljeno: pola dana planiranja; dobitak: mogao se izbjeći 2-minutnom provjerom kanonikalizacije.

Slučaj 2 — Nevažeće snimanje SMILES-a. AI je vratio CC(=O)Nc1ccc(O)cc1C( za varijantu (zagrade nisu zatvorene). Student je pokrenuo MolFromSmiles, vratio je None, odmah vidio pogrešku i zatražio ispravljene SMILES. Bez provjere, pogrešna struktura bi se proširila na sve račune.

Slučaj 3 — netočna molekularna težina. YZ je rekao "molekularna težina 214,3 g/mol" za ibuprofen (C13H18O2). Izračun RDKit dao je 206,28 g/mol. Razlika za 0,1 mol: 21,43 g s YZ, zapravo 20,63 g. Ova razlika od 3,9% poremetila bi stehiometriju i izračun prinosa. Donijela je deterministički račun.

Uobičajene greške

  • Navođenje molekule imenom. Sinonimi/trgovački nazivi su zbunjeni. Uvijek uključite SMILES ili InChI.
  • Uspoređujući SMILES bez kanonizacije. OCC i CCO su različiti u tekstu, ali isti u molekulama.
  • Zadavanje molekularne težine modelu jezika. Ovo je deterministički izračun; To se radi iz RDKit-a ili ručno iz formule.
  • Ne primjećujući nevažeće SMILES. Ne provjerava povrat MolFromSmiles None i nastavlja s pogrešnom strukturom.
  • Zanemarujući stereokemiju. Dva enantiomera (izomeri u zrcalu) mogu pokazivati ​​različite biološke učinke; Preskakanje znakova @/@@ u SMILES.
Pažnja: ista molekularna formula ne znači različite molekule. C2H6O je i etanol (CCO) i dimetil eter (COC). Jednakost formule nije jednakost identiteta; Koristite InChIKey za identifikaciju.

Ukratko

  • Identificirajte molekule zapisom strukture, a ne imenom: SMILES s ljudskim, InChI/InChIKey s bazom podataka.
  • RDKit je deterministički; AI predviđa, RDKit izračunava i provjerava.
  • Raščlanite svaki AI SMILES s MolFromSmiles i provjerite postoji li None, a zatim kanonikalizirajte.
  • Dobijte brojeve kao što su molekularna težina i formula iz RDKita, a ne iz jezičnog modela.
  • Formula jednakosti ne znači molekularni identitet; Koristite InChIKey za identifikaciju.

Zadatak aplikacije

Odaberite tri spoja (npr. kofein, ibuprofen, glicin). Zamolite AI za kanonske SMILES za svakog. Zatim napišite RDKit skriptu (koristite gornji predložak) i generirajte: kanonske SMILES, molekularnu formulu, molekularnu težinu, InChIKey. Koliko je SMILES-ova koje je dala AI bilo valjanih? Ako je YZ također dao molekularnu težinu, izračunajte razliku kao postotak s RDKit vrijednošću. Ucrtajte svoje nalaze u malu tablicu.

popis za provjeru

  • [ ] Znam što su SMILES i InChI/InChIKey i kada ih koristiti.
  • [ ] Potvrđujem svaki SMILES koji daje AI s MolFromSmiles.
  • [ ] Kanoniziram SMILES prije nego što ih usporedim.
  • [ ] Dobivam molekularnu težinu i formulu iz RDKita, ne iz jezičnog modela.
  • [ ] Potvrđujem identitet molekule u bazi podataka pomoću InChIKeya.
  • [ ] Znam situacije u kojima je stereokemija važna.