Pelnas:
- Galimybė identifikuoti molekules ne pagal pavadinimą, o pagal struktūrą (SMILES su žmonėmis, InChI/InChIKey su duomenų baze)
- Galimybė aptikti netinkamas ar neteisingas struktūras analizuojant, patvirtinant ir kanonizuojant kiekvieną dirbtinio intelekto suteiktą Šypseną naudojant RDKit
- Gebėjimas suprasti, kad deterministiniai dydžiai, tokie kaip molekulinė masė ir formulė, turėtų būti gaunami naudojant taisyklėmis pagrįstą įrankį, o ne iš kalbos modelio.
Pirmoji sąlyga norint saugiai naudoti dirbtinį intelektą chemijoje – parašyti molekulę tokia kalba, kurią supranta ir mašina, ir žmogus. Jūs sakote „fenolis“, AI supranta; bet kai sakai „rūgštis“, yra tūkstančiai galimybių. Vardai dviprasmiški; struktūriniai vaizdai yra tikslūs. Šiame skyriuje išmoksime du pagrindinius žymėjimus, kurie verčia molekulę į tekstą (SMILES ir InChI), ir įrankį, kuris juos deterministiškai patikrina (RDKit). Mūsų tikslas: suteikti AI molekulę taip, kad ji niekada nesuprastų, ir įrankiu patvirtinti AI sukurtą struktūrą.
Kas yra Šypsenos?
SMILES (simplified Molecular-Input Line-Entry System) – tai molekulės rašymo vienoje teksto eilutėje formatas. Atomai vaizduojami raidėmis, ryšiai – simboliais, o žiedai – skaičiais. Pavyzdžiai:
- Etanolis: CCO (anglis–anglis–deguonis; vandeniliai numanomi).
- Benzenas: c1ccccc1 (mažoji raidė "c" reiškia aromatinę anglį; 1 yra arti žiedo).
- Aspirinas: CC(=O)Oc1ccccc1C(=O)O.
- Kofeinas: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
SMILES galia yra ta, kad ji perkelia visą nuorodos struktūrą vienoje eilutėje; Jo silpnybė yra ta, kad ta pati molekulė gali turėti keletą galiojančių Šypsenos (tai vadinama nekanoniškumu). Greitai tai išspręsime naudodami RDKit.
Užuomina: „kanoninės Šypsenos“ molekulei yra viena standartinė tos molekulės rašyba. Norėdami pamatyti, ar dvi Šypsenos yra ta pati molekulė, kanonizuokite ir palyginkite jas; Tekstiškai jie neturėtų būti lygūs, bet turi būti vienodos molekulės.
Kas yra InChI?
InChI (tarptautinis cheminis identifikatorius) yra standartinis identifikatorius, sukurtas IUPAC. Skirtumas nuo SMILES yra tas, kad ta pati molekulė visada suteikia tą patį InChI; tai yra kanoninio pobūdžio. Jis yra ilgas ir sunkiai skaitomas, tačiau idealiai tinka duomenų bazės suderinimui. Paieškai naudojamas sutrumpintas „InChIKey“ (27 simbolių santrauka).
- Aspirinas InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Taisyklė: žmonės kalba Šypsenos (skaityti), mašinos ir duomenų bazės atitinka InChI/InChIKey (tiksliai). Suteikite Šypsenos AI; Patvirtinkite duomenų bazėje naudodami InChIKey.
RDKit: deterministinis tikrinimo variklis
RDKit yra atviro kodo cheminformatikos biblioteka. Skirtingai nei kalbos modelis, jis yra pagrįstas taisyklėmis: analizuoja SMILES, apskaičiuoja molekulinę masę, generuoja kanonines SMILES, grąžina InChI/InChIKey, nupiešia molekulę. Taigi RDKit „apskaičiuoja“, ką AI „numato“. Tai yra darbo eigos esmė: AI generuoja, RDKit tikrina.
Pagrindinis patikrinimo procesas:
iš rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print(",WoltDescriptorsmol:l" 2), "g/mol") print ("InChIKey:", Chem.MolToInchiKey(mol))
Jei „MolFromSmiles“ grąžina „None“, AI suteikė jums netinkamą molekulę; Jau vien tai labai vertingas įspėjimas. Jei galioja, jums nebereikia klausti kalbos modelio molekulinės masės; Tai deterministiškai jūsų rankose.
Žingsnis po žingsnio: AI + RDKit sąveika
- Identifikuokite molekulę: nurodykite AI pavadinimą, paprašykite Šypsenos. Pavyzdžiui, „patikrinti kanonines SMILES paracetamoliui“.
- Patvirtinkite: išanalizuoti gaunamas SMILES su MolFromSmiles. Jei nėra, atmeskite.
- Kanonizuoti: nuskaitykite kanoninę rašybą naudodami MolToSmiles; Nuo šiol visada naudokite tai.
- Apskaičiuokite skaičius: gaukite molekulinę masę, formulę, žiedų skaičių, vandenilio jungties donorų / akceptorių skaičių ir kt. iš RDKit, o ne iš AI.
- Pataisymo ID: sugeneruokite „InChIKey“, ieškokite duomenų bazėje („PubChem“), patvirtinkite, kad molekulė iš tikrųjų yra jūsų norimas junginys.
Keturi kopijuojami šablonai
1) SMILES užklausa (nuo daiktavardžio iki struktūros):
Užduotis: Suteikite kanonines Šypsenos tokiam junginiui. Junginys: paracetamolis (acetaminofenas). Taisyklė: pateikite tik eilutę SMILES ir „InChIKey“, nepridėkite daugiau paaiškinimų. Jei nesate tikri, parašykite "NESUSITIKRINTI", nesikiminkite.
2) SMILES patvirtinimo užklausa (nuo struktūros iki valdiklio):
Išnagrinėkite toliau pateiktas Šypsenos: CC(=O)Nc1ccc(O)cc1Klausimai: 1) Ar tai galioja Šypsenos?2) Kokį junginį jis atitinka (bendras pavadinimas)?3) Kokia yra molekulinė formulė?Pastaba: tikslią molekulinę masę apskaičiuosiu su RDKit; Jūs tiesiog pateikiate savo struktūros interpretaciją.
3) Palyginti du vaizdus:
Turiu dvi Šypsenos:A) OCCB) CCOTužduotis: Ar tai ta pati molekulė, ar skirtingos? Parašykite savo samprotavimus.Pastaba: patikrinsiu jūsų atsakymą kanonizuodamas jį RDKit.
4) Struktūros paaiškinimas (mokymosi tikslais):
Šypsenos: Cn1cnc2c1c(=O)n(C)c(=O)n2CTUduotis: perskaitykite šią Šypsenos po gabalo ir paaiškinkite, ką reiškia kiekvienas simbolis (atomas, ryšys, žiedas, aromatingumas) paprasta turkų kalba. Taip pat nurodykite, koks tai junginys.
Silpnas raginimas / Stiprus raginimas
Silpnas:
Pateikite acetaminofeno savybes.
„Savybė“ yra neaiški; AI generuoja atsitiktinius skaičius nuo molekulinės masės iki lydymosi taško, kai kurie iš jų bus neteisingi.
Stiprus:
Junginys: acetaminofenas.1) Canonical SMILES ir InChIKey ver.2) Pateikite molekulinę formulę.Taisyklė: NENUTEIKITE SKAIČIŲ reikšmių, tokių kaip molekulinė masė, lydymosi temperatūra ir pan.; Aš juos gausiu su RDKit / PubChem. Tiesiog nurodykite konstrukcijos ID.
Skirtumas: AI nukreipėme į tai, kas yra stipri (struktūros tapatybė), ir nuo to, kas silpna (eksperimentiniai skaičiai).
Įspūdžių palyginimas
funkcija
Šypsenos
InChI / InChIKey
Skaitomumas
Aukštas (draugiškas žmonėms)
Žemas (tinka mašinai)
kanoniškumas
Gali keistis (reikia kanonizuoti)
natūraliai vienišas
Naudojimas
žmonių bendravimas, piešimas, įvedimas
Duomenų bazės atitiktis, tapatybė
stereochemija
Palaiko (@ simboliai)
Atramos (sluoksniuotos)
duoti AI
idealus
Idealiai tinka patvirtinimui
mini dėklai
1 atvejis – du pavadinimai, viena molekulė. Studentas manė, kad „N-acetil-para-aminofenolis“ ir „paracetamolis“ yra skirtingi junginiai, ir suplanavo du atskirus eksperimentus. Kai jų Šypsenos buvo kanonizuotos RDKit, jos abi pasirodė esančios CC(=O)Nc1ccc(O)cc1; Tai buvo ta pati molekulė. Prarasta: pusė dienos planavimo; padidėjimas: galėjo būti išvengta atliekant 2 minučių kanonizacijos patikrinimą.
2 atvejis – netinkamas SMILES fiksavimas. AI grąžino CC(=O)Nc1ccc(O)cc1C( variantui (skliausteliai neuždaryti). Mokinys paleido „MolFromSmiles“, jis grąžino „Nėra“, iškart pamatė klaidą ir paprašė ištaisyti SMILES. Nepatvirtinus, sugedusi struktūra būtų išplitusi į visas paskyras.
3 atvejis – neteisinga molekulinė masė. YZ pasakė, kad ibuprofeno (C13H18O2) molekulinė masė yra 214,3 g/mol. RDKit skaičiavimas davė 206,28 g/mol. Skirtumas 0,1 mol: 21,43 g su YZ, faktiškai 20,63 g. Šis 3,9 % skirtumas sutrikdytų stechiometriją ir derliaus skaičiavimą. Tai atnešė deterministinį skaičiavimą.
Dažnos klaidos
- Nurodykite molekulę pavadinimu. Sinonimai/prekių pavadinimai supainioti. Visada įtraukite SMILES arba InChI.
- Šypsenų palyginimas be kanonizacijos. OCC ir CCO skiriasi tekstu, bet vienodi molekulėse.
- Molekulinės masės klausimas liežuvio modeliui. Tai deterministinis skaičiavimas; Tai atliekama iš RDKit arba rankiniu būdu iš formulės.
- Nepastebi netinkamų SMILES. „MolFromSmiles None“ grįžimo netikrinama ir tęsiama naudojant netinkamą struktūrą.
- Stereochemijos nepaisymas. Šie du enantiomerai (veidrodinio vaizdo izomerai) gali turėti skirtingą biologinį poveikį; Praleidžiami @/@@ ženklai SMILES.
Dėmesio: ta pati molekulinė formulė nereiškia skirtingų molekulių. C2H6O yra ir etanolis (CCO), ir dimetilo eteris (COC). Formulės lygybė nėra tapatumo lygybė; Identifikavimui naudokite InChIKey.
Apibendrinant
- Identifikuokite molekules pagal struktūros žymėjimą, o ne pagal pavadinimą: SMILES su žmogumi, InChI/InChIKey su duomenų baze.
- RDKit yra deterministinis; AI numato, RDKit apskaičiuoja ir patikrina.
- Išnagrinėkite kiekvieną DI SMILES naudodami MolFromSmiles ir patikrinkite, ar nėra, tada nustatykite kanonizaciją.
- Gaukite skaičius, pvz., molekulinę masę ir formulę, iš RDKit, o ne iš kalbos modelio.
- Formulės lygybė nereiškia molekulinės tapatybės; Identifikavimui naudokite InChIKey.
Taikymo užduotis
Pasirinkite tris junginius (pvz., kofeiną, ibuprofeną, gliciną). Paprašykite dirbtinio intelekto kanoninių SMILES kiekvienam. Tada parašykite RDKit scenarijų (naudokite aukščiau pateiktą šabloną) ir sugeneruokite: kanonines SMILES, molekulinę formulę, molekulinę masę, InChIKey. Kiek iš AI suteiktų Šypsenų galiojo? Jei YZ taip pat nurodė molekulinę masę, apskaičiuokite skirtumą procentais pagal RDKit reikšmę. Savo radinius surašykite į mažą lentelę.
kontrolinis sąrašas
- [ ] Žinau, kas yra SMILES ir InChI/InChIKey ir kada juos naudoti.
- [ ] Kiekvieną AI pateiktą Šypseną tikrinu naudodamas „MolFromSmiles“.
- [ ] Kanonizuoju Šypsenos prieš palygindamas.
- [ ] Molekulinę masę ir formulę gaunu iš RDKit, o ne iš kalbos modelio.
- [ ] Patvirtinu molekulės tapatybę duomenų bazėje su InChIKey.
- [ ] Žinau situacijas, kai svarbi stereochemija.