Yksikkö 2 / 11

Molekyyliesitys ja kemiallinen rakenne: validointi SMILES-, InChI- ja RDKit-ohjelmilla

Voitot:

  • Kyky tunnistaa molekyylejä ei nimen vaan rakenteen esityksen perusteella (SMILES ihmisten kanssa, InChI/InChIKey tietokannan kanssa)
  • Kyky havaita virheelliset tai virheelliset rakenteet jäsentämällä, validoimalla ja kanonisoimalla jokainen tekoälyn antama SMILES RDKitilla
  • Kyky ymmärtää, että deterministiset suureet, kuten molekyylipaino ja kaava, tulisi saada sääntöpohjaisesta työkalusta, ei kielimallista.

Ensimmäinen ehto tekoälyn turvalliselle käytölle kemiassa on kirjoittaa molekyyli kielellä, jota sekä kone että ihminen ymmärtävät. Sanot "fenoli", tekoäly ymmärtää sen oikein; mutta kun sanot "happo", on tuhansia mahdollisuuksia. Nimet ovat moniselitteisiä; rakenneesitykset ovat tarkkoja. Tässä osiossa opimme kaksi perusmerkintää, jotka kääntävät molekyylin tekstiksi (SMILES ja InChI) ja työkalun, joka vahvistaa ne deterministisesti (RDKit). Tavoitteemme: antaa molekyyli tekoälylle tavalla, jota se ei koskaan ymmärrä väärin, ja vahvistaa tekoälyn tuottama rakenne työkalulla.

Mikä on SMILES?

SMILES (Simplified Molecular-Input Line-Entry System) on muoto, jolla kirjoitetaan molekyyli yhdelle tekstiriville. Atomit esitetään kirjaimilla, sidoksia symboleilla ja renkaita numeroilla. Esimerkkejä:

  • Etanoli: CCO (hiili–hiili–happi; vedyt implisiittisesti).
  • Bentseeni: c1ccccc1 (pieni "c" tarkoittaa aromaattista hiiltä; 1 sulkee renkaan).
  • Aspiriini: CC(=O)Oclccccc1C(=O)O.
  • Kofeiini: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

SMILESin voima on siinä, että se kuljettaa koko linkkirakenteen yhdellä rivillä; Sen heikkous on, että samalla molekyylillä voi olla useita kelvollisia SMILES-merkkejä (tätä kutsutaan ei-kanoniseksi). Ratkaisemme tämän hetken kuluttua RDKitilla.

Vihje: Molekyylin "kanoninen SMILES" on molekyylin yksittäinen, vakiokirjoitus. Jos haluat nähdä, ovatko kaksi SMILES:tä sama molekyyli, kanonisoi ne ja vertaa niitä; Niiden ei pitäisi olla tekstillisesti samanarvoisia, mutta niiden tulee olla samanarvoisia molekyylejä.

Mikä on InChI?

InChI (International Chemical Identifier) ​​on IUPAC:n kehittämä standarditunniste. Ero SMILESiin on se, että sama molekyyli antaa aina saman InChI:n; eli se on luonteeltaan kanoninen. Se on pitkä ja vaikealukuinen, mutta sopii erinomaisesti tietokantojen yhteensovittamiseen. Hakuun käytetään lyhennettä "InChIKey" (27-merkkinen tiivistelmä).

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Sääntö: Ihmiset puhuvat SMILES (lue), koneet ja tietokannat vastaavat InChI/InChIKey (tarkka). Anna SMILES AI; Vahvista tietokannassa InChIKeyllä.

RDKit: deterministinen varmennusmoottori

RDKit on avoimen lähdekoodin cheminformaattikirjasto. Toisin kuin kielimalli, se on sääntöpohjainen: jäsentää SMILES, laskee molekyylipainon, tuottaa kanonisia SMILES, palauttaa InChI/InChIKeyn, piirtää molekyylin. Joten RDKit "laskee", mitä tekoäly "ennustaa". Tämä on työnkulun ydin: tekoäly luo, RDKit varmistaa.

