Vienība 2 / 11

Molekulārais attēlojums un ķīmiskā struktūra: validācija ar SMILES, InChI un RDKit

Ieguvumi:

  • Spēja identificēt molekulas nevis pēc nosaukuma, bet pēc struktūras attēlojuma (SMILES ar cilvēkiem, InChI/InChIKey ar datu bāzi)
  • Spēja atklāt nederīgas vai nepareizas struktūras, parsējot, apstiprinot un kanonizējot katru mākslīgā intelekta sniegto SMILES ar RDKit.
  • Spēja saprast, ka deterministiskie lielumi, piemēram, molekulmasa un formula, ir jāiegūst no uz noteikumiem balstīta rīka, nevis no valodas modeļa.

Pirmais nosacījums, lai AI droši izmantotu ķīmijā, ir molekulas uzrakstīšana valodā, ko saprot gan mašīna, gan cilvēks. Jūs sakāt "fenols", AI saprot pareizi; bet, kad jūs sakāt "skābe", ir tūkstošiem iespēju. Nosaukumi ir neskaidri; struktūras attēlojumi ir precīzi. Šajā nodaļā mēs apgūsim divus pamata apzīmējumus, kas pārvērš molekulu tekstā (SMILES un InChI), un rīku, kas tos deterministiski pārbauda (RDKit). Mūsu mērķis: nodot molekulu AI tā, lai tas nekad nepārprastu, un apstiprināt AI radīto struktūru ar rīku.

Kas ir SMILES?

SMILES (vienkāršotā molekulārās ievades rindiņas ievades sistēma) ir formāts molekulas ierakstīšanai vienā teksta rindiņā. Atomus attēlo ar burtiem, saites ar simboliem un gredzenus ar cipariem. Piemēri:

  • Etanols: CCO (ogleklis–ogleklis–skābeklis; ūdeņraži netieši).
  • Benzols: c1ccccc1 (mazais burts "c" norāda aromātisko oglekli; 1 noslēdz gredzenu).
  • Aspirīns: CC(=O)Oc1ccccc1C(=O)O.
  • Kofeīns: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

SMILES spēks ir tāds, ka tas satur visu saites struktūru vienā rindā; Tās vājums ir tāds, ka vienai molekulai var būt vairāki derīgi SMILES (to sauc par nekanoniskumu). Mēs to pēc brīža atrisināsim, izmantojot RDKit.

Padoms: "kanoniskie SMILES" molekulai ir šīs molekulas viena standarta pareizrakstība. Lai redzētu, vai divi SMILES ir viena un tā pati molekula, kanonizējiet un salīdziniet tos; Tiem nevajadzētu būt vienādiem tekstuāli, bet tiem jābūt vienādām molekulām.

Kas ir InChI?

InChI (International Chemical Identifier) ​​ir standarta identifikators, ko izstrādājis IUPAC. Atšķirība no SMILES ir tāda, ka viena un tā pati molekula vienmēr dod to pašu InChI; tas ir, tam ir kanonisks raksturs. Tas ir garš un grūti lasāms, taču ir ideāli piemērots datu bāzes saskaņošanai. Meklēšanai tiek izmantots saīsinātais "InChIKey" (27 rakstzīmju īssavilkums).

  • Aspirīns InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Noteikums: cilvēki runā SMILES (lasīt), mašīnas un datu bāzes atbilst InChI/InChIKey (precīzi). Dodiet MI SMAIDU; Apstipriniet datu bāzē, izmantojot InChIKey.

RDKit: deterministisks verifikācijas dzinējs

RDKit ir atvērtā pirmkoda cheminformātikas bibliotēka. Atšķirībā no valodas modeļa, tas ir balstīts uz kārtulām: parsē SMILES, aprēķina molekulmasu, ģenerē kanoniskus SMILES, atgriež InChI/InChIKey, zīmē molekulu. Tātad RDKit "aprēķina", ko AI "prognozē". Šī ir darbplūsmas būtība: AI ģenerē, RDKit pārbauda.

Pamata verifikācijas plūsma:

from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print(",WoltDescriptors:l" 2), "g/mol") print ("InChIKey:", Chem.MolToInchiKey(mol))

