Yunit 2 / 11

Molecular Representation at Chemical Structure: Pagpapatunay gamit ang SMILES, InChI at RDKit

Mga nadagdag:

  • Kakayahang kilalanin ang mga molekula hindi sa pamamagitan ng pangalan ngunit sa pamamagitan ng representasyon ng istraktura (NAKAngiti sa mga tao, InChI/InChIKey na may database)
  • Kakayahang makakita ng mga di-wasto o hindi tamang mga istruktura sa pamamagitan ng pag-parse, pagpapatunay at pag-canonical sa bawat SMILES na ibinigay ng artificial intelligence gamit ang RDKit
  • Ang kakayahang maunawaan na ang mga tiyak na dami tulad ng molecular weight at formula ay dapat makuha mula sa tool na batay sa panuntunan, hindi mula sa modelo ng wika.

Ang unang kundisyon para sa ligtas na paggamit ng AI sa chemistry ay ang pagsulat ng molekula sa isang wika na parehong naiintindihan ng makina at ng tao. Sabi mo "phenol", nakukuha ito ng AI ng tama; ngunit kapag sinabi mong "acid" mayroong libu-libong mga posibilidad. Ang mga pangalan ay hindi maliwanag; tumpak ang mga representasyon ng istruktura. Sa yunit na ito, malalaman natin ang dalawang pangunahing notasyon na nagsasalin ng molekula sa teksto (SMILES at InChI) at ang tool na nagpapatunay sa mga ito nang deterministiko (RDKit). Ang aming layunin: ibigay ang molekula sa AI sa paraang hinding-hindi nito mauunawaan, at kumpirmahin ang istrukturang ginawa ng AI gamit ang isang tool.

Ano ang SMILES?

Ang SMILES (Simplified Molecular-Input Line-Entry System) ay isang format ng pagsulat ng molekula sa isang linya ng text. Ang mga atomo ay kinakatawan ng mga titik, mga bono sa pamamagitan ng mga simbolo, at mga singsing sa pamamagitan ng mga numero. Mga halimbawa:

  • Ethanol: CCO (carbon–carbon–oxygen; hydrogens implicit).
  • Benzene: c1ccccc1 (maliit na titik na "c" ay nagpapahiwatig ng mabangong carbon; isara ng 1 ang singsing).
  • Aspirin: CC(=O)Oc1ccccc1C(=O)O.
  • Caffeine: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Ang kapangyarihan ng SMILES ay dinadala nito ang buong istruktura ng link sa isang linya; Ang kahinaan nito ay ang parehong molekula ay maaaring magkaroon ng maraming wastong SMILES (ito ay tinatawag na non-canonicality). Malulutas namin ito sa RDKit sa isang sandali.

Hint: Ang "canonical SMILES" para sa isang molekula ay ang nag-iisang, karaniwang spelling para sa molekula na iyon. Upang makita kung ang dalawang NGITI ay magkaparehong molekula, i-canonicalize at ihambing ang mga ito; Ang mga ito ay hindi dapat magkapareho sa teksto, ngunit dapat silang magkaparehong mga molekula.

Ano ang InChI?

Ang InChI (International Chemical Identifier) ​​​​ay isang karaniwang identifier na binuo ng IUPAC. Ang pagkakaiba sa SMILES ay ang parehong molekula ay palaging nagbibigay ng parehong InChI; ibig sabihin, ito ay kanonikal sa kalikasan. Ito ay mahaba at mahirap basahin, ngunit mainam para sa pagtutugma ng database. Ang pinaikling "InChIKey" (27-character digest) ay ginagamit para sa paghahanap.

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Panuntunan: Nagsasalita ang mga tao ng SMILES (basahin), ang mga makina at database ay tumutugma sa InChI/InChIKey (eksaktong). Bigyan ng SMILES ang AI; Kumpirmahin sa database gamit ang InChIKey.

RDKit: deterministic verification engine

Ang RDKit ay isang open source cheminformatics library. Hindi tulad ng modelo ng wika, ito ay nakabatay sa panuntunan: nag-parse ng SMILES, kinakalkula ang molecular weight, bumubuo ng canonical SMILES, nagbabalik ng InChI/InChIKey, gumuhit ng molecule. Kaya "kinakalkula" ng RDKit kung ano ang "hulaan" ng AI. Ito ang puso ng daloy ng trabaho: Bumubuo ang AI, bini-verify ng RDKit.

Isang pangunahing daloy ng pag-verify:

