Unitate 2 / 11

Reprezentare moleculară și structură chimică: validare cu SMILES, InChI și RDKit

Câștiguri:

  • Abilitatea de a identifica molecule nu după nume, ci prin reprezentarea structurii (SMILES cu oameni, InChI/InChIKey cu baza de date)
  • Abilitatea de a detecta structuri invalide sau incorecte prin analizarea, validarea și canonizarea fiecărui SMILES oferit de inteligența artificială cu RDKit
  • A fi capabil să înțeleagă că cantitățile deterministe precum greutatea moleculară și formula ar trebui obținute din instrumentul bazat pe reguli, nu din modelul de limbaj.

Prima condiție pentru utilizarea în siguranță a AI în chimie este să scrieți molecula într-un limbaj pe care atât mașina, cât și omul o pot înțelege. Spui „fenol”, AI înțelege bine; dar cand spui "acid" sunt mii de posibilitati. Numele sunt ambigue; reprezentările structurii sunt precise. În această unitate, vom învăța cele două notații de bază care traduc molecula în text (SMILES și InChI) și instrumentul care le verifică determinist (RDKit). Scopul nostru: să oferim molecula AI într-un mod pe care nu îl va înțelege niciodată greșit și să confirmăm structura produsă de AI cu un instrument.

Ce este SMILES?

SMILES (Sistem de intrare în linie de intrare moleculară simplificat) este un format de scriere a unei molecule într-o singură linie de text. Atomii sunt reprezentați prin litere, legăturile prin simboluri și inelele prin numere. Exemple:

  • Etanol: CCO (carbon–carbon–oxigen; hidrogeni implicit).
  • Benzen: c1ccccc1 („c” minuscul indică carbon aromatic; 1 închide inelul).
  • Aspirina: CC(=O)Oc1ccccc1C(=O)O.
  • Cofeină: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Puterea SMILES este că poartă întreaga structură de legături într-o singură linie; Punctul său slab este că aceeași moleculă poate avea mai multe Zâmbete valide (aceasta se numește non-canonicitate). Vom rezolva acest lucru cu RDKit într-un moment.

Sugestie: „Zâmbetele canonice” pentru o moleculă este ortografia standard unică pentru acea moleculă. Pentru a vedea dacă două SMILES sunt aceeași moleculă, canonizează-le și compară-le; Ele nu ar trebui să fie egale din punct de vedere textual, dar ar trebui să fie molecule egale.

Ce este InChI?

InChI (International Chemical Identifier) ​​este un identificator standard dezvoltat de IUPAC. Diferența față de SMILES este că aceeași moleculă dă întotdeauna același InChI; adică este de natură canonică. Este lung și greu de citit, dar este ideal pentru potrivirea bazelor de date. Pentru căutare se folosește prescurtarea „InChIKey” (rezumat de 27 de caractere).

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Regula: Oamenii vorbesc SMILES (citesc), mașinile și bazele de date se potrivesc cu InChI/InChIKey (exact). Oferă Zâmbete AI; Confirmați în baza de date cu InChiKey.

RDKit: motor de verificare deterministă

RDKit este o bibliotecă open source de chimiformică. Spre deosebire de modelul de limbaj, acesta este bazat pe reguli: analizează SMILES, calculează greutatea moleculară, generează SMILES canonice, returnează InChI/InChIKey, desenează molecula. Așa că RDKit „calculează” ceea ce „prevestește” AI. Aceasta este inima fluxului de lucru: AI generează, RDKit verifică.

Un flux de verificare de bază:

de la rdkit import Chemfrom rdkit.Chem import Descriptori, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Formula moleculară:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("MolecularWweight(Descriptor), round(W2):", . "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Dacă MolFromSmiles returnează None, AI v-a dat o moleculă invalidă; Numai acesta este un avertisment foarte valoros. Dacă este valid, nu mai trebuie să întrebați modelul de limbă pentru greutatea moleculară; Este în mâinile tale în mod determinist.

Pas cu pas: interoperare AI + RDKit

  1. Identificați molecula: dați numele IA, cereți Zâmbete. De exemplu, „verificați zâmbetele canonice pentru paracetamol”.
  2. Verificați: analizați SMILES primite cu MolFromSmiles. Dacă nu există, respingeți.
  3. Canonicalize: Preluați ortografia canonică cu MolToSmiles; Utilizați întotdeauna acest lucru de acum înainte.
  4. Calculați numere: obțineți greutatea moleculară, formula, numărul de inele, numărul de donatori/acceptori de legături de hidrogen etc. de la RDKit, nu de la AI.
  5. Fix ID: Generați InChIKey, căutați în baza de date (PubChem), confirmați că molecula este într-adevăr compusul dorit.

Patru șabloane copiabile

1) Solicitarea SMILES (de la substantiv la structură):

Sarcină: Oferiți zâmbetele canonice pentru următorul compus. Compus: paracetamol (acetaminofen). Regula: Dați doar șirul SMILES și InChIKey, nu adăugați alte explicații. Dacă nu sunteți sigur, scrieți „NESICUR”, nu vă împăcați.

2) Cerere de validare SMILES (de la structură la control):

Examinați SMILES de mai jos: CC(=O)Nc1ccc(O)cc1Întrebări:1) Este acesta un SMILES valid?2) Cu ce compus îi corespunde (numele comun)?3) Care este formula moleculară?Notă: voi calcula greutatea moleculară exactă cu RDKit; Îți dai doar interpretarea structurii.

3) Compararea a două reprezentări:

