লাভ:
- অণুগুলিকে নাম দিয়ে নয় বরং গঠন উপস্থাপনের মাধ্যমে সনাক্ত করার ক্ষমতা (মানুষের সাথে স্মাইল, ডাটাবেসের সাথে InChI/InChIKey)
- RDKit এর সাথে কৃত্রিম বুদ্ধিমত্তা দ্বারা প্রদত্ত প্রতিটি স্মাইল পার্সিং, যাচাইকরণ এবং ক্যানোনিকালাইজ করে অবৈধ বা ভুল কাঠামো সনাক্ত করার ক্ষমতা
- বুঝতে সক্ষম হওয়া যে আণবিক ওজন এবং সূত্রের মতো নির্ধারক পরিমাণ ভাষা মডেল থেকে নয়, নিয়ম-ভিত্তিক সরঞ্জাম থেকে পাওয়া উচিত।
রসায়নে AI নিরাপদে ব্যবহার করার প্রথম শর্ত হল অণুটিকে এমন ভাষায় লিখতে হবে যা মেশিন এবং মানুষ উভয়ই বুঝতে পারে। আপনি "ফেনল" বলুন, এআই এটি ঠিক করে; কিন্তু আপনি যখন "অ্যাসিড" বলেন তখন হাজারো সম্ভাবনা থাকে। নামগুলো অস্পষ্ট; গঠন উপস্থাপনা সুনির্দিষ্ট. এই ইউনিটে, আমরা দুটি মৌলিক স্বরলিপি শিখব যা অণুকে টেক্সটে অনুবাদ করে (স্মাইলস এবং ইনচিআই) এবং টুল যা তাদের নির্ধারকভাবে যাচাই করে (RDKit)। আমাদের লক্ষ্য: AI কে এমনভাবে অণু দেওয়া যাতে এটি কখনই ভুল না বুঝবে এবং একটি টুল দিয়ে AI দ্বারা উত্পাদিত কাঠামো নিশ্চিত করা।
স্মাইলস কি?
স্মাইলস (সরলীকৃত আণবিক-ইনপুট লাইন-এন্ট্রি সিস্টেম) পাঠ্যের একক লাইনে একটি অণু লেখার একটি বিন্যাস। পরমাণুগুলি অক্ষর দ্বারা, চিহ্ন দ্বারা বন্ধন এবং সংখ্যা দ্বারা রিং দ্বারা প্রতিনিধিত্ব করা হয়। উদাহরণ:
- ইথানল: CCO (কার্বন-কার্বন-অক্সিজেন; হাইড্রোজেন নিহিত)।
- বেনজিন: c1ccccc1 (ছোট হাতের "c" সুগন্ধি কার্বন নির্দেশ করে; 1 রিং বন্ধ করে)।
- অ্যাসপিরিন: CC(=O)Oc1cccc1C(=O)O।
- ক্যাফেইন: Cn1cnc2c1c(=O)n(C)c(=O)n2C।
স্মাইলসের শক্তি হল এটি একটি লাইনে সমগ্র লিঙ্ক কাঠামো বহন করে; এর দুর্বলতা হল একই অণুতে একাধিক বৈধ SMILES থাকতে পারে (এটিকে বলা হয় নন-ক্যাননিকালটি)। আমরা কিছুক্ষণের মধ্যে RDKit দিয়ে এটি সমাধান করব।
ইঙ্গিত: একটি অণুর জন্য "ক্যাননিকাল স্মাইলস" হল সেই অণুর একক, আদর্শ বানান। দুটি স্মাইল একই অণু কিনা তা দেখতে, তাদের ক্যানোনিকালাইজ করুন এবং তুলনা করুন; তারা পাঠ্যভাবে সমান হওয়া উচিত নয়, তবে তাদের সমান অণু হওয়া উচিত।
InChI কি?
InChI (আন্তর্জাতিক রাসায়নিক শনাক্তকারী) হল IUPAC দ্বারা তৈরি একটি আদর্শ শনাক্তকারী। SMILES থেকে পার্থক্য হল যে একই অণু সবসময় একই InChI দেয়; অর্থাৎ, এটি প্রকৃতিগতভাবে আদর্শ। এটা দীর্ঘ এবং পড়া কঠিন, কিন্তু ডাটাবেস ম্যাচিং জন্য আদর্শ. সংক্ষেপে "InChIKey" (27-অক্ষরের ডাইজেস্ট) অনুসন্ধানের জন্য ব্যবহৃত হয়।
- অ্যাসপিরিন ইনচিকি: BSYNRYMUTXBXSQ-UHFFFAOYSA-N।
নিয়ম: লোকেরা স্মাইলস (পড়ুন), মেশিন এবং ডাটাবেসগুলি InChI/InChIKey (সঠিক) মেলে। AI কে স্মাইল দিন; InChIKey দিয়ে ডাটাবেসে নিশ্চিত করুন।
RDKit: নির্ধারক যাচাইকরণ ইঞ্জিন
RDKit একটি ওপেন সোর্স কেমিনফরমেটিক্স লাইব্রেরি। ভাষার মডেলের বিপরীতে, এটি নিয়ম-ভিত্তিক: SMILES পার্স করে, আণবিক ওজন গণনা করে, ক্যানোনিকাল SMILES তৈরি করে, InChI/InChIKey ফেরত দেয়, অণু আঁকে। তাই RDKit "গণনা করে" যা এআই "ভবিষ্যদ্বাণী করে"। এটি কর্মপ্রবাহের কেন্দ্রবিন্দু: AI তৈরি করে, RDKit যাচাই করে।
একটি মৌলিক যাচাইকরণ প্রবাহ:
rdkit import Chem থেকে rdkit.Chem আমদানি বর্ণনাকারী, Drawsmiles = "CC(=O)Oc1cccc1C(=O)O" Chem.MolToSmiles(mol)) প্রিন্ট("আণবিক সূত্র:", Chem.rdMolDescriptors.CalcMolFormula(মোকুলার প্রিন্ট:") বৃত্তাকার(Descriptors.MolWt(mol), 2), "g/mol") প্রিন্ট("InChIKey:", Chem.MolToInchiKey(mol))
যদি MolFromSmiles কোনোটিই ফেরত না দেয়, AI আপনাকে একটি অবৈধ অণু দিয়েছে; এই একা একটি খুব মূল্যবান সতর্কতা. বৈধ হলে, আপনাকে আর আণবিক ওজনের জন্য ভাষার মডেল জিজ্ঞাসা করতে হবে না; এটা নির্ধারকভাবে আপনার হাতে।
ধাপে ধাপে: AI + RDKit ইন্টারঅপারেশন
- অণু শনাক্ত করুন: AI এর নাম দিন, SMILES জিজ্ঞাসা করুন। উদাহরণস্বরূপ, "প্যারাসিটামলের জন্য ক্যানোনিকাল স্মাইলস যাচাই করুন।"
- যাচাই করুন: MolFromSmiles দিয়ে ইনকামিং স্মাইল পার্স করুন। যদি না হয়, প্রত্যাখ্যান করুন।
- ক্যানোনিকালাইজ করুন: MolToSmiles দিয়ে ক্যানোনিকাল বানান পুনরুদ্ধার করুন; এখন থেকে সর্বদা এটি ব্যবহার করুন।
- সংখ্যা গণনা করুন: আণবিক ওজন, সূত্র, রিংয়ের সংখ্যা, হাইড্রোজেন বন্ড দাতা/গ্রহণকারীর সংখ্যা ইত্যাদি RDKit থেকে পান, AI থেকে নয়।
- আইডি ফিক্স করুন: InChIKey তৈরি করুন, ডাটাবেসে অনুসন্ধান করুন (PubChem), নিশ্চিত করুন যে অণুটি আসলেই আপনার পছন্দের যৌগ।
চারটি অনুলিপিযোগ্য টেমপ্লেট
1) হাসির অনুরোধ করা (বিশেষ্য থেকে গঠন পর্যন্ত):
টাস্ক: নিম্নলিখিত যৌগের জন্য ক্যানোনিকাল স্মাইল দিন। যৌগ: প্যারাসিটামল (অ্যাসিটামিনোফেন)। নিয়ম: শুধুমাত্র SMILES স্ট্রিং এবং InChIKey দিন, আর কোন ব্যাখ্যা যোগ করবেন না। আপনি যদি নিশ্চিত না হন তবে "UNSURE" লিখুন, মেক আপ করবেন না।
2) স্মাইলস যাচাইকরণের অনুরোধ (কাঠামো থেকে নিয়ন্ত্রণ):
নীচের স্মাইলগুলি পরীক্ষা করুন: CC(=O)Nc1ccc(O)cc1 প্রশ্ন:1) এটি কি একটি বৈধ স্মাইলস? 2) এটি কোন যৌগ (সাধারণ নাম) এর সাথে মিলে যায়? 3) আণবিক সূত্রটি কী? দ্রষ্টব্য: আমি RDKit দিয়ে সঠিক আণবিক ওজন গণনা করব; আপনি শুধু আপনার গঠন ব্যাখ্যা দিতে.
3) দুটি উপস্থাপনা তুলনা:
আমার দুটি হাসি আছে: A) OCCB) CCOTask: এগুলো কি একই অণু নাকি ভিন্ন? আপনার যুক্তি লিখুন। দ্রষ্টব্য: আমি আপনার উত্তরটিকে RDKit-এ ক্যানোনিকালাইজ করে ক্রস-চেক করব।
4) কাঠামোর ব্যাখ্যা (শেখার উদ্দেশ্যে):
হাসি: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: এই স্মাইল টুকরো টুকরো টুকরো টুকরো পড়ুন এবং প্রতিটি চিহ্নের অর্থ (পরমাণু, বন্ধন, রিং, সুগন্ধি) সরল তুর্কি ভাষায় ব্যাখ্যা করুন। এটি কোন যৌগটিও বলুন।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল:
অ্যাসিটামিনোফেনের বৈশিষ্ট্য দিন।
"বৈশিষ্ট্য" অস্পষ্ট; AI আণবিক ওজন থেকে গলনাঙ্ক পর্যন্ত র্যান্ডম সংখ্যা তৈরি করে, যার মধ্যে কিছু ভুল হবে।
শক্তিশালী:
যৌগ: অ্যাসিটামিনোফেন। আমি তাদের RDKit/PubChem দিয়ে পাব। শুধু বিল্ড আইডি দিন।
পার্থক্য: আমরা AI কে নির্দেশিত করেছি যে এটি কোনটিতে শক্তিশালী (কাঠামোর পরিচয়) এবং এটি কোনটিতে দুর্বল (পরীক্ষামূলক সংখ্যা) থেকে দূরে।
ইমপ্রেশনের তুলনা
বৈশিষ্ট্য
স্মাইল
InChI/InChIKey
পঠনযোগ্যতা
উচ্চ (জনবান্ধব)
কম (মেশিন বান্ধব)
আদর্শ
পরিবর্তন সাপেক্ষে (ক্যানোনাইজেশন প্রয়োজন)
স্বাভাবিকভাবেই একক
ব্যবহার
মানুষের যোগাযোগ, অঙ্কন, ইনপুট
ডাটাবেস মিল, পরিচয়
স্টেরিওকেমিস্ট্রি
সমর্থন করে (@ প্রতীক)
সমর্থন (স্তরযুক্ত)
AI দিতে
আদর্শ
নিশ্চিতকরণের জন্য আদর্শ
মিনি কেস
কেস 1 — দুটি নাম, একটি অণু। একজন ছাত্র ভেবেছিল যে "এন-এসিটাইল-প্যারা-অ্যামিনোফেনল" এবং "প্যারাসিটামল" আলাদা যৌগ এবং দুটি পৃথক পরীক্ষার পরিকল্পনা করেছিল। যখন RDKit-এ তাদের স্মাইলকে ক্যানোনিকালাইজ করা হয়, তখন তারা উভয়েই CC(=O)Nc1ccc(O)cc1 বলে প্রমাণিত হয়; এটি একই অণু ছিল. হারিয়ে: পরিকল্পনার অর্ধেক দিন; লাভ: 2-মিনিটের ক্যানোনিকালাইজেশন চেক দিয়ে এড়ানো যেত।
কেস 2 - অবৈধ স্মাইল ক্যাপচার। AI CC(=O)Nc1ccc(O)cc1C( একটি ভেরিয়েন্টের জন্য (বন্ধনী বন্ধ করা হয়নি) ফেরত দিয়েছে। ছাত্রটি MolFromSmiles চালায়, এটি কোনটিই ফেরত দেয়নি, অবিলম্বে ত্রুটিটি দেখেছে এবং সংশোধন করা SMILES অনুরোধ করেছে। যাচাই না হলে, ত্রুটিপূর্ণ কাঠামোটি সমস্ত অ্যাকাউন্টে ছড়িয়ে পড়ত।
কেস 3 - ভুল আণবিক ওজন। YZ বলেছেন আইবুপ্রোফেনের জন্য "আণবিক ওজন 214.3 গ্রাম/মোল" (C13H18O2)। RDKit গণনা 206.28 g/mol দিয়েছে। 0.1 mol এর পার্থক্য: YZ এর সাথে 21.43 গ্রাম, আসলে 20.63 গ্রাম। 3.9% এর এই পার্থক্য স্টোইচিওমেট্রি এবং ফলন গণনাকে ব্যাহত করবে। এটি নির্ধারক ক্যালকুলাস নিয়ে এসেছে।
সাধারণ ভুল
- নাম দিয়ে অণু দেওয়া। প্রতিশব্দ/বাণিজ্য নামগুলি বিভ্রান্ত। সর্বদা স্মাইল বা InChI অন্তর্ভুক্ত করুন।
- SMILES কে ক্যানোনিকালাইজ না করে তুলনা করা। OCC এবং CCO পাঠ্যে ভিন্ন কিন্তু অণুতে একই।
- জিহ্বার মডেলের কাছে আণবিক ওজন জিজ্ঞাসা করা। এটি একটি নির্ধারক গণনা; এটি RDKit থেকে বা ম্যানুয়ালি সূত্র থেকে করা হয়।
- অবৈধ স্মাইল লক্ষ্য করা যাচ্ছে না। MolFromSmiles None-এর রিটার্ন চেক না করা এবং ভুল কাঠামোর সাথে চালিয়ে যাওয়া।
- স্টেরিওকেমিস্ট্রি অবহেলা। দুটি enantiomers (মিরর ইমেজ আইসোমার) বিভিন্ন জৈবিক প্রভাব প্রদর্শন করতে পারে; স্মাইলসে @/@@ চিহ্ন এড়িয়ে যাওয়া।
মনোযোগ: একই আণবিক সূত্র মানে ভিন্ন অণু নয়। C2H6O উভয়ই ইথানল (CCO) এবং ডাইমিথাইল ইথার (COC)। সূত্রের সমতা পরিচয়ের সমতা নয়; সনাক্তকরণের জন্য InChIKey ব্যবহার করুন।
সংক্ষেপে
- গঠন স্বরলিপি দ্বারা অণু সনাক্ত করুন, নামের দ্বারা নয়: মানুষের সাথে স্মাইল, ডাটাবেসের সাথে InChI/InChIKey।
- RDKit নির্ধারক; AI ভবিষ্যদ্বাণী করে, RDKit গণনা করে এবং যাচাই করে।
- MolFromSmiles এর সাথে প্রতিটি AI স্মাইল পার্স করুন এবং None চেক করুন, তারপর ক্যানোনিকালাইজ করুন।
- ভাষা মডেল থেকে নয়, RDKit থেকে আণবিক ওজন এবং সূত্রের মতো সংখ্যাগুলি পান৷
- সূত্র সমতা মানে আণবিক পরিচয় নয়; সনাক্তকরণের জন্য InChIKey ব্যবহার করুন।
আবেদন টাস্ক
তিনটি যৌগ বেছে নিন (যেমন ক্যাফিন, আইবুপ্রোফেন, গ্লাইসিন)। প্রত্যেকের জন্য ক্যানোনিকাল স্মাইলের জন্য AI-কে জিজ্ঞাসা করুন। তারপরে একটি RDKit স্ক্রিপ্ট লিখুন (উপরের টেমপ্লেটটি ব্যবহার করুন) এবং তৈরি করুন: ক্যানোনিকাল স্মাইলস, আণবিক সূত্র, আণবিক ওজন, InChIKey। AI প্রদত্ত SMILE এর কয়টি বৈধ ছিল? যদি YZও আণবিক ওজন দেয়, তাহলে RDKit মানের সাথে শতাংশ হিসাবে পার্থক্যটি গণনা করুন। একটি ছোট টেবিলের মধ্যে আপনার ফলাফল প্লট.
চেকলিস্ট
- [ ] আমি জানি SMILE এবং InChI/InChIKey কী এবং কখন ব্যবহার করতে হবে৷
- [ ] আমি MolFromSmiles দিয়ে AI দ্বারা প্রদত্ত প্রতিটি স্মাইল যাচাই করি।
- [ ] আমি তাদের তুলনা করার আগে স্মাইলকে ক্যানোনিকালাইজ করি৷
- [ ] আমি RDKit থেকে আণবিক ওজন এবং সূত্র পাচ্ছি, ভাষার মডেল থেকে নয়।
- [ ] আমি InChIKey এর সাথে ডাটাবেসে অণু পরিচয় নিশ্চিত করি৷
- আমি এমন পরিস্থিতিতে জানি যেখানে স্টেরিওকেমিস্ট্রি গুরুত্বপূর্ণ।