mula sa 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 weight:". "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Kung wala ang MolFromSmiles, binigyan ka ng AI ng isang di-wastong molekula; Ito lamang ay isang napakahalagang babala. Kung may bisa, hindi mo na kailangang tanungin ang modelo ng wika para sa bigat ng molekular; Ito ay nasa iyong mga kamay nang deterministiko.

Hakbang-hakbang: AI + RDKit interoperation

  1. Kilalanin ang molekula: Bigyan ang AI ng pangalan, humingi ng SMILES. Halimbawa, "i-verify ang canonical SMILES para sa paracetamol."
  2. I-verify: I-parse ang mga papasok na SMILES gamit ang MolFromSmiles. Kung Wala, tanggihan.
  3. Canonicalize: Kunin ang canonical spelling gamit ang MolToSmiles; Palaging gamitin ito mula ngayon.
  4. Kalkulahin ang mga numero: Kumuha ng molecular weight, formula, bilang ng mga singsing, bilang ng mga donor/acceptor ng hydrogen bond atbp. mula sa RDKit, hindi mula sa AI.
  5. Ayusin ang ID: Bumuo ng InChIKey, maghanap sa database (PubChem), kumpirmahin na ang molekula ay talagang ang tambalang gusto mo.

Apat na maaaring kopyahin na mga template

1) Paghiling ng SMILES (mula sa pangngalan hanggang istruktura):

Gawain: Ibigay ang canonical SMILES para sa sumusunod na tambalan. Compound: paracetamol (acetaminophen). Panuntunan: Ibigay lamang ang SMILES string at InChIKey, huwag magdagdag ng anumang karagdagang paliwanag. Kung hindi ka sigurado, isulat ang "UNSIGURE", huwag mag-make up.

2) SMILES kahilingan sa pagpapatunay (mula sa istraktura hanggang sa kontrol):

Suriin ang SMILES sa ibaba: CC(=O)Nc1ccc(O)cc1Questions:1) Ito ba ay wastong SMILES?2) Anong tambalan ang tumutugma sa (karaniwang pangalan)?3) Ano ang molecular formula?Tandaan: Kakalkulahin ko ang eksaktong molekular na timbang sa RDKit; Ibigay mo lang ang iyong structure interpretation.

3) Paghahambing ng dalawang representasyon:

Mayroon akong dalawang SMILES:A) OCCB) CCOTask: Pareho ba itong molekula o magkaiba? Isulat ang iyong pangangatwiran. Tandaan: Susuriin ko ang iyong sagot sa pamamagitan ng pag-canonical nito sa RDKit.

4) Pagpapaliwanag sa istruktura (para sa mga layunin ng pag-aaral):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Basahin itong SMILES piece by piece at ipaliwanag kung ano ang ibig sabihin ng bawat simbolo (atom, bond, ring, aromaticity) sa plain Turkish. Sabihin din kung aling tambalan ito.

Mahinang prompt / Malakas na prompt

mahina:

Ibigay ang mga katangian ng acetaminophen.

"Tampok" ay malabo; Bumubuo ang AI ng mga random na numero mula sa molecular weight hanggang sa melting point, ang ilan sa mga ito ay magiging mali.

malakas:

Compound: acetaminophen.1) Canonical SMILES at InChIKey ver.2) Ibigay ang molecular formula. Panuntunan: HUWAG MAGBIGAY ng NUMERIC na mga halaga tulad ng molecular weight, melting point, atbp.; Kukunin ko sila gamit ang RDKit/PubChem. Ibigay lang ang build ID.

Pagkakaiba: Itinuro namin ang AI tungo sa kung saan ito malakas (istruktura ng pagkakakilanlan) at malayo sa kung ano ang mahina nito (mga eksperimentong numero).

Paghahambing ng mga impression

tampok

NGITI

InChI / InChIKey

Kakayahang mabasa

Mataas (magiliw sa mga tao)

Mababa (machine friendly)

canonicity

Maaaring magbago (kailangan ng canonization)

natural single

Paggamit

komunikasyon ng tao, pagguhit, input

Tugma sa database, pagkakakilanlan

stereochemistry

Sinusuportahan ang (@ mga simbolo)

Mga suporta (layered)

ibigay sa AI

perpekto

Tamang-tama para sa kumpirmasyon

maliit na kaso

Case 1 — Dalawang pangalan, isang molekula. Naisip ng isang estudyante na ang "N-acetyl-para-aminophenol" at "paracetamol" ay magkaibang compound at nagplano ng dalawang magkahiwalay na eksperimento. Noong na-canonicalize ang kanilang SMILES sa RDKit, silang dalawa pala ay CC(=O)Nc1ccc(O)cc1; Ito ay ang parehong molekula. Nawala: kalahating araw ng pagpaplano; makakuha: maaaring naiwasan sa pamamagitan ng 2 minutong pagsusuri sa canonicalization.