Am două zâmbete: A) OCCB) CCOTarsk: Sunt aceleași molecule sau diferite? Scrieți raționamentul dvs. Notă: voi verifica răspunsul dvs. canonizând-l în RDKit.

4) Explicația structurii (în scopuri de învățare):

ZÂMBETE: Cn1cnc2c1c(=O)n(C)c(=O)n2CT Sarcină: Citiți acest Zâmbet bucată cu bucată și explicați ce înseamnă fiecare simbol (atom, legătură, inel, aromaticitate) în limba turcă simplă. Spuneți și ce compus este.

Prompt slab / Prompt puternic

slab:

Dați proprietățile acetaminofenului.

„Feature” este vag; AI generează numere aleatorii de la greutatea moleculară la punctul de topire, dintre care unele vor fi greșite.

Puternic:

Compus: acetaminofen.1) Canonical SMILES și InChIKey ver.2) Dați formula moleculară.Regulă: NU DAȚI valori NUMERICE precum greutatea moleculară, punctul de topire etc.; Le voi obține cu RDKit/PubChem. Doar dați ID-ul de construcție.

Diferență: Am îndreptat AI spre ceea ce este puternic (identitatea structurii) și departe de ceea ce este slab (numerele experimentale).

Compararea impresiilor

caracteristică

Zâmbește

InChI / InChIKey

Lizibilitate

Ridicat (prietenos cu oamenii)

Scăzut (compatibil cu mașinile)

canonicitatea

Sub rezerva modificărilor (necesită canonizare)

în mod natural singur

Utilizare

comunicare umană, desen, intrare

Potrivirea bazei de date, identitate

stereochimie

Suportă (@ simboluri)

Suporturi (stratificate)

pentru a da AI

ideal

Ideal pentru confirmare

mini carcase

Cazul 1 – Două nume, o moleculă. Un student a crezut că „N-acetil-para-aminofenol” și „paracetamol” sunt compuși diferiți și a planificat două experimente separate. Când și-au canonizat SMILES în RDKit, ambii s-au dovedit a fi CC(=O)Nc1ccc(O)cc1; Era aceeași moleculă. Pierdut: o jumătate de zi de planificare; câștig: ar fi putut fi evitat cu o verificare de canonizare de 2 minute.

Cazul 2 — Captură SMILES nevalidă. AI-ul a returnat CC(=O)Nc1ccc(O)cc1C( pentru o variantă (paranteze neînchise). Studentul a rulat MolFromSmiles, a returnat None, a văzut imediat eroarea și a cerut SMILES corectate. Fără verificare, structura defectuoasă s-ar fi răspândit la toate conturile.

Cazul 3 – Greutate moleculară incorectă. YZ a spus „greutate moleculară 214,3 g/mol” pentru ibuprofen (C13H18O2). Calculul RDKit a dat 206,28 g/mol. Diferența pentru 0,1 mol: 21,43 g cu YZ, de fapt 20,63 g. Această diferență de 3,9% ar perturba stoichiometria și calculul randamentului. A adus calculul determinist.

Greșeli comune

  • Dând moleculei după nume. Sinonime/numele comerciale sunt confuze. Includeți întotdeauna SMILES sau InChI.
  • Comparând SMILES fără a-l canoniza. OCC și CCO sunt diferite în text, dar la fel în molecule.
  • Întrebarea masei moleculare modelului limbii. Acesta este un calcul determinist; Se face din RDKit sau manual din formula.
  • Nu observăm Zâmbete nevalide. Nu se verifică returnarea MolFromSmiles Nici unul și se continuă cu structura greșită.
  • Neglijând stereochimia. Cei doi enantiomeri (izomeri de imagine în oglindă) pot prezenta efecte biologice diferite; Se omite semnele @/@@ în SMILES.
Atenție: aceeași formulă moleculară nu înseamnă molecule diferite. C2H6O este atât etanol (CCO) cât și dimetil eter (COC). Egalitatea de formulă nu este egalitate de identitate; Utilizați InChiKey pentru identificare.

Pe scurt

  • Identificați moleculele după notația structurii, nu după nume: SMILES cu uman, InChI/InChIKey cu baza de date.
  • RDKit este determinist; AI prezice, RDKit calculează și verifică.
  • Analizați fiecare AI SMILES cu MolFromSmiles și verificați pentru Niciunul, apoi canonizați.
  • Obțineți numere precum greutatea moleculară și formula din RDKit, nu din modelul de limbă.
  • Egalitatea formulelor nu înseamnă identitate moleculară; Utilizați InChiKey pentru identificare.

Sarcina de aplicare

Alegeți trei compuși (de exemplu, cofeină, ibuprofen, glicină). Cereți AI-ului pentru zâmbete canonice pentru fiecare. Apoi scrieți un script RDKit (utilizați șablonul de mai sus) și generați: zâmbete canonice, formulă moleculară, greutate moleculară, InChIKey. Câte dintre Zâmbetele date de AI au fost valabile? Dacă YZ a dat și greutatea moleculară, calculați diferența ca procent cu valoarea RDKit. Puneți-vă rezultatele într-un tabel mic.

lista de verificare

  • [ ] Știu ce sunt SMILES și InChI/InChIKey și când să le folosesc.
  • [ ] Verific fiecare SMILES oferit de AI cu MolFromSmiles.
  • [ ] Canonizez SMILES înainte de a le compara.
  • [ ] Obțin greutatea moleculară și formula de la RDKit, nu de la modelul de limbaj.
  • [ ] Confirm identitatea moleculei din baza de date cu InChIKey.
  • [ ] Cunosc situații în care stereochimia este importantă.