Dobici:
- Sposobnost identifikacije molekula ne po imenu, već po strukturi (SMILES sa ljudima, InChI/InChIKey sa bazom podataka)
- Sposobnost otkrivanja nevažećih ili netačnih struktura raščlanjivanjem, provjerom valjanosti i kanonikalizacijom svakog SMILES-a koji je dala umjetna inteligencija sa RDKit-om
- Biti u stanju razumjeti da determinističke veličine kao što su molekularna težina i formula treba dobiti iz alata zasnovanog na pravilima, a ne iz jezičkog modela.
Prvi uslov za bezbedno korišćenje veštačke inteligencije u hemiji je pisanje molekula na jeziku koji i mašina i čovek mogu da razumeju. Kažete "fenol", AI to dobro razume; ali kada kažete "kiselina" postoje hiljade mogućnosti. Imena su dvosmislena; strukture su precizne. U ovoj cjelini naučit ćemo dvije osnovne oznake koje prevode molekul u tekst (SMILES i InChI) i alat koji ih deterministički provjerava (RDKit). Naš cilj: dati molekul AI na način koji nikada neće pogrešno razumjeti i potvrditi strukturu koju proizvodi AI pomoću alata.
Šta je SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) je format pisanja molekula u jednom redu teksta. Atomi su predstavljeni slovima, veze simbolima, a prstenovi brojevima. primjeri:
- Etanol: CCO (ugljik–ugljik–kiseonik; vodonici implicitno).
- Benzen: c1ccccc1 (malo "c" označava aromatični ugljenik; 1 zatvara 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 jednoj liniji; Njegova slabost je u tome što isti molekul može imati višestruke validne SMILES (ovo se zove nekanoničnost). Za trenutak ćemo to riješiti pomoću RDKit-a.
Nagoveštaj: "Kanonski OSMEH" za molekul je jedinstven, standardni pravopis za taj molekul. Da vidite da li su dva SMILE-a isti molekul, kanonikalizirajte ih i uporedite ih; Oni ne bi trebali biti jednaki tekstualno, ali bi trebali biti jednaki molekuli.
Šta je InChI?
InChI (International Chemical Identifier) je standardni identifikator koji je razvio IUPAC. Razlika od SMILES-a je u tome što isti molekul uvijek daje isti InChI; odnosno kanonske je prirode. 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 SMILES (čitaj), mašine i baze podataka odgovaraju InChI/InChIKey (tačno). Dajte SMILES AI; Potvrdite u bazi podataka pomoću InChIKey.
RDKit: deterministički mehanizam za verifikaciju
RDKit je biblioteka heminformatike otvorenog koda. Za razliku od jezičkog modela, on je baziran na pravilima: analizira SMILES, izračunava molekularnu težinu, generiše kanonske SMILES, vraća InChI/InChIKey, crta molekul. Dakle, RDKit "izračunava" ono što AI "predviđa". Ovo je srce toka posla: AI generiše, RDKit verifikuje.
Osnovni tok verifikacije:
from rdkit import Chemfrom rdkit.Chem import Deskriptori, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molekularna formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) težina print:(", round(Descriptors.MolWt(mol), 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))
Ako MolFromSmiles vrati None, AI vam je dao nevažeći molekul; Samo ovo je veoma vrijedno upozorenje. Ako je validan, više ne morate pitati model jezika za molekularnu težinu; To je deterministički u vašim rukama.
Korak po korak: AI + RDKit interoperacija
- Identifikujte molekul: dajte AI ime, zatražite SMILES. Na primjer, "provjeri kanonske SMILES za paracetamol."
- Potvrdite: raščlanite dolazne OSMEŠKE sa MolFromSmiles. Ako nema, odbijte.
- Canonicalize: Preuzmi kanonski pravopis sa MolToSmiles; Uvijek koristite ovo od sada.
- Izračunajte brojeve: Dobijte molekularnu težinu, formulu, broj prstenova, broj donora/akceptora vodonične veze itd. od RDKit-a, a ne od AI.
- ID popravke: Generirajte InChIKey, pretražite u bazi podataka (PubChem), potvrdite da je molekul zaista jedinjenje koje želite.
Četiri šablona za kopiranje
1) Zahtjev za SMILES (od imenice do strukture):
Zadatak: Dajte kanonske SMILES za sljedeću složenicu. Jedinjenje: paracetamol (acetaminofen). Pravilo: Dajte samo SMILES string i InChIKey, nemojte dodavati dalje objašnjenje. Ako niste sigurni, napišite "NESIGURNO", nemojte se izmišljati.
2) SMILES zahtjev za validaciju (od strukture do kontrole):
Ispitajte SMILES u nastavku: CC(=O)Nc1ccc(O)cc1Pitanja:1) Da li je ovo validan SMILES?2) Kojem jedinjenju odgovara (uobičajeni naziv)?3) Koja je molekulska formula? Napomena: Izračunaću tačnu molekulsku težinu sa RDKit-om; Vi samo dajte svoju interpretaciju strukture.
3) Poređenje dva prikaza:
Imam dva SMILE:A) OCCB) CCOTask: Da li su ovo isti molekuli ili različiti? Napišite svoje obrazloženje. Napomena: Unakrsno ću provjeriti vaš odgovor tako što ću ga kanonikalizirati u RDKit-u.
4) Objašnjenje strukture (u svrhu učenja):
OSMESI: Cn1cnc2c1c(=O)n(C)c(=O)n2CTZadatak: Pročitajte ovaj SMILES deo po deo i objasnite šta svaki simbol znači (atom, veza, prsten, aromatičnost) na čistom turskom. Također recite o kojoj je smjesi riječ.
Slaba prompt / Jaka prompt
slaba:
Navedite svojstva acetaminofena.
"Funkcija" je nejasna; AI generiše nasumične brojeve od molekularne težine do tačke topljenja, od kojih će neki biti pogrešni.
Jaka:
Jedinjenje: acetaminofen.1) Canonical SMILES i InChIKey ver.2) Navedite molekularnu formulu.Pravilo: NEMOJTE DAVATI NUMERIČKE vrijednosti kao što su molekulska težina, tačka topljenja, itd.; Dobit ću ih sa RDKit/PubChem-om. Samo dajte ID izgradnje.
Razlika: Usmjerili smo AI prema onome u čemu je jak (identitet strukture) i dalje od onoga u čemu je slab (eksperimentalni brojevi).
Poređenje utisaka
karakteristika
SMILES
InChI / InChIKey
Čitljivost
Visoko (prijateljski prema ljudima)
Nisko (pogodno za mašinu)
kanoničnost
Podložno promjenama (potrebna je kanonizacija)
prirodno samac
Upotreba
ljudska komunikacija, crtanje, unos
Podudaranje baze podataka, identitet
stereohemija
Podržava (@ simbole)
Nosači (slojeviti)
dati AI
idealan
Idealno za potvrdu
mini koferi
Slučaj 1 — Dva imena, jedan molekul. Student je mislio da su "N-acetil-para-aminofenol" i "paracetamol" različita jedinjenja i planirao je dva odvojena eksperimenta. Kada su kanonizovali svoje SMILES u RDKit-u, ispostavilo se da su oboje CC(=O)Nc1ccc(O)cc1; Bio je to isti molekul. Izgubljeno: pola dana planiranja; dobitak: mogao se izbjeći 2-minutnom provjerom kanonizacije.
Slučaj 2 — Nevažeće snimanje SMILES. AI je vratio CC(=O)Nc1ccc(O)cc1C( za varijantu (zagrade nisu zatvorene). Učenik je pokrenuo MolFromSmiles, vratio je None, odmah vidio grešku i zatražio ispravljene SMILES. Bez verifikacije, neispravna struktura bi se proširila na sve račune.
Slučaj 3 — Netačna molekulska težina. YZ je rekao "molekularna težina 214,3 g/mol" za ibuprofen (C13H18O2). RDKit proračun je dao 206,28 g/mol. Razlika za 0,1 mol: 21,43 g sa YZ, zapravo 20,63 g. Ova razlika od 3,9% bi poremetila stehiometriju i proračun prinosa. To je donijelo deterministički račun.
Uobičajene greške
- Davanje molekula po imenu. Sinonimi/trgovački nazivi su zbunjeni. Uvijek uključite SMILES ili InChI.
- Poređenje SMILES-a bez kanonizacije. OCC i CCO su različiti u tekstu, ali isti u molekulama.
- Pitati molekularnu težinu modelu jezika. Ovo je deterministički proračun; Radi se iz RDKit-a ili ručno iz formule.
- Ne primjećujete nevažeće SMILES. Ne provjeravamo povratak MolFromSmiles None i nastavljamo s pogrešnom strukturom.
- Zanemarivanje stereohemije. Dva enantiomera (izomera u ogledalu) mogu pokazati različite biološke efekte; Preskakanje znakova @/@@ u OSMESI.
Pažnja: Ista molekulska formula ne znači različite molekule. C2H6O je i etanol (CCO) i dimetil etar (COC). Jednakost formule nije jednakost identiteta; Koristite InChIKey za identifikaciju.
Ukratko
- Identifikujte molekule po strukturnoj notaciji, a ne po imenu: SMILES sa ljudskim, InChI/InChIKey sa bazom podataka.
- RDKit je deterministički; AI predviđa, RDKit izračunava i provjerava.
- Analizirajte svaki AI SMILES sa MolFromSmiles i provjerite da nema None, a zatim kanonikalizirajte.
- Dobijte brojeve kao što su molekularna težina i formula iz RDKit-a, a ne iz jezičkog modela.
- Jednakost formule ne znači molekularni identitet; Koristite InChIKey za identifikaciju.
Zadatak aplikacije
Odaberite tri spoja (npr. kofein, ibuprofen, glicin). Zatražite od AI kanonske SMILES za svaki. Zatim napišite RDKit skript (koristite gornji predložak) i generirajte: kanonske SMILES, molekularnu formulu, molekulsku težinu, InChIKey. Koliko je OSMESOVA koje je dala AI bila validna? Ako je YZ dao i molekularnu težinu, izračunajte razliku kao postotak sa RDKit vrijednošću. Ucrtajte svoje nalaze u malu tabelu.
kontrolna lista
- [ ] Znam šta su SMILES i InChI/InChIKey i kada ih koristiti.
- [ ] Provjeravam svaki OSMEH koji daje AI sa MolFromSmiles.
- [ ] Kanoniziram SMILES prije nego ih uporedim.
- [ ] Molekularnu težinu i formulu dobijam iz RDKit-a, ne iz jezičkog modela.
- [ ] Potvrđujem identitet molekula u bazi podataka sa InChIKey.
- [ ] Znam situacije u kojima je stereohemija važna.