Perusvahvistusprosessi:

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("),W(MolDescriptors:l) 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Jos MolFromSmiles palauttaa None, tekoäly on antanut sinulle virheellisen molekyylin. Tämä yksinään on erittäin arvokas varoitus. Jos kelpaa, sinun ei enää tarvitse kysyä kielimallista molekyylipainoa; Se on sinun käsissäsi deterministisesti.

Askel askeleelta: AI + RDKit -yhteistoiminta

  1. Tunnista molekyyli: Anna tekoälylle nimi, kysy SMILES. Esimerkiksi "tarkista parasetamolin kanoniset SMILES".
  2. Vahvista: jäsennä saapuvat SMILES-tiedostot MolFromSmiles-sovelluksella. Jos Ei mitään, hylkää.
  3. Kanoninen: Hae kanoninen oikeinkirjoitus MolToSmiles-sovelluksella; Käytä tätä aina tästä lähtien.
  4. Laske luvut: Hanki molekyylipaino, kaava, renkaiden lukumäärä, vetysidoksen luovuttajien/vastaanottimien määrä jne. RDKit:ltä, ei AI:lta.
  5. Korjaustunnus: Luo InChIKey, etsi tietokannasta (PubChem), varmista, että molekyyli on todellakin haluamasi yhdiste.

Neljä kopioitavaa mallia

1) SMILESin pyytäminen (substantiivista rakenteeseen):

Tehtävä: Anna seuraavalle yhdisteelle kanoninen SMILES. Yhdiste: parasetamoli (asetaminofeeni). Sääntö: Anna vain SMILES-merkkijono ja InChIKey, älä lisää muita selityksiä. Jos et ole varma, kirjoita "EPÄVARMA", älä sovi.

2) SMILES-tarkistuspyyntö (rakenteesta hallintaan):

Tarkastele alla olevia SMILES-tiedostoja: CC(=O)Nc1ccc(O)cc1Kysymykset:1) Onko tämä kelvollinen SMILES?2) Mitä yhdistettä se vastaa (yleinen nimi)?3) Mikä on molekyylikaava?Huomaa: Lasken tarkan molekyylipainon RDKitillä; Annat vain rakenteellesi tulkinnan.

3) Vertaa kahta esitystä:

Minulla on kaksi SMILES:A) OCCB) CCOTask: Ovatko nämä samat molekyylit vai erilaisia? Kirjoita perustelut.Huomaa: Tarkistan vastauksesi kanonisoimalla sen RDKitissa.

4) Rakenteen selitys (oppimistarkoituksiin):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTTehtävä: Lue tämä SMILES pala palalta ja selitä, mitä kukin symboli tarkoittaa (atomi, sidos, rengas, aromaattinen) turkkiksi. Kerro myös, mikä yhdiste se on.

Heikko kehote / Vahva kehote

Heikko:

Anna asetaminofeenin ominaisuudet.

"Ominaisuus" on epämääräinen; Tekoäly tuottaa satunnaisia ​​lukuja molekyylipainosta sulamispisteeseen, joista osa on vääriä.

Vahva:

Yhdiste: asetaminofeeni.1) Canonical SMILES ja InChIKey ver.2) Anna molekyylikaava. Sääntö: ÄLÄ ANNA NUMEROJA, kuten molekyylipainoa, sulamispistettä jne.; Hankin ne RDKit/PubChemin avulla. Anna vain rakennustunnus.

Ero: Suuntasimme tekoälyn siihen, missä se on vahva (rakenneidentiteetti) ja pois siitä, missä se on heikko (kokeelliset luvut).

Impressioiden vertailu

ominaisuus

Hymyilee

InChI / InChIKey

Luettavuus

Korkea (ihmisystävällinen)

Matala (koneystävällinen)

kanonisuus

Oikeus muutoksiin pidätetään (vaatii kanonisoinnin)

luonnollisesti sinkku

Käyttö

inhimillinen viestintä, piirtäminen, syöttö

Tietokannan vastaavuus, identiteetti

stereokemia

Tukee (@-symbolit)

Tuet (kerroksinen)

antaa tekoälylle

ihanteellinen

Ihanteellinen vahvistukseen

minikotelot

