Gevinster:
- Evne til å identifisere molekyler ikke ved navn, men ved strukturrepresentasjon (SMIL med mennesker, InChI/InChIKey med database)
- Evne til å oppdage ugyldige eller ukorrekte strukturer ved å analysere, validere og kanonisere hver SMILES gitt av kunstig intelligens med RDKit
- Å kunne forstå at deterministiske størrelser som molekylvekt og formel bør hentes fra det regelbaserte verktøyet, ikke fra språkmodellen.
Den første betingelsen for å bruke AI trygt i kjemi er å skrive molekylet på et språk som både maskinen og mennesket kan forstå. Du sier "fenol", AI forstår det; men når du sier "syre" er det tusenvis av muligheter. Navnene er tvetydige; strukturrepresentasjoner er presise. I denne enheten skal vi lære de to grunnleggende notasjonene som oversetter molekylet til tekst (SMILES og InChI) og verktøyet som verifiserer dem deterministisk (RDKit). Vårt mål: å gi molekylet til AI på en måte som det aldri vil misforstå, og å bekrefte strukturen produsert av AI med et verktøy.
Hva er SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) er et format for å skrive et molekyl i en enkelt tekstlinje. Atomer er representert med bokstaver, bindinger med symboler og ringer med tall. Eksempler:
- Etanol: CCO (karbon-karbon-oksygen; hydrogen implisitt).
- Benzen: c1ccccc1 (små bokstaver "c" indikerer aromatisk karbon; 1-er lukker ringen).
- Aspirin: CC(=O)Oc1ccccc1C(=O)O.
- Koffein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Kraften til SMILES er at den bærer hele lenkestrukturen på en enkelt linje; Dens svakhet er at det samme molekylet kan ha flere gyldige SMIL (dette kalles ikke-kanoniskhet). Vi løser dette med RDKit om et øyeblikk.
Hint: De "kanoniske SMIL" for et molekyl er den enkle, standard stavemåten for det molekylet. For å se om to SMILER er det samme molekylet, kanonisere og sammenligne dem; De skal ikke være like tekstmessig, men de skal være like molekyler.
Hva er InChI?
InChI (International Chemical Identifier) er en standardidentifikator utviklet av IUPAC. Forskjellen fra SMILES er at det samme molekylet alltid gir samme InChI; det vil si at den er kanonisk av natur. Den er lang og vanskelig å lese, men er ideell for databasematching. Den forkortede "InChIKey" (27-tegns sammendrag) brukes til å søke.
- Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Regel: Folk snakker SMIL (les), maskiner og databaser samsvarer med InChI/InChIKey (eksakt). Gi SMILES til AI; Bekreft i databasen med InChIKey.
RDKit: deterministisk verifikasjonsmotor
RDKit er et åpen kildekode kjeminformatikkbibliotek. I motsetning til språkmodellen er den regelbasert: analyserer SMILES, beregner molekylvekt, genererer kanoniske SMILES, returnerer InChI/InChIKey, tegner molekylet. Så RDKit "kalkulerer" hva AI "forutsier". Dette er hjertet av arbeidsflyten: AI genererer, RDKit verifiserer.
En grunnleggende verifiseringsflyt:
fra rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molekylvekt(W),tmol.",. "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))
Hvis MolFromSmiles returnerer Ingen, har AI gitt deg et ugyldig molekyl; Dette alene er en svært verdifull advarsel. Hvis gyldig, trenger du ikke lenger spørre språkmodellen om molekylvekten; Det er i dine hender deterministisk.
Trinn for trinn: AI + RDKit-interoperasjon
- Identifiser molekylet: Gi AI-en navnet, be om SMILES. For eksempel, "bekreft kanoniske SMILES for paracetamol."
- Bekreft: Parse innkommende SMILES med MolFromSmiles. Hvis ingen, avvis.
- Canonicalize: Hent kanonisk stavemåte med MolToSmiles; Bruk alltid denne fra nå av.
- Beregn tall: Få molekylvekt, formel, antall ringer, antall hydrogenbindingsgivere/akseptorer etc. fra RDKit, ikke fra AI.
- Fix ID: Generer InChIKey, søk i databasen (PubChem), bekreft at molekylet faktisk er forbindelsen du ønsker.
Fire kopierbare maler
1) Be om SMILES (fra substantiv til struktur):
Oppgave: Gi de kanoniske SMILENE for følgende forbindelse. Forbindelse: paracetamol (acetaminophen). Regel: Gi bare SMILES-strengen og InChIKey, ikke legg til noen ytterligere forklaring. Hvis du ikke er sikker, skriv "USIKKER", ikke gjør opp.
2) SMILES-valideringsforespørsel (fra struktur til kontroll):
Undersøk SMILENE nedenfor: CC(=O)Nc1ccc(O)cc1Spørsmål:1) Er dette et gyldig SMILES?2) Hvilken forbindelse tilsvarer det (vanlig navn)?3) Hva er molekylformelen?Merk: Jeg vil beregne den eksakte molekylvekten med RDKit; Du gir bare din strukturtolkning.
3) Sammenligning av to representasjoner:
Jeg har to SMIL:A) OCCB) CCOTask: Er disse det samme molekylet eller forskjellige? Skriv begrunnelsen din. Merk: Jeg krysssjekker svaret ditt ved å kanonisere det i RDKit.
4) Strukturforklaring (for læringsformål):
SMIL: Cn1cnc2c1c(=O)n(C)c(=O)n2CTOppgave: Les dette SMIL stykke for stykke og forklar hva hvert symbol betyr (atom, binding, ring, aromatisitet) på vanlig tyrkisk. Fortell også hvilken sammensetning det er.
Svak forespørsel / Sterk forespørsel
Svak:
Gi egenskapene til paracetamol.
"Funksjon" er vag; AI genererer tilfeldige tall fra molekylvekt til smeltepunkt, noen av dem vil være feil.
Sterk:
Forbindelse: paracetamol.1) Canonical SMILES og InChIKey ver.2) Oppgi molekylformelen.Regel: IKKE GI NUMERISKE verdier som molekylvekt, smeltepunkt osv.; Jeg får dem med RDKit/PubChem. Bare oppgi bygge-ID.
Forskjell: Vi rettet AI mot det den er sterk på (strukturidentitet) og bort fra det den er svak på (eksperimentelle tall).
Sammenligning av inntrykk
funksjon
SMIL
InChI / InChIKey
Lesbarhet
Høy (folkevennlig)
Lav (maskinvennlig)
kanonisitet
Med forbehold om endringer (trenger kanonisering)
naturlig singel
Bruk
menneskelig kommunikasjon, tegning, input
Databasematch, identitet
stereokjemi
Støtter (@-symboler)
Støtter (lagdelt)
å gi til AI
ideelt
Ideell for konfirmasjon
minisaker
Tilfelle 1 - To navn, ett molekyl. En student mente at "N-acetyl-para-aminofenol" og "paracetamol" var forskjellige forbindelser og planla to separate eksperimenter. Da de kanoniserte SMILES i RDKit, viste de seg begge å være CC(=O)Nc1ccc(O)cc1; Det var det samme molekylet. Tapt: en halv dag med planlegging; gain: kunne vært unngått med en 2-minutters kanoniseringssjekk.
Tilfelle 2 — Ugyldig SMILES-opptak. AI-en returnerte CC(=O)Nc1ccc(O)cc1C( for en variant (parentes ikke lukket). Eleven kjørte MolFromSmiles, den returnerte Ingen, så umiddelbart feilen og ba om korrigerte SMILES. Uten verifisering ville den feilaktige strukturen ha spredt seg til alle kontoer.
Tilfelle 3 – Feil molekylvekt. YZ sa "molekylvekt 214,3 g/mol" for ibuprofen (C13H18O2). RDKit-beregningen ga 206,28 g/mol. Differanse for 0,1 mol: 21,43 g med YZ, faktisk 20,63 g. Denne forskjellen på 3,9 % ville forstyrre støkiometrien og utbytteberegningen. Det brakte deterministisk kalkulus.
Vanlige feil
- Gi molekylet ved navn. Synonymer/handelsnavn forveksles. Inkluder alltid SMILES eller InChI.
- Sammenligner SMILES uten å kanonisere det. OCC og CCO er forskjellige i tekst, men de samme i molekyler.
- Spørre molekylvekten til tungemodellen. Dette er en deterministisk beregning; Det gjøres fra RDKit eller manuelt fra formelen.
- Merker ikke ugyldige SMILES. Sjekker ikke returen til MolFromSmiles Ingen og fortsetter med feil struktur.
- Forsømmer stereokjemi. De to enantiomerene (speilbildeisomerer) kan ha forskjellige biologiske effekter; Hopp over @/@@-tegn i SMILES.
Oppmerksomhet: Den samme molekylformelen betyr ikke forskjellige molekyler. C2H6O er både etanol (CCO) og dimetyleter (COC). Likhet av formel er ikke likhet i identitet; Bruk InChIKey for identifikasjon.
Oppsummert
- Identifiser molekyler ved strukturnotasjon, ikke ved navn: SMILES med menneske, InChI/InChIKey med database.
- RDKit er deterministisk; AI forutsier, RDKit beregner og verifiserer.
- Analyser hver AI SMILES med MolFromSmiles og sjekk for Ingen, og kanoniser deretter.
- Få tall som molekylvekt og formel fra RDKit, ikke fra språkmodellen.
- Formellikhet betyr ikke molekylær identitet; Bruk InChIKey for identifikasjon.
Søknadsoppgave
Velg tre forbindelser (f.eks. koffein, ibuprofen, glycin). Spør AI om kanoniske SMILES for hver. Skriv deretter et RDKit-skript (bruk malen ovenfor) og generer: kanoniske SMILES, molekylformel, molekylvekt, InChIKey. Hvor mange av SMILENE gitt av AI var gyldige? Hvis YZ også ga molekylvekten, beregn forskjellen i prosent med RDKit-verdien. Plott funnene dine i en liten tabell.
sjekkliste
- [ ] Jeg vet hva SMILES og InChI/InChIKey er og når jeg skal bruke dem.
- [ ] Jeg bekrefter alle SMILES gitt av AI med MolFromSmiles.
- [ ] Jeg kanoniserer SMILES før jeg sammenligner dem.
- [ ] Jeg henter molekylvekten og formelen fra RDKit, ikke fra språkmodellen.
- [ ] Jeg bekrefter molekylidentiteten i databasen med InChIKey.
- [ ] Jeg kjenner til situasjoner der stereokjemi er viktig.