Unit 2 / 11

Perwakilan Molekul dan Struktur Kimia: Pengesahan dengan SMILES, InChI dan RDKit

Keuntungan:

  • Keupayaan untuk mengenal pasti molekul bukan dengan nama tetapi dengan perwakilan struktur (SENYUM dengan manusia, InChI/InChIKey dengan pangkalan data)
  • Keupayaan untuk mengesan struktur yang tidak sah atau tidak betul dengan menghuraikan, mengesahkan dan mengkanonikal setiap SMILES yang diberikan oleh kecerdasan buatan dengan RDKit
  • Dapat memahami bahawa kuantiti deterministik seperti berat molekul dan formula harus diperoleh daripada alat berasaskan peraturan, bukan daripada model bahasa.

Syarat pertama untuk menggunakan AI dengan selamat dalam kimia ialah menulis molekul dalam bahasa yang boleh difahami oleh mesin dan manusia. Anda sebut "phenol", AI memahaminya dengan betul; tapi bila sebut "asid" ada beribu kemungkinan. Namanya samar-samar; perwakilan struktur adalah tepat. Dalam unit ini, kita akan mempelajari dua tatatanda asas yang menterjemahkan molekul ke dalam teks (SMILES dan InChI) dan alat yang mengesahkannya secara deterministik (RDKit). Matlamat kami: untuk memberikan molekul kepada AI dengan cara yang tidak akan pernah salah faham, dan untuk mengesahkan struktur yang dihasilkan oleh AI dengan alat.

Apa itu SMILES?

SMILES (Sistem Kemasukan Talian-Masukan Molekul Ringkas) ialah format menulis molekul dalam satu baris teks. Atom diwakili oleh huruf, ikatan dengan simbol, dan cincin dengan nombor. Contoh:

  • Etanol: CCO (karbon–karbon–oksigen; hidrogen tersirat).
  • Benzena: c1ccccc1 (huruf kecil "c" menunjukkan karbon aromatik; 1 tutup gelang).
  • Aspirin: CC(=O)Oc1ccccc1C(=O)O.
  • Kafein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Kuasa SMILES ialah ia membawa keseluruhan struktur pautan dalam satu baris; Kelemahannya ialah molekul yang sama boleh mempunyai berbilang SENYUMAN yang sah (ini dipanggil bukan kanonik). Kami akan menyelesaikannya dengan RDKit sebentar lagi.

Petunjuk: "SENYUMAN kanonik" untuk molekul ialah ejaan tunggal yang standard untuk molekul itu. Untuk melihat sama ada dua SENYUMAN adalah molekul yang sama, kanonikkan dan bandingkannya; Mereka tidak sepatutnya sama dari segi teks, tetapi mereka mestilah molekul yang sama.

Apa itu InChI?

InChI (International Chemical Identifier) ​​​​adalah pengecam standard yang dibangunkan oleh IUPAC. Perbezaan daripada SMILES ialah molekul yang sama sentiasa memberikan InChI yang sama; iaitu ia bersifat kanonik. Ia panjang dan sukar dibaca, tetapi sesuai untuk pemadanan pangkalan data. Disingkat "InChIKey" (cernaan 27 aksara) digunakan untuk mencari.

  • Aspirin InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Peraturan: Orang bercakap SMILES (baca), mesin dan pangkalan data sepadan dengan InChI/InChIKey (tepat). Berikan SENYUMAN kepada AI; Sahkan dalam pangkalan data dengan InChIKey.

RDKit: enjin pengesahan deterministik

RDKit ialah perpustakaan kimia sumber terbuka. Tidak seperti model bahasa, ia berasaskan peraturan: menghuraikan SMILES, mengira berat molekul, menjana SENYUMAN kanonik, mengembalikan InChI/InChIKey, melukis molekul. Jadi RDKit "mengira" apa yang "diramalkan" oleh AI. Inilah nadi aliran kerja: AI menjana, RDKit mengesahkan.

Aliran pengesahan asas:

