Winst:
- Mogelijkheid om moleculen niet op naam te identificeren, maar op basis van structuurweergave (SMILES met mensen, InChI/InChIKey met database)
- Mogelijkheid om ongeldige of onjuiste structuren te detecteren door elke SMILES gegeven door kunstmatige intelligentie te parseren, valideren en canonicaliseren met RDKit
- In staat zijn te begrijpen dat deterministische grootheden zoals molecuulgewicht en formule moeten worden verkregen uit het op regels gebaseerde hulpmiddel, en niet uit het taalmodel.
De eerste voorwaarde voor een veilig gebruik van AI in de chemie is het schrijven van het molecuul in een taal die zowel de machine als de mens kan begrijpen. U zegt "fenol", AI heeft het goed; maar als je 'zuur' zegt, zijn er duizenden mogelijkheden. De namen zijn dubbelzinnig; structuurweergaven zijn nauwkeurig. In deze unit leren we de twee basisnotaties die het molecuul in tekst vertalen (SMILES en InChI) en het hulpmiddel dat ze deterministisch verifieert (RDKit). Ons doel: het molecuul aan AI geven op een manier die het nooit verkeerd zal begrijpen, en de structuur die door AI wordt geproduceerd met een hulpmiddel bevestigen.
Wat is SMILES?
SMILES (Simplified Molecular-Input Line-Entry System) is een format voor het schrijven van een molecuul in één regel tekst. Atomen worden weergegeven door letters, bindingen door symbolen en ringen door cijfers. Voorbeelden:
- Ethanol: CCO (koolstof-koolstof-zuurstof; impliciete waterstofatomen).
- Benzeen: c1ccccc1 (kleine letter "c" geeft aromatische koolstof aan; 1 is de ring sluiten).
- Aspirine: CC(=O)Oc1ccccc1C(=O)O.
- Cafeïne: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
De kracht van SMILES is dat het de gehele linkstructuur in één lijn draagt; De zwakte ervan is dat hetzelfde molecuul meerdere geldige SMILES kan hebben (dit wordt niet-canonicaliteit genoemd). We zullen dit zo oplossen met RDKit.
Tip: De "canonieke SMILES" voor een molecuul is de enige standaardspelling voor dat molecuul. Om te zien of twee SMILES hetzelfde molecuul zijn, canonicaliseer en vergelijk ze; Ze mogen tekstueel niet gelijk zijn, maar het moeten gelijke moleculen zijn.
Wat is InChi?
InChI (International Chemical Identifier) is een standaardidentificatie ontwikkeld door IUPAC. Het verschil met SMILES is dat hetzelfde molecuul altijd dezelfde InChI geeft; dat wil zeggen, het is canoniek van aard. Het is lang en moeilijk te lezen, maar is ideaal voor het matchen van databases. Voor het zoeken wordt de afgekorte "InChIKey" (27-karakterdigest) gebruikt.
- Aspirine InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Regel: Mensen spreken SMILES (lezen), machines en databases komen overeen met InChI/InChIKey (exact). Geef een glimlach aan de AI; Bevestig in de database met InChIKey.
RDKit: deterministische verificatie-engine
RDKit is een open source schei-informaticabibliotheek. In tegenstelling tot het taalmodel is het op regels gebaseerd: ontleedt SMILES, berekent het molecuulgewicht, genereert canonieke SMILES, retourneert InChI/InChIKey, tekent het molecuul. RDKit "berekent" dus wat de AI "voorspelt". Dit is het hart van de workflow: AI genereert, RDKit verifieert.
Een basisverificatiestroom:
van rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Moleculaire formule:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Molecuulgewicht:", round(Descriptors.MolWt(mol), 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))
Als MolFromSmiles Geen retourneert, heeft de AI je een ongeldig molecuul gegeven; Dit alleen al is een zeer waardevolle waarschuwing. Indien geldig hoeft u het taalmodel niet meer naar het molecuulgewicht te vragen; Het ligt deterministisch in jouw handen.
Stap voor stap: AI + RDKit-samenwerking
- Identificeer het molecuul: geef de AI de naam, vraag om SMILES. Bijvoorbeeld: "controleer de canonieke SMILES voor paracetamol."
- Verifiëren: binnenkomende SMILES parseren met MolFromSmiles. Indien Geen, afwijzen.
- Canonicaliseren: haal canonieke spelling op met MolToSmiles; Gebruik dit vanaf nu altijd.
- Bereken getallen: verkrijg het molecuulgewicht, de formule, het aantal ringen, het aantal donoren/acceptoren van waterstofbruggen etc. van RDKit, niet van AI.
- Fix ID: Genereer InChIKey, zoek in de database (PubChem), bevestig dat het molecuul inderdaad de gewenste verbinding is.
Vier kopieerbare sjablonen
1) SMILES aanvragen (van zelfstandig naamwoord tot structuur):
Taak: Geef de canonieke SMILES voor de volgende verbinding. Samenstelling: paracetamol (paracetamol). Regel: Geef alleen de SMILES-string en InChIKey op, voeg geen verdere uitleg toe. Als u het niet zeker weet, schrijf dan "ONZEKER", verzin het niet.
2) SMILES-validatieverzoek (van structuur tot besturing):
Bekijk de SMILES hieronder: CC(=O)Nc1ccc(O)cc1Vragen:1) Is dit een geldige SMILES?2) Met welke verbinding komt het overeen (algemene naam)?3) Wat is de molecuulformule?Opmerking: ik bereken het exacte molecuulgewicht met RDKit; Je geeft gewoon je structuurinterpretatie.
3) Vergelijking van twee representaties:
Ik heb twee GLIMLACHEN:A) OCCB) CCOTaak: Zijn dit hetzelfde molecuul of verschillend? Schrijf uw redenering op. Opmerking: ik zal uw antwoord controleren door het in RDKit te canoniseren.
4) Structuurverklaring (voor leerdoeleinden):
SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTaak: Lees deze SMILES stuk voor stuk en leg uit wat elk symbool betekent (atoom, binding, ring, aromatiteit) in gewoon Turks. Vertel ook welke samenstelling het is.
Zwakke prompt/sterke prompt
Zwak:
Geef de eigenschappen van paracetamol.
"Eigenschap" is vaag; AI genereert willekeurige getallen van molecuulgewicht tot smeltpunt, waarvan sommige verkeerd zullen zijn.
Sterk:
Verbinding: paracetamol.1) Canonieke SMILES en InChIKey ver.2) Geef de molecuulformule.Regel: GEEF GEEN NUMERIEKE waarden zoals molecuulgewicht, smeltpunt, enz.; Ik zal ze krijgen met RDKit/PubChem. Geef gewoon de build-ID op.
Verschil: we hebben de AI gericht op waar hij sterk in is (structuuridentiteit) en weg van waar hij zwak in is (experimentele cijfers).
Vergelijking van indrukken
functie
GLIMLACH
InChI / InChIKey
Leesbaarheid
Hoog (mensvriendelijk)
Laag (machinevriendelijk)
canoniciteit
Wijzigingen voorbehouden (vereist heiligverklaring)
natuurlijk alleenstaand
Gebruik
menselijke communicatie, tekenen, input
Databasematch, identiteit
stereochemie
Ondersteunt (@ symbolen)
Steunen (gelaagd)
aan AI te geven
ideaal
Ideaal ter bevestiging
mini-gevallen
Geval 1 – Twee namen, één molecuul. Een student dacht dat "N-acetyl-para-aminofenol" en "paracetamol" verschillende verbindingen waren en plande twee afzonderlijke experimenten. Toen hun SMILES in RDKit gecanoniseerd werden, bleken ze allebei CC(=O)Nc1ccc(O)cc1 te zijn; Het was hetzelfde molecuul. Verloren: een halve dag plannen; winst: had voorkomen kunnen worden met een canonicalisatiecontrole van twee minuten.
Geval 2 – Ongeldige SMILES-opname. De AI retourneerde CC(=O)Nc1ccc(O)cc1C( voor een variant (haakjes niet gesloten). De leerling voerde MolFromSmiles uit, retourneerde Geen, zag onmiddellijk de fout en verzocht om gecorrigeerde SMILES. Zonder verificatie zou de foutieve structuur zich naar alle accounts hebben verspreid.
Geval 3 — Onjuist molecuulgewicht. YZ zei "molecuulgewicht 214,3 g/mol" voor ibuprofen (C13H18O2). De RDKit-berekening leverde 206,28 g/mol op. Verschil voor 0,1 mol: 21,43 g met YZ, feitelijk 20,63 g. Dit verschil van 3,9% zou de stoichiometrie en de opbrengstberekening verstoren. Het bracht deterministische calculus met zich mee.
Veel voorkomende fouten
- Het molecuul bij naam geven. Synoniemen/handelsnamen zijn verward. Voeg altijd SMILES of InChI toe.
- SMILES vergelijken zonder het te canonicaliseren. OCC en CCO zijn verschillend in tekst, maar hetzelfde in moleculen.
- Het molecuulgewicht vragen aan het tongmodel. Dit is een deterministische berekening; Het wordt gedaan vanuit RDKit of handmatig vanuit de formule.
- Ik merk geen ongeldige SMILES op. Het niet controleren van de retourzending van MolFromSmiles Geen en doorgaan met de verkeerde structuur.
- Stereochemie verwaarlozen. De twee enantiomeren (spiegelbeeldisomeren) kunnen verschillende biologische effecten vertonen; @/@@-tekens overslaan in SMILES.
Let op: dezelfde molecuulformule betekent niet verschillende moleculen. C2H6O is zowel ethanol (CCO) als dimethylether (COC). Gelijkheid van formule is niet gelijkheid van identiteit; Gebruik InChIKey voor identificatie.
Samengevat
- Identificeer moleculen op basis van structuurnotatie, niet op naam: SMILES met mens, InChI/InChIKey met database.
- RDKit is deterministisch; AI voorspelt, RDKit berekent en verifieert.
- Parseer elke AI SMILES met MolFromSmiles, controleer op Geen en canoniseer vervolgens.
- Haal getallen zoals het molecuulgewicht en de formule uit RDKit, niet uit het taalmodel.
- Formule-gelijkheid betekent niet moleculaire identiteit; Gebruik InChIKey voor identificatie.
Applicatie taak
Kies drie verbindingen (bijvoorbeeld cafeïne, ibuprofen, glycine). Vraag de AI voor elk canonieke SMILES. Schrijf vervolgens een RDKit-script (gebruik de bovenstaande sjabloon) en genereer: canonieke SMILES, molecuulformule, molecuulgewicht, InChIKey. Hoeveel van de door de AI gegeven SMILES waren geldig? Als YZ ook het molecuulgewicht aangeeft, bereken dan het verschil als percentage met de RDKit-waarde. Zet uw bevindingen in een kleine tabel.
controlelijst
- [ ] Ik weet wat SMILES en InChI/InChIKey zijn en wanneer ik ze moet gebruiken.
- [ ] Ik verifieer elke SMILES gegeven door AI met MolFromSmiles.
- [ ] Ik canoniseer SMILES voordat ik ze vergelijk.
- [ ] Ik haal het molecuulgewicht en de formule van RDKit, niet van het taalmodel.
- [ ] Ik bevestig de identiteit van het molecuul in de database met InChIKey.
- [ ] Ik ken situaties waarin stereochemie belangrijk is.