Keuntungan:
- Kemampuan untuk mengidentifikasi molekul bukan berdasarkan nama tetapi berdasarkan representasi struktur (SMILES dengan manusia, InChI/InChIKey dengan database)
- Kemampuan untuk mendeteksi struktur yang tidak valid atau salah dengan mengurai, memvalidasi, dan mengkanonikalisasi setiap SMILES yang diberikan oleh kecerdasan buatan dengan RDKit
- Mampu memahami bahwa besaran deterministik seperti berat molekul dan rumus harus diperoleh dari alat berbasis aturan, bukan dari model bahasa.
Syarat pertama untuk menggunakan AI dengan aman dalam bidang kimia adalah menulis molekul dalam bahasa yang dapat dimengerti oleh mesin dan manusia. Anda mengatakan "fenol", AI menjawab dengan benar; tapi ketika Anda mengatakan "asam" ada ribuan kemungkinan. Nama-namanya ambigu; representasi struktur tepat. Dalam unit ini, kita akan mempelajari dua notasi dasar yang menerjemahkan molekul ke dalam teks (SMILES dan InChI) dan alat yang memverifikasinya secara deterministik (RDKit). Tujuan kami: memberikan molekul kepada AI dengan cara yang tidak akan pernah disalahpahami, dan untuk memastikan struktur yang dihasilkan AI dengan suatu alat.
Apa itu SENYUM?
SMILES (Sistem Entri Jalur Input Molekuler Sederhana) adalah format penulisan molekul dalam satu baris teks. Atom dilambangkan dengan huruf, ikatan dengan simbol, dan cincin dengan angka. Contoh:
- Etanol: CCO (karbon–karbon–oksigen; hidrogen tersirat).
- Benzena: c1ccccc1 (huruf kecil "c" menunjukkan karbon aromatik; 1 tutup cincinnya).
- Aspirin: CC(=O)Oc1ccccc1C(=O)O.
- Kafein: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
Kekuatan SMILES adalah ia membawa seluruh struktur tautan dalam satu baris; Kelemahannya adalah molekul yang sama dapat memiliki beberapa SMILES yang valid (hal ini disebut non-kanonikalitas). Kami akan menyelesaikan ini dengan RDKit sebentar lagi.
Petunjuk: "SENYUM kanonik" untuk sebuah molekul adalah satu-satunya ejaan standar untuk molekul tersebut. Untuk melihat apakah dua SMILES merupakan molekul yang sama, kanonikalisasikan dan bandingkan keduanya; Mereka tidak boleh sama secara tekstual, tetapi mereka harus merupakan molekul yang setara.
Apa itu InChI?
InChI (International Chemical Identifier) adalah pengidentifikasi standar yang dikembangkan oleh IUPAC. Perbedaannya dengan SMILES adalah molekul yang sama selalu menghasilkan InChI yang sama; artinya, sifatnya kanonik. Ini panjang dan sulit dibaca, tetapi ideal untuk pencocokan database. Singkatan "InChIKey" (intisari 27 karakter) digunakan untuk pencarian.
- Aspirin InChiKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
Aturan: Orang berbicara SMILES (baca), mesin dan database cocok dengan InChI/InChIKey (tepat). Berikan SMILES kepada AI; Konfirmasikan di database dengan InChIKey.
RDKit: mesin verifikasi deterministik
RDKit adalah perpustakaan kimia informatika open source. Berbeda dengan model bahasa, model ini berbasis aturan: mengurai SMILES, menghitung berat molekul, menghasilkan SMILES kanonik, mengembalikan InChI/InChIKey, menggambar molekul. Jadi RDKit "menghitung" apa yang "diprediksi" oleh AI. Inilah inti dari alur kerja: AI menghasilkan, RDKit memverifikasi.
Alur verifikasi dasar:
from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Rumus molekul:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Berat molekul:", round(Descriptors.MolWt(mol), 2), "g/mol") print("InChiKey:", Chem.MolToInchiKey(mol))
Jika MolFromSmiles mengembalikan Tidak Ada, AI telah memberi Anda molekul yang tidak valid; Ini saja merupakan peringatan yang sangat berharga. Jika valid, Anda tidak perlu lagi menanyakan berat molekul model bahasa; Hal ini ada di tangan Anda secara deterministik.
Langkah demi langkah: interoperasi AI + RDKit
- Identifikasi molekulnya: Beri nama AI, minta SMILES. Misalnya, "verifikasi SMILES kanonik untuk parasetamol".
- Verifikasi: Parsing SMILES yang masuk dengan MolFromSmiles. Jika Tidak Ada, tolak.
- Canonicalize: Ambil ejaan kanonik dengan MolToSmiles; Selalu gunakan ini mulai sekarang.
- Hitung angka: Dapatkan berat molekul, rumus, jumlah cincin, jumlah donor/akseptor ikatan hidrogen, dll. dari RDKit, bukan dari AI.
- Fix ID: Hasilkan InChIKey, cari di database (PubChem), konfirmasikan bahwa molekul tersebut memang senyawa yang Anda inginkan.
Empat templat yang dapat disalin
1) Meminta SMILES (dari kata benda ke struktur):
Tugas: Berikan SMILES kanonik untuk senyawa berikut. Senyawa: parasetamol (asetaminofen). Aturan: Berikan hanya string SMILES dan InChIKey saja, jangan menambahkan penjelasan lebih lanjut. Jika tidak yakin, tulislah “TIDAK PASTI”, jangan berbaikan.
2) Permintaan validasi SMILES (dari struktur ke kontrol):
Periksa SMILES di bawah ini: CC(=O)Nc1ccc(O)cc1Pertanyaan:1) Apakah ini SMILES yang valid?2) Senyawa apa yang sesuai (nama umum)?3) Apa rumus molekulnya?Catatan: Saya akan menghitung berat molekul pastinya dengan RDKit; Anda tinggal memberikan interpretasi struktur Anda.
3) Membandingkan dua representasi:
Saya mempunyai dua SMILES:A) OCCB) CCOTask: Apakah ini molekul yang sama atau berbeda? Tulis alasan Anda. Catatan: Saya akan memeriksa ulang jawaban Anda dengan mengkanonikalisasikannya di RDKit.
4) Penjelasan struktur (untuk tujuan pembelajaran):
SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTugas: Bacalah SMILES ini sepotong demi sepotong dan jelaskan arti setiap simbol (atom, ikatan, cincin, aromatisitas) dalam bahasa Turki yang sederhana. Beritahukan juga senyawa apa itu.
Perintah lemah / Perintah kuat
Lemah:
Berikan sifat-sifat asetaminofen.
"Fitur" tidak jelas; AI menghasilkan angka acak dari berat molekul hingga titik leleh, beberapa di antaranya salah.
Kuat:
Senyawa: acetaminophen.1) Canonical SMILES dan InChIKey ver.2) Berikan rumus molekulnya. Aturan: JANGAN MEMBERIKAN nilai NUMERIK seperti berat molekul, titik leleh, dll; Saya akan mendapatkannya dengan RDKit/PubChem. Berikan saja ID buildnya.
Perbedaan: Kami mengarahkan AI ke arah kelebihannya (identitas struktur) dan menjauhi kelemahannya (angka eksperimental).
Perbandingan tayangan
fitur
SENYUM
InChI / InChiKey
Keterbacaan
Tinggi (ramah orang)
Rendah (ramah mesin)
kanonisitas
Dapat berubah sewaktu-waktu (membutuhkan kanonisasi)
secara alami lajang
Penggunaan
komunikasi manusia, gambar, masukan
Kecocokan basis data, identitas
stereokimia
Mendukung (@ simbol)
Mendukung (berlapis)
untuk diberikan kepada AI
ideal
Ideal untuk konfirmasi
kasus kecil
Kasus 1 — Dua nama, satu molekul. Seorang siswa mengira bahwa "N-asetil-para-aminofenol" dan "parasetamol" adalah senyawa yang berbeda dan merencanakan dua percobaan terpisah. Saat mengkanonikalisasi SMILES mereka di RDKit, keduanya ternyata CC(=O)Nc1ccc(O)cc1; Itu adalah molekul yang sama. Hilang: setengah hari perencanaan; keuntungan: bisa dihindari dengan pemeriksaan kanonikalisasi selama 2 menit.
Kasus 2 — Pengambilan SMILES tidak valid. AI mengembalikan CC(=O)Nc1ccc(O)cc1C( untuk varian (tanda kurung tidak ditutup). Siswa menjalankan MolFromSmiles, ia mengembalikan Tidak Ada, segera melihat kesalahan dan meminta SMILES yang diperbaiki. Tanpa verifikasi, struktur yang salah akan menyebar ke semua akun.
Kasus 3 — Berat molekul salah. YZ mengatakan "berat molekul 214,3 g/mol" untuk ibuprofen (C13H18O2). Perhitungan RDKit menghasilkan 206,28 g/mol. Selisih 0,1 mol: 21,43 g dengan YZ, sebenarnya 20,63 g. Selisih sebesar 3,9% ini akan mengganggu perhitungan stoikiometri dan rendemen. Ini membawa kalkulus deterministik.
Kesalahan umum
- Memberikan molekul dengan nama. Sinonim/nama dagang membingungkan. Selalu sertakan SMILES atau InChI.
- Membandingkan SMILES tanpa mengkanonikalisasikannya. OCC dan CCO berbeda dalam teks tetapi sama dalam molekul.
- Menanyakan berat molekul pada model lidah. Ini adalah perhitungan deterministik; Itu dilakukan dari RDKit atau secara manual dari rumus.
- Tidak memperhatikan SMILES yang tidak valid. Tidak memeriksa kembalinya MolFromSmiles None dan melanjutkan dengan struktur yang salah.
- Mengabaikan stereokimia. Kedua enantiomer (isomer gambar cermin) mungkin menunjukkan efek biologis yang berbeda; Melewatkan tanda @/@@ di SMILES.
Perhatian: Rumus molekul yang sama tidak berarti molekulnya berbeda. C2H6O adalah etanol (CCO) dan dimetil eter (COC). Kesetaraan formula bukanlah persamaan identitas; Gunakan InChIKey untuk identifikasi.
Singkatnya
- Identifikasi molekul berdasarkan notasi struktur, bukan berdasarkan nama: SMILES dengan manusia, InChI/InChIKey dengan database.
- RDKit bersifat deterministik; AI memprediksi, RDKit menghitung dan memverifikasi.
- Parsing setiap AI SMILES dengan MolFromSmiles dan centang Tidak Ada, lalu kanonikalisasi.
- Dapatkan angka seperti berat molekul dan rumus dari RDKit, bukan dari model bahasa.
- Kesetaraan rumus tidak berarti identitas molekuler; Gunakan InChIKey untuk identifikasi.
Tugas aplikasi
Pilih tiga senyawa (misalnya kafein, ibuprofen, glisin). Minta AI untuk SMILES kanonik untuk masing-masing. Kemudian tulis skrip RDKit (gunakan templat di atas) dan hasilkan: SMILES kanonik, rumus molekul, berat molekul, InChIKey. Berapa banyak SMILES yang diberikan oleh AI yang valid? Jika YZ juga memberikan berat molekul, hitung selisihnya sebagai persentase dengan nilai RDKit. Plot temuan Anda ke dalam tabel kecil.
daftar periksa
- [ ] Saya tahu apa itu SMILES dan InChI/InChIKey dan kapan menggunakannya.
- [ ] Saya memverifikasi setiap SMILES yang diberikan oleh AI dengan MolFromSmiles.
- [ ] Saya mengkanonikalisasi SMILES sebelum membandingkannya.
- [ ] Saya mendapatkan berat molekul dan rumus dari RDKit, bukan dari model bahasa.
- [ ] Saya mengkonfirmasi identitas molekul dalam database dengan InChIKey.
- [ ] Saya tahu situasi di mana stereokimia itu penting.