daripada rdkit import Chemfrom rdkit.Chem import Deskriptor, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Formula Molekul:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("WitDescriptors Mol:",(MolroundDescriptors:",(mol) "g/mol") cetak("InChIKey:", Chem.MolToInchiKey(mol))

Jika MolFromSmiles mengembalikan Tiada, AI telah memberi anda molekul yang tidak sah; Ini sahaja adalah amaran yang sangat berharga. Jika sah, anda tidak perlu lagi bertanya model bahasa untuk berat molekul; Ia berada di tangan anda secara deterministik.

Langkah demi langkah: Interoperasi AI + RDKit

  1. Kenal pasti molekul: Beri nama AI, minta SENYUM. Contohnya, "sahkan SMILES kanonik untuk paracetamol."
  2. Sahkan: Parsing SMILES masuk dengan MolFromSmiles. Jika Tiada, tolak.
  3. Canonicalize: Dapatkan ejaan kanonik dengan MolToSmiles; Sentiasa gunakan ini dari sekarang.
  4. Kira nombor: Dapatkan berat molekul, formula, bilangan cincin, bilangan penderma/penerima ikatan hidrogen dsb. daripada RDKit, bukan daripada AI.
  5. Betulkan ID: Jana InChIKey, cari dalam pangkalan data (PubChem), sahkan bahawa molekul itu sememangnya sebatian yang anda mahukan.

Empat templat yang boleh disalin

1) Meminta SMILES (dari kata nama kepada struktur):

Tugasan: Berikan SENYUMAN kanonik untuk kompaun berikut. Sebatian: paracetamol (acetaminophen). Peraturan: Berikan hanya rentetan SMILES dan InChIKey, jangan tambah sebarang penjelasan lanjut. Jika anda tidak pasti, tulis "TAK PASTI", jangan mengada-ada.

2) Permintaan pengesahan SMILES (dari struktur ke kawalan):

Periksa SENYUMAN di bawah: CC(=O)Nc1ccc(O)cc1Soalan:1) Adakah ini SENYUMAN yang sah?2) Apakah sebatian yang sepadan dengan (nama biasa)?3) Apakah formula molekul?Nota: Saya akan mengira berat molekul yang tepat dengan RDKit; Anda hanya memberi tafsiran struktur anda.

3) Membandingkan dua perwakilan:

Saya mempunyai dua SENYUMAN:A) OCCB) CCOTask: Adakah ini molekul yang sama atau berbeza? Tulis alasan anda. Nota: Saya akan menyemak silang jawapan anda dengan mengkanonikalnya dalam RDKit.

4) Penerangan struktur (untuk tujuan pembelajaran):

SENYUMAN: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Baca SMILES ini sekeping demi sekeping dan terangkan maksud setiap simbol (atom, ikatan, cincin, aromatik) dalam bahasa Turki biasa. Beritahu juga kompaun yang mana.

Gesaan lemah / Gesaan kuat

lemah:

Berikan sifat-sifat acetaminophen.

"Ciri" tidak jelas; AI menjana nombor rawak daripada berat molekul ke takat lebur, beberapa daripadanya akan salah.

kuat:

Kompaun: acetaminophen.1) Canonical SMILES and InChIKey ver.2) Berikan formula molekul. Peraturan: JANGAN BERI NUMERIK seperti berat molekul, takat lebur, dsb.; Saya akan mendapatkannya dengan RDKit/PubChem. Hanya berikan ID binaan.

Perbezaan: Kami mengarahkan AI ke arah yang kukuh (identiti struktur) dan jauh daripada yang lemah (nombor eksperimen).

Perbandingan tanggapan

ciri

TERSENYUM

InChI / InChIKey

Kebolehbacaan

Tinggi (mesra rakyat)

Rendah (mesra mesin)

kanonik

Tertakluk kepada perubahan (memerlukan kanonisasi)

secara semula jadi bujang

Penggunaan

komunikasi manusia, lukisan, input

Padanan pangkalan data, identiti

stereokimia

Menyokong (@ simbol)

Sokongan (berlapis)

untuk diberikan kepada AI

ideal

Sesuai untuk pengesahan

kes mini