Case 2 — Di-wastong SMILES capture. Ibinalik ng AI ang CC(=O)Nc1ccc(O)cc1C( para sa isang variant (hindi sarado ang mga bracket). Ang mag-aaral ay nagpatakbo ng MolFromSmiles, ibinalik nito ang Wala, agad na nakita ang error at humiling ng itinamang SMILES. Kung walang pag-verify, ang maling istraktura ay kumalat sa lahat ng account.

Kaso 3 — Maling molekular na timbang. Sinabi ni YZ na "molecular weight 214.3 g/mol" para sa ibuprofen (C13H18O2). Ang pagkalkula ng RDKit ay nagbigay ng 206.28 g/mol. Pagkakaiba para sa 0.1 mol: 21.43 g na may YZ, aktwal na 20.63 g. Ang pagkakaibang ito ng 3.9% ay makakagambala sa stoichiometry at pagkalkula ng ani. Nagdala ito ng deterministikong calculus.

Mga karaniwang pagkakamali

  • Pagbibigay ng pangalan ng molekula. Nalilito ang mga kasingkahulugan/pangalan ng kalakalan. Palaging isama ang SMILES o InChI.
  • Paghahambing ng SMILES nang hindi ito kanonikal. Ang OCC at CCO ay magkaiba sa teksto ngunit pareho sa mga molekula.
  • Pagtatanong ng molekular na timbang sa modelo ng dila. Ito ay isang deterministikong kalkulasyon; Ginagawa ito mula sa RDKit o mano-mano mula sa formula.
  • Hindi napapansin ang mga di-wastong SMILES. Hindi sinusuri ang pagbabalik ng MolFromSmiles None at nagpapatuloy sa maling istraktura.
  • Pagpapabaya sa stereochemistry. Ang dalawang enantiomer (mirror image isomers) ay maaaring magpakita ng magkaibang biological effect; Nilalaktawan ang @/@@ sign sa SMILES.
Pansin: Ang parehong molecular formula ay hindi nangangahulugang magkakaibang mga molekula. Ang C2H6O ay parehong ethanol (CCO) at dimethyl ether (COC). Ang pagkakapantay-pantay ng pormula ay hindi pagkakapantay-pantay ng pagkakakilanlan; Gamitin ang InChIKey para sa pagkakakilanlan.

Sa buod

  • Kilalanin ang mga molekula sa pamamagitan ng notasyon ng istraktura, hindi sa pangalan: SMILES kasama ng tao, InChI/InChIKey na may database.
  • Ang RDKit ay deterministiko; Hinulaan ng AI, kinakalkula at bini-verify ng RDKit.
  • I-parse ang bawat AI SMILES gamit ang MolFromSmiles at tingnan kung Wala, pagkatapos ay i-canonicalize.
  • Kumuha ng mga numero tulad ng molecular weight at formula mula sa RDKit, hindi mula sa modelo ng wika.
  • Ang pagkakapantay-pantay ng formula ay hindi nangangahulugan ng pagkakakilanlan ng molekular; Gamitin ang InChIKey para sa pagkakakilanlan.

Gawain ng aplikasyon

Pumili ng tatlong compound (hal. caffeine, ibuprofen, glycine). Magtanong sa AI ng canonical SMILES para sa bawat isa. Pagkatapos ay magsulat ng script ng RDKit (gamitin ang template sa itaas) at bumuo ng: canonical SMILES, molecular formula, molecular weight, InChIKey. Ilan sa mga SMILES na ibinigay ng AI ang valid? Kung ibinigay din ng YZ ang molecular weight, kalkulahin ang pagkakaiba bilang isang porsyento na may halaga ng RDKit. I-plot ang iyong mga natuklasan sa isang maliit na talahanayan.

checklist

  • [ ] Alam ko kung ano ang SMILES at InChI/InChIKey at kung kailan ito gagamitin.
  • [ ] Bine-verify ko ang bawat SMILES na binigay ng AI gamit ang MolFromSmiles.
  • [ ] I canonicalize SMILES bago ikumpara ang mga ito.
  • [ ] Nakukuha ko ang molecular weight at formula mula sa RDKit, hindi mula sa modelo ng wika.
  • [ ] Kinukumpirma ko ang pagkakakilanlan ng molekula sa database gamit ang InChIKey.
  • [ ] Alam ko ang mga sitwasyon kung saan mahalaga ang stereochemistry.