Ja MolFromSmiles atgriež None, AI ir piešķīris jums nederīgu molekulu; Tas vien ir ļoti vērtīgs brīdinājums. Ja tas ir derīgs, jums vairs nav jāprasa valodas modeļa molekulmasa; Tas noteikti ir jūsu rokās.

Soli pa solim: AI + RDKit mijiedarbība

  1. Identificējiet molekulu: nosauciet mākslīgo intelektu, lūdziet SMILES. Piemēram, “verify canonical SMILES for paracetamol”.
  2. Verifikācija: parsējiet ienākošos SMILES, izmantojot MolFromSmiles. Ja nav, noraidiet.
  3. Canonicalize: izgūstiet kanonisko pareizrakstību, izmantojot MolToSmiles; No šī brīža vienmēr izmantojiet to.
  4. Aprēķiniet skaitļus: iegūstiet molekulmasu, formulu, gredzenu skaitu, ūdeņraža saites donoru/akceptoru skaitu utt. no RDKit, nevis no AI.
  5. Fix ID: ģenerējiet InChIKey, meklējiet datu bāzē (PubChem), apstipriniet, ka molekula patiešām ir vēlamais savienojums.

Četras kopējamas veidnes

1) SMILES pieprasīšana (no lietvārda līdz struktūrai):

Uzdevums: Dodiet kanoniskos SMILES šādam savienojumam. Savienojums: paracetamols (acetaminofēns). Noteikums: norādiet tikai virkni SMILES un InChIKey, nepievienojiet papildu paskaidrojumus. Ja neesat pārliecināts, rakstiet "NEPRATĪTS", neizdomājiet.

2) SMILES validācijas pieprasījums (no struktūras līdz kontrolei):

Pārbaudiet tālāk norādītos SMILES: CC(=O)Nc1ccc(O)cc1Jautājumi:1) Vai tas ir derīgs SMILES?2) Kādam savienojumam tas atbilst (parastais nosaukums)?3) Kāda ir molekulārā formula?Piezīme: es aprēķināšu precīzu molekulmasu, izmantojot RDKit; Jūs vienkārši sniedzat savas struktūras interpretāciju.

3) Salīdzinot divus attēlus:

Man ir divi SMAIDI:A) OCCB) CCOTuzdevums: Vai tās ir viena un tā pati molekula vai atšķiras? Uzrakstiet savu argumentāciju.Piezīme. Es pārbaudīšu jūsu atbildi, kanonizējot to RDKit.

4) Struktūras skaidrojums (mācību nolūkos):

SMAIDI: Cn1cnc2c1c(=O)n(C)c(=O)n2CTuzdevums: izlasiet šo SMILES pa gabalu un paskaidrojiet, ko nozīmē katrs simbols (atoms, saite, gredzens, aromātiskums) vienkāršā turku valodā. Pastāsti arī, kurš savienojums tas ir.

Vāja uzvedne / spēcīga uzvedne

Vāji:

Piešķiriet acetaminofēna īpašības.

"Funkcija" ir neskaidra; AI ģenerē nejaušus skaitļus no molekulmasas līdz kušanas temperatūrai, no kuriem daži būs nepareizi.

Spēcīgs:

Savienojums: acetaminofēns.1) Canonical SMILES un InChIKey ver.2) Norādiet molekulāro formulu.Noteikums: NENONIECIET SKAITĻU vērtības, piemēram, molekulmasu, kušanas temperatūru utt.; Es tos iegūšu ar RDKit/PubChem. Vienkārši norādiet būvējuma ID.

Atšķirība: mēs virzījām AI uz to, kas ir spēcīgs (struktūras identitāte), un prom no tā, kur tas ir vājš (eksperimentālie skaitļi).

Seansu salīdzinājums

funkciju

SMAIDA

InChI / InChIKey

Lasāmība

Augsts (cilvēkiem draudzīgs)

Zems (draudzīgs ar mašīnu)

kanoniskums

Var mainīties (nepieciešama kanonizācija)

dabiski vientuļš

Lietošana

cilvēku komunikācija, zīmēšana, ievade

Datu bāzes atbilstība, identitāte

stereoķīmija

Atbalsta (@ simboli)

Atbalsti (slāņaini)

dot AI

ideāls

Ideāli piemērots apstiprināšanai

mini futrāļi

