المكاسب:
- القدرة على تحديد الجزيئات ليس بالاسم ولكن من خلال تمثيل البنية (SMILES مع البشر، InChI/InChIKey مع قاعدة البيانات)
- القدرة على اكتشاف الهياكل غير الصالحة أو غير الصحيحة عن طريق التحليل والتحقق من صحة وتعريف كل SMILES المقدمة بواسطة الذكاء الاصطناعي باستخدام RDKit
- القدرة على فهم أن الكميات الحتمية مثل الوزن الجزيئي والصيغة يجب الحصول عليها من الأداة القائمة على القواعد، وليس من النموذج اللغوي.
الشرط الأول لاستخدام الذكاء الاصطناعي بشكل آمن في الكيمياء هو كتابة الجزيء بلغة يمكن للآلة والإنسان فهمها. عندما تقول "فينول"، فإن الذكاء الاصطناعي يفهم الأمر بشكل صحيح؛ ولكن عندما تقول "حمض" هناك آلاف الاحتمالات. الأسماء غامضة. تمثيلات الهيكل دقيقة. في هذه الوحدة، سوف نتعلم الترميزين الأساسيين اللذين يترجمان الجزيء إلى نص (SMILES وInChI) والأداة التي تتحقق منهما بشكل حتمي (RDKit). هدفنا: إعطاء الجزيء للذكاء الاصطناعي بطريقة لن يساء فهمها أبدًا، وتأكيد البنية التي ينتجها الذكاء الاصطناعي باستخدام أداة.
ما هو الابتسامات؟
SMILES (نظام إدخال سطر الإدخال الجزيئي المبسط) هو تنسيق لكتابة جزيء في سطر واحد من النص. يتم تمثيل الذرات بالحروف، والروابط بالرموز، والحلقات بالأرقام. أمثلة:
- الإيثانول: CCO (الكربون - الكربون - الأكسجين؛ الهيدروجين ضمنيًا).
- البنزين: c1ccccc1 (الحرف الصغير "c" يشير إلى الكربون العطري؛ 1 يغلق الحلقة).
- الأسبرين: CC(=O)Oc1ccccc1C(=O)O.
- الكافيين: Cn1cnc2c1c(=O)n(C)c(=O)n2C.
تكمن قوة SMILES في أنها تحمل بنية الارتباط بأكملها في سطر واحد؛ تكمن نقطة ضعفه في أن نفس الجزيء يمكن أن يكون له العديد من الابتسامات الصالحة (وهذا ما يسمى باللاقانونية). سوف نقوم بحل هذه المشكلة مع RDKit في لحظة.
تلميح: "الابتسامات الأساسية" للجزيء هي التهجئة القياسية الوحيدة لذلك الجزيء. لمعرفة ما إذا كان اثنان من SMILES هما نفس الجزيء، قم بتحديدهما ومقارنتهما؛ ولا ينبغي أن يكونا متساويين من حيث النص، بل ينبغي أن يكونا جزيئات متساوية.
ما هو إنتشي؟
InChI (المعرف الكيميائي الدولي) هو معرف قياسي تم تطويره بواسطة IUPAC. الفرق عن SMILES هو أن نفس الجزيء يعطي دائمًا نفس InChI؛ أي أنها ذات طبيعة قانونية. إنه طويل وصعب القراءة، ولكنه مثالي لمطابقة قاعدة البيانات. يتم استخدام "InChIKey" المختصر (ملخص مكون من 27 حرفًا) للبحث.
- الأسبرين InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.
القاعدة: يتحدث الناس SMILES (اقرأ)، وتتطابق الآلات وقواعد البيانات مع InChI/InChIKey (تمامًا). أعط الابتسامات للذكاء الاصطناعي؛ قم بالتأكيد في قاعدة البيانات باستخدام InChIKey.
RDKit: محرك التحقق الحتمي
RDKit هي مكتبة معلوماتية كيميائية مفتوحة المصدر. على عكس نموذج اللغة، فهو يعتمد على القواعد: يوزع SMILES، ويحسب الوزن الجزيئي، ويولد SMILES الأساسية، ويعيد InChI/InChIKey، ويرسم الجزيء. لذا فإن RDKit "يحسب" ما "يتنبأ به" الذكاء الاصطناعي. هذا هو قلب سير العمل: يُنشئ الذكاء الاصطناعي، ويتحقق RDKit.
تدفق التحقق الأساسي:
من rdkit استيراد Chemfrom rdkit.Chem استيراد الواصفات، Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("الصيغة الجزيئية:"، Chem.rdMolDescriptors.CalcMolFormula(mol)) print("الوزن الجزيئي:"، round(Descriptors.MolWt(mol)، 2)، "g/mol") طباعة ("InChIKey:"، Chem.MolToInchiKey (mol))
إذا قامت MolFromSmiles بإرجاع لا شيء، فهذا يعني أن الذكاء الاصطناعي قد أعطاك جزيءًا غير صالح؛ وهذا وحده تحذير قيم للغاية. إذا كان صالحًا، فلن تحتاج بعد الآن إلى سؤال النموذج اللغوي عن الوزن الجزيئي؛ إنه بين يديك حتماً.
خطوة بخطوة: التشغيل البيني AI + RDKit
- تحديد الجزيء: قم بتسمية الذكاء الاصطناعي واطلب الابتسامات. على سبيل المثال، "التحقق من SMILES الأساسي للباراسيتامول."
- التحقق: تحليل الابتسامات الواردة باستخدام MolFromSmiles. إذا لم يكن هناك، رفض.
- Canonicalize: استرداد التهجئة الأساسية باستخدام MolToSmiles؛ استخدم هذا دائمًا من الآن فصاعدًا.
- حساب الأرقام: احصل على الوزن الجزيئي والصيغة وعدد الحلقات وعدد الجهات المانحة/المتقبلة لرابطة الهيدروجين وما إلى ذلك من RDKit، وليس من الذكاء الاصطناعي.
- معرف الإصلاح: قم بإنشاء InChIKey، وابحث في قاعدة البيانات (PubChem)، وتأكد من أن الجزيء هو بالفعل المركب الذي تريده.
أربعة قوالب قابلة للنسخ
1) طلب الابتسامات (من الاسم إلى البنية):
المهمة: قم بإعطاء الابتسامات الأساسية للمركب التالي. المركب: باراسيتامول (أسيتامينوفين). القاعدة: قم بإعطاء سلسلة SMILES وInChIKey فقط، ولا تضيف أي شرح إضافي. إذا لم تكن متأكدا، فاكتب "غير متأكد"، لا تعوض.
2) طلب التحقق من صحة الابتسامات (من الهيكل إلى التحكم):
قم بفحص الابتسامات أدناه: CC(=O)Nc1ccc(O)cc1الأسئلة: 1) هل هذا SMILES صالح؟ 2) ما المركب الذي يتوافق معه (الاسم الشائع)؟ 3) ما هي الصيغة الجزيئية؟ ملاحظة: سأقوم بحساب الوزن الجزيئي الدقيق باستخدام RDKit؛ أنت فقط تعطي تفسير الهيكل الخاص بك.
3) المقارنة بين تمثيلين:
لدي ابتسامتان: أ) OCCB) CCOTask: هل هذان الجزيء نفسه أم مختلفان؟ اكتب أسبابك. ملاحظة: سأقوم بمراجعة إجابتك من خلال تحديدها بشكل أساسي في RDKit.
4) شرح الهيكل (لأغراض التعلم):
الابتسامات: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: اقرأ هذه الابتسامات قطعة قطعة واشرح ما يعنيه كل رمز (ذرة، رابطة، حلقة، عطرية) باللغة التركية البسيطة. أخبر أيضًا أي مركب هو.
موجه ضعيف / موجه قوي
ضعيف:
إعطاء خصائص الاسيتامينوفين.
"الميزة" غامضة؛ يقوم الذكاء الاصطناعي بإنشاء أرقام عشوائية من الوزن الجزيئي إلى نقطة الانصهار، وبعضها سيكون خاطئًا.
قوي:
المركب: أسيتامينوفين.1) الابتسامات القانونية وإصدار InChIKey.2) أعط الصيغة الجزيئية. القاعدة: لا تعطي قيمًا رقمية مثل الوزن الجزيئي، ونقطة الانصهار، وما إلى ذلك؛ سأحصل عليها باستخدام RDKit/PubChem. فقط قم بإعطاء معرف البناء.
الفرق: وجهنا الذكاء الاصطناعي نحو ما هو قوي فيه (الهوية الهيكلية) وبعيداً عما هو ضعيف فيه (الأرقام التجريبية).
مقارنة الانطباعات
ميزة
ابتسامات
إنتشي / إنتشيكي
سهولة القراءة
عالية (صديقة للناس)
منخفض (صديق للآلة)
الكنسي
عرضة للتغيير (يحتاج إلى تقديس)
واحد بشكل طبيعي
الاستخدام
التواصل البشري، الرسم، الإدخال
مطابقة قاعدة البيانات، الهوية
الكيمياء المجسمة
يدعم (@الرموز)
يدعم (الطبقات)
لإعطاء لمنظمة العفو الدولية
مثالي
مثالية للتأكيد
حالات صغيرة
الحالة 1 - اسمان، جزيء واحد. اعتقد أحد الطلاب أن "N-acetyl-para-aminophenol" و"paracetamol" مركبان مختلفان وخطط لإجراء تجربتين منفصلتين. عندما تم تحديد SMILES بشكل أساسي في RDKit، تبين أن كلاهما CC(=O)Nc1ccc(O)cc1; لقد كان نفس الجزيء. ضائع: نصف يوم من التخطيط؛ الربح: كان من الممكن تجنبه من خلال التحقق من التحديد الأساسي لمدة دقيقتين.
الحالة 2 - التقاط ابتسامات غير صالحة. قام الذكاء الاصطناعي بإرجاع CC(=O)Nc1ccc(O)cc1C( لمتغير (الأقواس غير مغلقة). قام الطالب بتشغيل MolFromSmiles، وأرجع لا شيء، ورأى الخطأ على الفور وطلب 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 لا شيء والاستمرار في البنية الخاطئة.
- إهمال الكيمياء المجسمة. قد يُظهر المتصاوغان (أيزومرات الصورة المرآة) تأثيرات بيولوجية مختلفة؛ تخطي العلامات @/@@ في SMILES.
تنبيه: نفس الصيغة الجزيئية لا تعني جزيئات مختلفة. C2H6O عبارة عن إيثانول (CCO) وإيثر ثنائي ميثيل (COC). المساواة في الصيغة ليست مساواة في الهوية؛ استخدم InChIKey لتحديد الهوية.
باختصار
- تحديد الجزيئات عن طريق تدوين البنية، وليس بالاسم: SMILES مع الإنسان، InChI/InChIKey مع قاعدة البيانات.
- RDKit حتمية. يتنبأ الذكاء الاصطناعي، ويقوم RDKit بالحساب والتحقق.
- قم بتحليل كل ابتسامات الذكاء الاصطناعي باستخدام MolFromSmiles وتحقق من عدم وجود شيء، ثم قم بتحديدها بشكل أساسي.
- احصل على أرقام مثل الوزن الجزيئي والصيغة من RDKit، وليس من نموذج اللغة.
- المساواة في الصيغة لا تعني الهوية الجزيئية؛ استخدم InChIKey لتحديد الهوية.
مهمة التطبيق
اختر ثلاثة مركبات (مثل الكافيين والإيبوبروفين والجليسين). اطلب من الذكاء الاصطناعي الابتسامات الأساسية لكل منها. ثم اكتب نصًا RDKit (استخدم القالب أعلاه) وقم بإنشاء: SMILES الأساسية، الصيغة الجزيئية، الوزن الجزيئي، InChIKey. كم عدد الابتسامات التي قدمها الذكاء الاصطناعي كانت صالحة؟ إذا أعطى YZ أيضًا الوزن الجزيئي، فاحسب الفرق كنسبة مئوية مع قيمة RDKit. ارسم نتائجك في جدول صغير.
قائمة مرجعية
- [ ] أعرف ما هي SMILES وInChI/InChIKey ومتى يجب استخدامها.
- [ ] أتحقق من كل الابتسامات التي يقدمها الذكاء الاصطناعي باستخدام MolFromSmiles.
- [ ] أقوم بتحديد SMILES بشكل أساسي قبل مقارنتها.
- [ ] أحصل على الوزن الجزيئي والصيغة من RDKit، وليس من نموذج اللغة.
- [ ] قمت بتأكيد هوية الجزيء في قاعدة البيانات باستخدام InChIKey.
- [ ] أعرف المواقف التي تكون فيها الكيمياء المجسمة مهمة.