Gevinster:
- Evne til at identificere molekyler ikke ved navn, men ved strukturrepræsentation (SMIL med mennesker, InChI/InChIKey med database)
- Evne til at opdage ugyldige eller forkerte strukturer ved at parse, validere og kanonisere hvert SMILES givet af kunstig intelligens med RDKit
- At kunne forstå, at deterministiske størrelser såsom molekylvægt og formel skal hentes fra det regelbaserede værktøj, ikke fra sprogmodellen.
Den første betingelse for at bruge AI sikkert i kemi er at skrive molekylet på et sprog, som både maskinen og mennesket kan forstå. Du siger "phenol", AI forstår det rigtigt; men når man siger "syre" er der tusindvis af muligheder. Navnene er tvetydige; strukturrepræsentationer er præcise. I denne enhed lærer vi de to grundlæggende notationer, der oversætter molekylet til tekst (SMILES og InChI) og værktøjet, der verificerer dem deterministisk (RDKit). Vores mål: at give molekylet til AI på en måde, så det aldrig vil misforstå, og at bekræfte strukturen produceret af AI med et værktøj.
Hvad er SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) er et format til at skrive et molekyle i en enkelt tekstlinje. Atomer er repræsenteret med bogstaver, bindinger med symboler og ringe med tal. Eksempler:
- Ethanol: CCO (kulstof-kulstof-ilt; hydrogener implicit).
- Benzen: c1ccccc1 (små bogstaver "c" angiver aromatisk kulstof; 1'er lukker ringen).
- Aspirin: CC(=O)Oc1ccccc1C(=O)O.
- Koffein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Styrken ved SMILES er, at den bærer hele linkstrukturen på en enkelt linje; Dens svaghed er, at det samme molekyle kan have flere gyldige SMILES (dette kaldes ikke-kanoniskhed). Vi løser dette med RDKit om et øjeblik.
Tip: De "kanoniske SMILES" for et molekyle er den enkelte standardstavning for det molekyle. For at se om to SMILES er det samme molekyle, kanonisere og sammenligne dem; De skal ikke være ens tekstmæssigt, men de skal være lige store molekyler.
Hvad er InChI?
InChI (International Chemical Identifier) er en standardidentifikator udviklet af IUPAC. Forskellen fra SMILES er, at det samme molekyle altid giver det samme InChI; det vil sige, at den er kanonisk af natur. Den er lang og svær at læse, men er ideel til databasematchning. Den forkortede "InChIKey" (27-tegns digest) bruges til søgning.
- Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Regel: Folk taler SMIL (læs), maskiner og databaser matcher InChI/InChIKey (præcis). Giv SMILES til AI'en; Bekræft i databasen med InChIKey.
RDKit: deterministisk verifikationsmotor
RDKit er et open source keminformatikbibliotek. I modsætning til sprogmodellen er den regelbaseret: analyserer SMILES, beregner molekylvægt, genererer kanoniske SMILES, returnerer InChI/InChIKey, tegner molekylet. Så RDKit "udregner", hvad AI'en "forudsiger". Dette er hjertet i arbejdsgangen: AI genererer, RDKit verificerer.
Et grundlæggende verifikationsflow:
fra rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molekylformel:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molekylvægt):(mol)),. "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))
Hvis MolFromSmiles returnerer Ingen, har AI givet dig et ugyldigt molekyle; Dette alene er en meget værdifuld advarsel. Hvis det er gyldigt, behøver du ikke længere spørge sprogmodellen om molekylvægten; Det er i dine hænder deterministisk.
Trin for trin: AI + RDKit interoperation
- Identificer molekylet: Giv AI navnet, spørg efter SMILES. For eksempel "bekræft kanoniske SMILES for paracetamol."
- Bekræft: Parse indgående SMILES med MolFromSmiles. Hvis ingen, afvis.
- Canonicalize: Hent kanonisk stavning med MolToSmiles; Brug altid dette fra nu af.
- Beregn tal: Få molekylvægt, formel, antal ringe, antal hydrogenbindingsdonorer/acceptorer osv. fra RDKit, ikke fra AI.
- Fix ID: Generer InChIKey, søg i databasen (PubChem), bekræft, at molekylet faktisk er den forbindelse, du ønsker.
Fire kopierbare skabeloner
1) Anmodning om SMILES (fra navneord til struktur):
Opgave: Giv de kanoniske SMILES for følgende forbindelse. Forbindelse: paracetamol (acetaminophen). Regel: Giv kun SMILES-strengen og InChIKey, tilføj ikke yderligere forklaring. Hvis du ikke er sikker, så skriv "USIKKER", lad være med at gøre op.
2) SMILES valideringsanmodning (fra struktur til kontrol):
Undersøg SMILES nedenfor: CC(=O)Nc1ccc(O)cc1Spørgsmål:1) Er dette et gyldigt SMILES?2) Hvilken forbindelse svarer det til (fællesnavn)?3) Hvad er molekylformlen?Bemærk: Jeg vil beregne den nøjagtige molekylvægt med RDKit; Du giver bare din struktur fortolkning.
3) Sammenligning af to repræsentationer:
Jeg har to SMIL:A) OCCB) CCOopgave: Er disse det samme molekyle eller forskellige? Skriv din begrundelse.Bemærk: Jeg krydstjekker dit svar ved at kanonisere det i RDKit.
4) Strukturforklaring (til læringsformål):
SMIL: Cn1cnc2c1c(=O)n(C)c(=O)n2CTopgave: Læs dette SMILES stykke for stykke og forklar, hvad hvert symbol betyder (atom, binding, ring, aromaticitet) på almindeligt tyrkisk. Fortæl også hvilken forbindelse det er.
Svag prompt / Stærk prompt
Svag:
Angiv egenskaberne for acetaminophen.
"Funktioner" er vagt; AI genererer tilfældige tal fra molekylvægt til smeltepunkt, hvoraf nogle vil være forkerte.
Stærk:
Forbindelse: acetaminophen.1) Canonical SMILES og InChIKey ver.2) Angiv molekylformlen.Regel: ANGIV IKKE NUMERISKE værdier såsom molekylvægt, smeltepunkt osv.; Jeg får dem med RDKit/PubChem. Bare giv bygge-id'et.
Forskel: Vi rettede AI mod det, den er stærk til (strukturidentitet) og væk fra det, den er svag til (eksperimentelle tal).
Sammenligning af indtryk
funktion
SMIL
InChI / InChIKey
Læsbarhed
Høj (folkevenlig)
Lav (maskinvenlig)
kanonitet
Der tages forbehold for ændringer (skal kanoniseres)
naturligt single
Brug
menneskelig kommunikation, tegning, input
Database match, identitet
stereokemi
Understøtter (@-symboler)
Understøtter (lagdelt)
at give til AI
ideel
Ideel til konfirmation
mini sager
Tilfælde 1 — To navne, et molekyle. En studerende troede, at "N-acetyl-para-aminophenol" og "paracetamol" var forskellige forbindelser og planlagde to separate eksperimenter. Da de kanoniserede deres SMILES i RDKit, viste de sig begge at være CC(=O)Nc1ccc(O)cc1; Det var det samme molekyle. Tabt: en halv dag med planlægning; gevinst: kunne have været undgået med et 2-minutters kanoniseringstjek.
Tilfælde 2 — Ugyldig SMILES-optagelse. AI'en returnerede CC(=O)Nc1ccc(O)cc1C( for en variant (parentes ikke lukket). Eleven kørte MolFromSmiles, den returnerede Ingen, så straks fejlen og anmodede om rettet SMILES. Uden verifikation ville den fejlbehæftede struktur have spredt sig til alle konti.
Tilfælde 3 — Forkert molekylvægt. YZ sagde "molekylvægt 214,3 g/mol" for ibuprofen (C13H18O2). RDKit-beregningen gav 206,28 g/mol. Forskel for 0,1 mol: 21,43 g med YZ, faktisk 20,63 g. Denne forskel på 3,9 % ville forstyrre støkiometrien og udbytteberegningen. Det bragte deterministisk beregning.
Almindelige fejl
- At give molekylet ved navn. Synonymer/handelsnavne forveksles. Inkluder altid SMILES eller InChI.
- Sammenligner SMILES uden at kanonisere det. OCC og CCO er forskellige i tekst, men de samme i molekyler.
- Spørger molekylvægten til tungemodellen. Dette er en deterministisk beregning; Det gøres fra RDKit eller manuelt fra formlen.
- Bemærker ikke ugyldige SMILES. Kontrollerer ikke returneringen af MolFromSmiles Ingen og fortsætter med den forkerte struktur.
- Forsømmer stereokemi. De to enantiomerer (spejlbilledeisomerer) kan udvise forskellige biologiske virkninger; Springer @/@@-tegn over i SMILES.
Bemærk: Den samme molekylære formel betyder ikke forskellige molekyler. C2H6O er både ethanol (CCO) og dimethylether (COC). Formellighed er ikke identitetslighed; Brug InChIKey til identifikation.
Sammenfattende
- Identificer molekyler ved strukturnotation, ikke ved navn: SMILES med menneske, InChI/InChIKey med database.
- RDKit er deterministisk; AI forudsiger, RDKit beregner og verificerer.
- Parse hver AI SMILES med MolFromSmiles og tjek for Ingen, og kanoniser derefter.
- Få tal som molekylvægt og formel fra RDKit, ikke fra sprogmodellen.
- Formellighed betyder ikke molekylær identitet; Brug InChIKey til identifikation.
Ansøgningsopgave
Vælg tre forbindelser (fx koffein, ibuprofen, glycin). Spørg AI om kanoniske SMILES for hver. Skriv derefter et RDKit-script (brug skabelonen ovenfor) og generer: kanoniske SMILES, molekylformel, molekylvægt, InChIKey. Hvor mange af SMILES givet af AI var gyldige? Hvis YZ også gav molekylvægten, beregnes forskellen som en procentdel med RDKit-værdien. Tegn dine resultater i en lille tabel.
tjekliste
- [ ] Jeg ved, hvad SMILES og InChI/InChIKey er, og hvornår jeg skal bruge dem.
- [ ] Jeg verificerer alle SMILES givet af AI med MolFromSmiles.
- [ ] Jeg kanoniserer SMILES før jeg sammenligner dem.
- [ ] Jeg henter molekylvægten og formlen fra RDKit, ikke fra sprogmodellen.
- [ ] Jeg bekræfter molekylets identitet i databasen med InChIKey.
- [ ] Jeg kender situationer, hvor stereokemi er vigtig.