1. gadījums — divi nosaukumi, viena molekula. Kāds students domāja, ka "N-acetil-para-aminofenols" un "paracetamols" ir dažādi savienojumi, un plānoja divus atsevišķus eksperimentus. Kad RDKit kanonizēja savus SMILES, tie abi izrādījās CC(=O)Nc1ccc(O)cc1; Tā bija viena un tā pati molekula. Zaudēts: puse dienas plānošanas; ieguvums: varēja izvairīties, veicot 2 minūšu kanonizācijas pārbaudi.

2. gadījums — nederīga SMILES tveršana. AI atgrieza CC(=O)Nc1ccc(O)cc1C( variantam (iekavas nav aizvērtas). Students palaida MolFromSmiles, tas atgrieza None, nekavējoties redzēja kļūdu un pieprasīja izlabotus SMILES. Bez pārbaudes bojātā struktūra būtu izplatījusies visos kontos.

3. gadījums — nepareiza molekulmasa. YZ teica, ka ibuprofēna (C13H18O2) molekulmasa ir 214,3 g/mol. RDKit aprēķins deva 206,28 g/mol. Atšķirība 0,1 molam: 21,43 g ar YZ, faktiski 20,63 g. Šī 3,9% atšķirība traucētu stehiometriju un ražas aprēķinu. Tas radīja deterministisko aprēķinu.

Biežas kļūdas

  • Dodot molekulu pēc nosaukuma. Sinonīmi/tirdzniecības nosaukumi ir sajaukti. Vienmēr iekļaujiet SMILES vai InChI.
  • SMILES salīdzināšana bez kanonizācijas. OCC un CCO ir atšķirīgi tekstā, bet vienādi molekulās.
  • Molekulmasas uzprasīšana mēles modelim. Šis ir deterministisks aprēķins; To dara no RDKit vai manuāli no formulas.
  • Nepamanot nederīgus SMILES. Nepārbauda MolFromSmiles None atgriešanos un tiek turpināta nepareiza struktūra.
  • Stereoķīmijas neievērošana. Abiem enantiomēriem (spoguļattēla izomēriem) var būt atšķirīga bioloģiska iedarbība; @/@@ zīmju izlaišana programmā SMILES.
Uzmanību: viena un tā pati molekulārā formula nenozīmē dažādas molekulas. C2H6O ir gan etanols (CCO), gan dimetilēteris (COC). Formulas vienlīdzība nav identitātes vienlīdzība; Identifikācijai izmantojiet InChIKey.

Rezumējot

  • Identificējiet molekulas pēc struktūras apzīmējuma, nevis pēc nosaukuma: SMILES ar cilvēku, InChI/InChIKey ar datu bāzi.
  • RDKit ir deterministisks; AI prognozē, RDKit aprēķina un pārbauda.
  • Parsējiet katru AI SMILES, izmantojot MolFromSmiles, un pārbaudiet, vai nav, un pēc tam veiciet kanonizāciju.
  • Iegūstiet tādus skaitļus kā molekulmasa un formula no RDKit, nevis valodas modeļa.
  • Formulas vienlīdzība nenozīmē molekulāro identitāti; Identifikācijai izmantojiet InChIKey.

Lietojumprogrammas uzdevums

Izvēlieties trīs savienojumus (piemēram, kofeīnu, ibuprofēnu, glicīnu). Lūdziet mākslīgā intelekta kanoniskos SMILES katram. Pēc tam uzrakstiet RDKit skriptu (izmantojiet iepriekš minēto veidni) un ģenerējiet: kanoniskos SMILES, molekulāro formulu, molekulmasu, InChIKey. Cik no AI sniegtajiem SMILES bija derīgi? Ja YZ sniedza arī molekulmasu, aprēķiniet starpību procentos ar RDKit vērtību. Atklājiet savus atklājumus nelielā tabulā.

kontrolsaraksts

  • [ ] Es zinu, kas ir SMILES un InChI/InChIKey un kad tos lietot.
  • [ ] Es pārbaudu katru AI sniegto SMAIDU, izmantojot MolFromSmiles.
  • [ ] Pirms SMILES salīdzināšanas es kanonizēju.
  • [ ] Es iegūstu molekulmasu un formulu no RDKit, nevis no valodas modeļa.
  • [ ] Es apstiprinu molekulas identitāti datu bāzē ar InChIKey.
  • [ ] Es zinu situācijas, kurās stereoķīmija ir svarīga.