Kes 1 — Dua nama, satu molekul. Seorang pelajar berpendapat bahawa "N-acetyl-para-aminophenol" dan "paracetamol" adalah sebatian yang berbeza dan merancang dua eksperimen berasingan. Apabila dikanonikalkan SMILES mereka dalam RDKit, kedua-duanya ternyata menjadi CC(=O)Nc1ccc(O)cc1; Ia adalah molekul yang sama. Hilang: setengah hari perancangan; keuntungan: boleh dielakkan dengan pemeriksaan kanonik selama 2 minit.

Kes 2 — Tangkapan SMILES tidak sah. AI mengembalikan CC(=O)Nc1ccc(O)cc1C( untuk varian (tanda kurung tidak ditutup). Pelajar menjalankan MolFromSmiles, ia mengembalikan Tiada, serta-merta melihat ralat dan meminta SMILES yang diperbetulkan. Tanpa pengesahan, struktur yang rosak akan merebak ke semua akaun.

Kes 3 — Berat molekul yang salah. YZ berkata "berat molekul 214.3 g/mol" untuk ibuprofen (C13H18O2). Pengiraan RDKit memberikan 206.28 g/mol. Perbezaan untuk 0.1 mol: 21.43 g dengan YZ, sebenarnya 20.63 g. Perbezaan 3.9% ini akan mengganggu stoikiometri dan pengiraan hasil. Ia membawa kalkulus deterministik.

Kesilapan biasa

  • Memberi molekul dengan nama. Sinonim/nama dagangan keliru. Sentiasa sertakan SMILES atau InChI.
  • Membandingkan SMILES tanpa mengkanonikalnya. OCC dan CCO berbeza dalam teks tetapi sama dalam molekul.
  • Menanyakan berat molekul kepada model lidah. Ini adalah pengiraan deterministik; Ia dilakukan dari RDKit atau secara manual dari formula.
  • Tidak perasan SENYUMAN tidak sah. Tidak menyemak pemulangan MolFromSmiles None dan meneruskan dengan struktur yang salah.
  • Mengabaikan stereokimia. Kedua-dua enansiomer (isomer imej cermin) mungkin menunjukkan kesan biologi yang berbeza; Melangkau tanda @/@@ dalam SMILES.
Perhatian: Formula molekul yang sama tidak bermakna molekul berbeza. C2H6O ialah kedua-dua etanol (CCO) dan dimetil eter (COC). Kesamaan formula bukanlah kesamaan identiti; Gunakan InChIKey untuk pengenalan.

Secara ringkasnya

  • Kenal pasti molekul dengan tatatanda struktur, bukan dengan nama: SMILES dengan manusia, InChI/InChIKey dengan pangkalan data.
  • RDKit adalah deterministik; AI meramalkan, RDKit mengira dan mengesahkan.
  • Parsing setiap AI SMILES dengan MolFromSmiles dan semak Tiada, kemudian kanonikkan.
  • Dapatkan nombor seperti berat molekul dan formula daripada RDKit, bukan daripada model bahasa.
  • Kesamaan formula tidak bermakna identiti molekul; Gunakan InChIKey untuk pengenalan.

Tugasan permohonan

Pilih tiga sebatian (cth. kafein, ibuprofen, glisin). Minta AI untuk SMILES kanonik untuk setiap satu. Kemudian tulis skrip RDKit (gunakan templat di atas) dan hasilkan: SMILES kanonik, formula molekul, berat molekul, InChIKey. Berapa banyak SMILES yang diberikan oleh AI yang sah? Jika YZ juga memberikan berat molekul, hitung perbezaan sebagai peratusan dengan nilai RDKit. Plot penemuan anda ke dalam jadual kecil.

senarai semak

  • [ ] Saya tahu apa itu SMILES dan InChI/InChIKey dan bila hendak menggunakannya.
  • [ ] Saya mengesahkan setiap SENYUMAN yang diberikan oleh AI dengan MolFromSmiles.
  • [ ] Saya mengkanonikal SMILES sebelum membandingkannya.
  • [ ] Saya mendapat berat molekul dan formula daripada RDKit, bukan daripada model bahasa.
  • [ ] Saya mengesahkan identiti molekul dalam pangkalan data dengan InChIKey.
  • [ ] Saya tahu situasi di mana stereokimia adalah penting.