Vinster:
- Förmåga att identifiera molekyler inte med namn utan genom strukturrepresentation (LENER med människor, InChI/InChIKey med databas)
- Möjlighet att upptäcka ogiltiga eller felaktiga strukturer genom att analysera, validera och kanonisera varje SMILES som ges av artificiell intelligens med RDKit
- Att kunna förstå att deterministiska storheter som molekylvikt och formel ska erhållas från det regelbaserade verktyget, inte från språkmodellen.
Det första villkoret för att använda AI på ett säkert sätt i kemi är att skriva molekylen på ett språk som både maskinen och människan kan förstå. Du säger "fenol", AI stämmer; men när man säger "syra" finns det tusentals möjligheter. Namnen är tvetydiga; strukturrepresentationer är exakta. I den här enheten kommer vi att lära oss de två grundläggande notationerna som översätter molekylen till text (SMILES och InChI) och verktyget som verifierar dem deterministiskt (RDKit). Vårt mål: att ge molekylen till AI på ett sätt som den aldrig kommer att missförstå, och att bekräfta strukturen som produceras av AI med ett verktyg.
Vad är SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) är ett format för att skriva en molekyl i en enda textrad. Atomer representeras av bokstäver, bindningar av symboler och ringar av siffror. Exempel:
- Etanol: CCO (kol–kol–syre; väte implicit).
- Bensen: c1ccccc1 (gement "c" indikerar aromatiskt kol; 1 stänger ringen).
- Aspirin: CC(=O)Oc1ccccc1C(=O)O.
- Koffein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Styrkan med SMILES är att den bär hela länkstrukturen på en enda rad; Dess svaghet är att samma molekyl kan ha flera giltiga SMILES (detta kallas icke-kanoniskhet). Vi kommer att lösa detta med RDKit på ett ögonblick.
Tips: Det "kanoniska SMILES" för en molekyl är den enda standardstavningen för den molekylen. För att se om två SMILES är samma molekyl, kanonisera och jämför dem; De ska inte vara lika textmässigt, men de ska vara lika molekyler.
Vad är InChI?
InChI (International Chemical Identifier) är en standardidentifierare utvecklad av IUPAC. Skillnaden mot SMILES är att samma molekyl alltid ger samma InChI; det vill säga det är kanoniskt till sin natur. Den är lång och svår att läsa, men är idealisk för databasmatchning. Den förkortade "InChIKey" (27-teckens sammanfattning) används för sökning.
- Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Regel: Människor talar SMILES (läs), maskiner och databaser matchar InChI/InChIKey (exakt). Ge SMILES till AI:n; Bekräfta i databasen med InChIKey.
RDKit: deterministisk verifieringsmotor
RDKit är ett keminformatikbibliotek med öppen källkod. Till skillnad från språkmodellen är den regelbaserad: analyserar SMILES, beräknar molekylvikt, genererar kanoniska SMILES, returnerar InChI/InChIKey, ritar molekylen. Så RDKit "beräknar" vad AI:n "förutspår". Detta är hjärtat i arbetsflödet: AI genererar, RDKit verifierar.
Ett grundläggande verifieringsflöde:
från rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molecular Descriptors:),.ol. "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))
Om MolFromSmiles returnerar None, har AI:n gett dig en ogiltig molekyl; Bara detta är en mycket värdefull varning. Om giltigt behöver du inte längre fråga språkmodellen om molekylvikten; Det ligger deterministiskt i dina händer.
Steg för steg: AI + RDKit-interoperation
- Identifiera molekylen: Ge AI namnet, fråga efter SMILES. Till exempel, "verifiera kanoniska SMILES för paracetamol."
- Verifiera: Analysera inkommande SMILES med MolFromSmiles. Om ingen, avvisa.
- Canonicalize: Hämta kanonisk stavning med MolToSmiles; Använd alltid detta från och med nu.
- Beräkna tal: Få molekylvikt, formel, antal ringar, antal vätebindningsdonatorer/acceptorer etc. från RDKit, inte från AI.
- Fix ID: Generera InChIKey, sök i databasen (PubChem), bekräfta att molekylen verkligen är den förening du vill ha.
Fyra kopierbara mallar
1) Begär SMILES (från substantiv till struktur):
Uppgift: Ge det kanoniska SMILES för följande förening. Förening: paracetamol (acetaminophen). Regel: Ge bara SMILES-strängen och InChIKey, lägg inte till någon ytterligare förklaring. Om du är osäker, skriv "OSÄKER", gör inte upp.
2) SMILES valideringsbegäran (från struktur till kontroll):
Undersök SMILES nedan: CC(=O)Nc1ccc(O)cc1Frågor:1) Är detta ett giltigt SMILES?2) Vilken förening motsvarar det (vanligt namn)?3) Vad är molekylformeln?Obs: Jag kommer att beräkna den exakta molekylvikten med RDKit; Du ger bara din strukturtolkning.
3) Jämför två representationer:
Jag har två LEENDE:A) OCCB) CCOuppgift: Är dessa samma molekyl eller olika? Skriv ditt resonemang. Notera: Jag kommer att dubbelkontrollera ditt svar genom att kanonisera det i RDKit.
4) Strukturförklaring (i inlärningssyfte):
SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTUppgift: Läs detta LEENDE bit för bit och förklara vad varje symbol betyder (atom, bindning, ring, aromaticitet) på vanlig turkiska. Berätta också vilken förening det är.
Svag prompt / Stark prompt
Svag:
Ge paracetamolens egenskaper.
"Funktionen" är vag; AI genererar slumpmässiga tal från molekylvikt till smältpunkt, av vilka några kommer att vara fel.
Stark:
Förening: paracetamol.1) Canonical SMILES och InChIKey ver.2) Ange molekylformeln.Regel: GE INTE NUMERISKA värden som molekylvikt, smältpunkt, etc.; Jag kommer att få dem med RDKit/PubChem. Ge bara bygg-ID.
Skillnad: Vi riktade AI:n mot vad den är stark på (strukturidentitet) och bort från vad den är svag för (experimentella siffror).
Jämförelse av intryck
funktion
LEDER
InChI / InChIKey
Läsbarhet
Hög (människovänlig)
Låg (maskinvänlig)
kanonitet
Med reservation för ändringar (behöver kanonisering)
naturligt singel
Användning
mänsklig kommunikation, teckning, input
Databasmatchning, identitet
stereokemi
Stöder (@-symboler)
Stöd (lager)
att ge till AI
idealiskt
Perfekt för konfirmation
minifodral
Fall 1 — Två namn, en molekyl. En elev trodde att "N-acetyl-para-aminofenol" och "paracetamol" var olika föreningar och planerade två separata experiment. När de kanoniserade sina SMILES i RDKit visade sig de båda vara CC(=O)Nc1ccc(O)cc1; Det var samma molekyl. Förlorat: en halv dags planering; vinst: kunde ha undvikits med en 2-minuters kanoniseringskontroll.
Fall 2 — Ogiltig SMILES-fångst. AI:n returnerade CC(=O)Nc1ccc(O)cc1C( för en variant (parenteser ej stängda). Eleven körde MolFromSmiles, den returnerade Inget, såg omedelbart felet och begärde korrigerade SMILES. Utan verifiering skulle den felaktiga strukturen ha spridit sig till alla konton.
Fall 3 — Felaktig molekylvikt. YZ sa "molekylvikt 214,3 g/mol" för ibuprofen (C13H18O2). RDKit-beräkningen gav 206,28 g/mol. Skillnad för 0,1 mol: 21,43 g med YZ, faktiskt 20,63 g. Denna skillnad på 3,9 % skulle störa stökiometrin och avkastningsberäkningen. Det förde med sig deterministisk kalkyl.
Vanliga misstag
- Ge molekylen vid namn. Synonymer/varunamn förväxlas. Inkludera alltid SMILES eller InChI.
- Jämför SMILES utan att kanonisera det. OCC och CCO är olika i text men samma i molekyler.
- Frågar molekylvikten till tungmodellen. Detta är en deterministisk beräkning; Det görs från RDKit eller manuellt från formeln.
- Lägger inte märke till ogiltiga SMILES. Kontrollerar inte returen av MolFromSmiles Ingen och fortsätter med fel struktur.
- Försummar stereokemi. De två enantiomererna (spegelbildisomerer) kan uppvisa olika biologiska effekter; Hoppa över @/@@ tecken i SMILES.
Observera: Samma molekylformel betyder inte olika molekyler. C2H6O är både etanol (CCO) och dimetyleter (COC). Likhet i formel är inte likhet i identitet; Använd InChIKey för identifiering.
Sammanfattningsvis
- Identifiera molekyler genom strukturnotation, inte med namn: SMILES med människa, InChI/InChIKey med databas.
- RDKit är deterministisk; AI förutsäger, RDKit beräknar och verifierar.
- Analysera varje AI SMILES med MolFromSmiles och kontrollera för Ingen, kanonisera sedan.
- Få siffror som molekylvikt och formel från RDKit, inte från språkmodellen.
- Formeljämlikhet betyder inte molekylär identitet; Använd InChIKey för identifiering.
Applikationsuppgift
Välj tre föreningar (t.ex. koffein, ibuprofen, glycin). Fråga AI om kanoniska SMILES för varje. Skriv sedan ett RDKit-skript (använd mallen ovan) och generera: kanoniska SMILES, molekylformel, molekylvikt, InChIKey. Hur många av LEENDEN som gavs av AI var giltiga? Om YZ också gav molekylvikten, beräkna skillnaden i procent med RDKit-värdet. Rita dina resultat i en liten tabell.
checklista
- [ ] Jag vet vad SMILES och InChI/InChIKey är och när jag ska använda dem.
- [ ] Jag verifierar varje SMILES som ges av AI med MolFromSmiles.
- [ ] Jag kanonisera SMILES innan jag jämför dem.
- [ ] Jag hämtar molekylvikten och formeln från RDKit, inte från språkmodellen.
- [ ] Jag bekräftar molekylens identitet i databasen med InChIKey.
- [ ] Jag känner till situationer där stereokemi är viktigt.