سود:
- توانایی شناسایی مولکول ها نه با نام بلکه با نمایش ساختار (لبخند با انسان، InChI/InChIKey با پایگاه داده)
- امکان تشخیص ساختارهای نامعتبر یا نادرست با تجزیه، اعتبارسنجی و متعارف کردن هر لبخند ارائه شده توسط هوش مصنوعی با RDKit
- توانایی درک اینکه کمیت های قطعی مانند وزن مولکولی و فرمول باید از ابزار مبتنی بر قانون به دست آیند، نه از مدل زبان.
اولین شرط برای استفاده ایمن از هوش مصنوعی در شیمی، نوشتن مولکول به زبانی است که هم ماشین و هم انسان قابل درک باشند. شما می گویید "فنول"، هوش مصنوعی آن را درست می فهمد. اما وقتی می گویید "اسید" هزاران احتمال وجود دارد. نام ها مبهم هستند. نمایش ساختار دقیق است. در این بخش، دو نماد اصلی که مولکول را به متن ترجمه میکنند (SMILES و InChI) و ابزاری که آنها را به طور قطعی تأیید میکند (RDKit) را یاد میگیریم. هدف ما: دادن مولکول به هوش مصنوعی به گونه ای که هرگز سوء تفاهم نشود و ساختار تولید شده توسط هوش مصنوعی را با ابزاری تایید کنیم.
SMILES چیست؟
SMILES (سیستم ورودی خط ورودی مولکولی ساده) قالبی برای نوشتن یک مولکول در یک خط متن است. اتم ها با حروف، پیوندها با نمادها و حلقه ها با اعداد نشان داده می شوند. مثال ها:
- اتانول: CCO (کربن-کربن-اکسیژن؛ هیدروژن ضمنی).
- بنزن: c1cccc1 (حروف کوچک c نشان دهنده کربن معطر است؛ 1 حلقه را می بندد).
- آسپرین: CC(=O)Oc1ccccc1C(=O)O.
- کافئین: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
قدرت SMILES این است که کل ساختار پیوند را در یک خط حمل می کند. نقطه ضعف آن این است که یک مولکول می تواند چندین SMILES معتبر داشته باشد (به این حالت غیر متعارف می گویند). ما این را با RDKit در یک لحظه حل خواهیم کرد.
نکته: "لبخند متعارف" برای یک مولکول، املای واحد و استاندارد آن مولکول است. برای اینکه ببینید آیا دو لبخند یک مولکول هستند، آنها را متعارف کنید و مقایسه کنید. آنها نباید از نظر متنی برابر باشند، اما باید مولکول های برابر باشند.
InChI چیست؟
InChI (شناسه بین المللی شیمیایی) یک شناسه استاندارد است که توسط IUPAC توسعه یافته است. تفاوت با SMILES این است که یک مولکول همیشه InChI یکسانی را ارائه می دهد. یعنی ماهیت شرعی دارد. خواندن آن طولانی و دشوار است، اما برای تطبیق پایگاه داده ایده آل است. خلاصه شده "InChIKey" (خلاصه 27 کاراکتری) برای جستجو استفاده می شود.
- آسپرین InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
قانون: مردم با SMILES صحبت می کنند (خواندن)، ماشین ها و پایگاه های داده با InChI/InChIKey مطابقت دارند (دقیقا). به هوش مصنوعی لبخند بدهید. در پایگاه داده با InChIKey تایید کنید.
RDKit: موتور تأیید قطعی
RDKit یک کتابخانه شیمیفورماتیک منبع باز است. بر خلاف مدل زبان، مبتنی بر قانون است: SMILES را تجزیه می کند، وزن مولکولی را محاسبه می کند، SMILES متعارف تولید می کند، InChI/InChIKey را برمی گرداند، مولکول را ترسیم می کند. بنابراین RDKit آنچه را که هوش مصنوعی «پیشبینی میکند» «محاسبه میکند». این قلب گردش کار است: AI تولید می کند، RDKit تأیید می کند.
یک جریان تأیید اولیه:
from rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Formule Molecular:", Chem.rdMolDescriptors.CalcMolFormula(Mole)Descriptors:(Mol)Descriptors round:(Mol) 2)، "g/mol") print("InChIKey:"، Chem.MolToInchiKey(mol))
اگر MolFromSmiles None را برگرداند، هوش مصنوعی یک مولکول نامعتبر به شما داده است. این به تنهایی یک هشدار بسیار ارزشمند است. اگر معتبر باشد، دیگر نیازی نیست که وزن مولکولی را از مدل زبان بپرسید. به طور قطعی در دستان شماست.
گام به گام: عملکرد متقابل AI + RDKit
- مولکول را شناسایی کنید: نام هوش مصنوعی را بدهید، SMILES را بخواهید. به عنوان مثال، "تأیید لبخند متعارف برای پاراستامول."
- تأیید کنید: لبخندهای ورودی را با MolFromSmiles تجزیه کنید. اگر هیچ، رد کنید.
- Canonicalize: املای متعارف را با MolToSmiles بازیابی کنید. از این به بعد همیشه از این استفاده کنید.
- اعداد را محاسبه کنید: وزن مولکولی، فرمول، تعداد حلقهها، تعداد اهداکنندگان/پذیرندههای پیوند هیدروژنی و غیره را از RDKit دریافت کنید، نه از AI.
- شناسه ثابت: InChIKey را ایجاد کنید، در پایگاه داده (PubChem) جستجو کنید، تأیید کنید که مولکول واقعاً ترکیبی است که میخواهید.
چهار قالب قابل کپی
1) درخواست SMILES (از اسم تا ساختار):
وظیفه: SMILES متعارف را برای ترکیب زیر بدهید. ترکیب: پاراستامول (استامینوفن). قانون: فقط رشته SMILES و InChIKey را بدهید، توضیح بیشتری اضافه نکنید. اگر مطمئن نیستید، بنویسید «مطمئن نیست»، آرایش نکنید.
2) درخواست اعتبارسنجی SMILES (از ساختار تا کنترل):
SMILES زیر را بررسی کنید: CC(=O)Nc1ccc(O)cc1سوالات:1) آیا این یک SMILES معتبر است؟2) با چه ترکیبی مطابقت دارد (نام رایج)؟3) فرمول مولکولی چیست؟ توجه: وزن مولکولی دقیق را با RDKit محاسبه خواهم کرد. شما فقط تفسیر ساختار خود را بدهید.
3) مقایسه دو نمایش:
من دو لبخند دارم:الف) OCCB) CCOTask: آیا اینها مولکول یکسانی هستند یا متفاوت هستند؟ استدلال خود را بنویسید. توجه: من پاسخ شما را با متعارف کردن آن در RDKit بررسی می کنم.
4) توضیح ساختار (برای اهداف یادگیری):
SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CT: این SMILES را تکه تکه بخوانید و معنی هر نماد (اتم، پیوند، حلقه، معطر بودن) را به ترکی ساده توضیح دهید. همچنین بگویید کدام ترکیب است.
اعلان ضعیف / اعلان قوی
ضعیف:
خواص استامینوفن را بدهید.
"ویژگی" مبهم است. هوش مصنوعی اعداد تصادفی را از وزن مولکولی تا نقطه ذوب تولید می کند که برخی از آنها اشتباه خواهند بود.
قوی:
ترکیب: استامینوفن. 1) Canonical SMILES و InChIKey ver.2) فرمول مولکولی را بدهید. قانون: مقادیر عددی مانند وزن مولکولی، نقطه ذوب و غیره را ندهید. من آنها را با RDKit/PubChem دریافت خواهم کرد. فقط شناسه ساخت را بدهید.
تفاوت: ما هوش مصنوعی را به سمت آنچه در آن قوی است (هویت ساختار) و دور از آنچه در آن ضعیف است (اعداد تجربی) هدایت کردیم.
مقایسه برداشت ها
ویژگی
لبخند می زند
InChI / InChIKey
خوانایی
بالا (مردم دوستانه)
کم (ماشین پسند)
متعارف بودن
مشمول تغییر (نیاز به کانون سازی دارد)
به طور طبیعی مجرد
استفاده
ارتباط انسانی، نقاشی، ورودی
مطابقت پایگاه داده، هویت
استریوشیمی
پشتیبانی از (@ نمادها)
پشتیبانی (لایه ای)
برای دادن به هوش مصنوعی
ایده آل
ایده آل برای تایید
موارد کوچک
مورد 1 - دو نام، یک مولکول. دانش آموزی فکر کرد که "N-acetyl-para-aminophenol" و "paracetamol" ترکیبات متفاوتی هستند و دو آزمایش جداگانه را برنامه ریزی کرد. وقتی لبخندهایشان در RDKit متعارف شد، هر دوی آنها CC(=O)Nc1ccc(O)cc1 بودند. همان مولکول بود. از دست رفته: نصف روز برنامه ریزی; سود: با یک بررسی 2 دقیقه ای متعارف می توان از آن جلوگیری کرد.
مورد 2 - ثبت نامعتبر SMILES. هوش مصنوعی CC(=O)Nc1ccc(O)cc1C( را برای یک نوع (پرانتز بسته نشده) برگرداند. دانش آموز MolFromSmiles را اجرا کرد، None را برگرداند، فوراً خطا را دید و SMILES اصلاح شده را درخواست کرد. بدون تأیید، ساختار معیوب به همه حسابها سرایت میکرد.
مورد 3 - وزن مولکولی نادرست. YZ گفت: "وزن مولکولی 214.3 گرم در مول" برای ایبوپروفن (C13H18O2). محاسبه RDKit 206.28 گرم در مول را نشان داد. تفاوت 0.1 مول: 21.43 گرم با YZ، در واقع 20.63 گرم. این تفاوت 3.9 درصدی استوکیومتری و محاسبه بازده را مختل می کند. محاسبات قطعی به ارمغان آورد.
اشتباهات رایج
- نامگذاری مولکول مترادف ها / نام های تجاری اشتباه گرفته شده اند. همیشه SMILES یا InChI را شامل شود.
- مقایسه SMILES بدون متعارف کردن آن. OCC و CCO در متن متفاوت هستند اما در مولکول ها یکسان هستند.
- پرسیدن وزن مولکولی به مدل زبان. این یک محاسبه قطعی است. از RDKit یا به صورت دستی از فرمول انجام می شود.
- متوجه نشدن لبخندهای نامعتبر. بررسی نکردن بازگشت MolFromSmiles None و ادامه با ساختار اشتباه.
- غفلت از استریوشیمی دو انانتیومر (ایزومرهای تصویر آینه ای) ممکن است اثرات بیولوژیکی متفاوتی از خود نشان دهند. رد شدن از علائم @/@@ در SMILES.
توجه: فرمول مولکولی یکسان به معنای مولکول های متفاوت نیست. C2H6O هم اتانول (CCO) و هم دی متیل اتر (COC) است. برابری فرمول برابری هویت نیست. از InChIKey برای شناسایی استفاده کنید.
به طور خلاصه
- مولکول ها را با نماد ساختار شناسایی کنید، نه با نام: لبخند با انسان، InChI/InChIKey با پایگاه داده.
- RDKit قطعی است. هوش مصنوعی پیش بینی می کند، RDKit محاسبه و تأیید می کند.
- هر AI SMILES را با MolFromSmiles تجزیه کنید و None را بررسی کنید، سپس متعارف کنید.
- اعدادی مانند وزن مولکولی و فرمول را از RDKit دریافت کنید، نه از مدل زبان.
- برابری فرمول به معنای هویت مولکولی نیست. از InChIKey برای شناسایی استفاده کنید.
وظیفه کاربردی
سه ترکیب (مانند کافئین، ایبوپروفن، گلیسین) را انتخاب کنید. برای هر کدام از هوش مصنوعی لبخندهای متعارف بخواهید. سپس یک اسکریپت RDKit بنویسید (از الگوی بالا استفاده کنید) و ایجاد کنید: SMILES متعارف، فرمول مولکولی، وزن مولکولی، InChIKey. چه تعداد از لبخندهای داده شده توسط هوش مصنوعی معتبر بود؟ اگر YZ وزن مولکولی را نیز داده است، تفاوت را به صورت درصد با مقدار RDKit محاسبه کنید. یافته های خود را در یک میز کوچک رسم کنید.
چک لیست
- [ ] من می دانم SMILES و InChI/InChIKey چیست و چه زمانی از آنها استفاده کنم.
- [ ] من هر لبخند ارائه شده توسط هوش مصنوعی را با MolFromSmiles تأیید می کنم.
- [ ] من لبخندها را قبل از مقایسه آنها متعارف می کنم.
- [ ] من وزن مولکولی و فرمول را از RDKit دریافت می کنم، نه از مدل زبان.
- [ ] من هویت مولکول را در پایگاه داده با InChIKey تایید می کنم.
- [ ] من موقعیت هایی را می شناسم که در آن استریوشیمی مهم است.