Tapaus 1 – Kaksi nimeä, yksi molekyyli. Opiskelija ajatteli, että "N-asetyyli-para-aminofenoli" ja "parasetamoli" olivat eri yhdisteitä ja suunnitteli kaksi erillistä koetta. Kun niiden SMILES kanonisoitiin RDKitissä, ne molemmat osoittautuivat CC(=O)Nc1ccc(O)cc1; Se oli sama molekyyli. Kadonnut: puoli päivää suunnittelua; vahvistus: olisi voitu välttää 2 minuutin kanonisoinnin tarkistuksella.

Tapaus 2 — Virheellinen SMILES-kaappaus. Tekoäly palautti CC(=O)Nc1ccc(O)cc1C( vaihtoehdolle (sulut eivät kiinni). Opiskelija suoritti MolFromSmiles, se palautti None, näki heti virheen ja pyysi korjattuja SMILES. Ilman vahvistusta viallinen rakenne olisi levinnyt kaikille tileille.

Tapaus 3 – Virheellinen molekyylipaino. YZ sanoi "molekyylipaino 214,3 g/mol" ibuprofeenille (C13H18O2). RDKit-laskelma antoi 206,28 g/mol. Ero 0,1 mol:lla: 21,43 g YZ:n kanssa, itse asiassa 20,63 g. Tämä 3,9 %:n ero häiritsisi stoikiometriaa ja tuoton laskemista. Se toi deterministisen laskennan.

Yleisiä virheitä

  • Molekyylin nimeäminen. Synonyymit/tuotenimet ovat sekaisin. Sisällytä aina SMILES tai InChI.
  • SMILESin vertaaminen kanonisoimatta sitä. OCC ja CCO ovat erilaisia ​​tekstissä, mutta samat molekyyleissä.
  • Molekyylipainon kysyminen kielen mallille. Tämä on deterministinen laskelma; Se tehdään RDKitista tai manuaalisesti kaavasta.
  • Ei huomannut virheellisiä SMILES. MolFromSmiles None:n palautusta ei tarkisteta ja jatketaan väärällä rakenteella.
  • Stereokemian laiminlyöminen. Näillä kahdella enantiomeerillä (peilikuva-isomeerillä) voi olla erilaisia ​​biologisia vaikutuksia; @/@@-merkkien ohittaminen SMILES-sovelluksessa.
Huomio: Sama molekyylikaava ei tarkoita erilaisia ​​molekyylejä. C2H6O on sekä etanoli (CCO) että dimetyylieetteri (COC). Kaavan tasa-arvo ei ole identiteetin tasa-arvoa; Käytä tunnistamiseen InChIKeyä.

Yhteenvetona

  • Tunnista molekyylit rakennemerkinnän, ei nimen perusteella: SMILES ihmisellä, InChI/InChIKey tietokannan avulla.
  • RDKit on deterministinen; AI ennustaa, RDKit laskee ja tarkistaa.
  • Jäsennä jokainen AI SMILES MolFromSmiles-sovelluksella ja tarkista, onko Ei mitään, ja tee kanonisoimiseksi.
  • Hanki lukuja, kuten molekyylipaino ja kaava RDKitista, ei kielimallista.
  • Kaavan yhtäläisyys ei tarkoita molekyyli-identiteettiä; Käytä tunnistamiseen InChIKeyä.

Sovellustehtävä

Valitse kolme yhdistettä (esim. kofeiini, ibuprofeeni, glysiini). Pyydä tekoälyltä kanonisia SMILES-kuvia jokaiselle. Kirjoita sitten RDKit-skripti (käytä yllä olevaa mallia) ja luo: kanoninen SMILES, molekyylikaava, molekyylipaino, InChIKey. Kuinka monta tekoälyn antamista SMILES-hymyistä oli voimassa? Jos YZ antoi myös molekyylipainon, laske ero prosentteina RDKit-arvosta. Piirrä havaintosi pieneen taulukkoon.

tarkistuslista

  • [ ] Tiedän mitä SMILES ja InChI/InChIKey ovat ja milloin niitä tulee käyttää.
  • [ ] Vahvistan jokaisen tekoälyn antaman SMILES:n MolFromSmilesilla.
  • [ ] Kanonisoin SMILESin ennen niiden vertailua.
  • [ ] Saan molekyylipainon ja kaavan RDKitistä, en kielimallista.
  • [ ] Vahvistan molekyylin identiteetin tietokannassa InChIKeyllä.
  • [ ] Tiedän tilanteita, joissa stereokemia on tärkeää.