import gradio as gr from rdkit import Chem from rdkit.Chem import AllChem, rdmolfiles import os def smiles_to_pdb(smiles): mol = Chem.MolFromSmiles(smiles) if not mol: return "❌ SMILES غير صالح. تأكد من صحة الإدخال.", None mol = Chem.AddHs(mol) result = AllChem.EmbedMolecule(mol, AllChem.ETKDG()) if result != 0: return "❌ فشل في توليد الشكل ثلاثي الأبعاد للجزيء.", None AllChem.UFFOptimizeMolecule(mol) pdb_filename = "drug_candidate.pdb" writer = rdmolfiles.PDBWriter(pdb_filename) writer.write(mol) writer.close() return "✅ تم توليد الملف بنجاح!", pdb_filename title = "🧪 SMILES → PDB Generator" description = "أدخل SMILES وسيتم توليد ملف .pdb قابل للتنزيل." gr.Interface( fn=smiles_to_pdb, inputs=gr.Textbox(label="✏️ أدخل SMILES", placeholder="CC(=O)Oc1ccccc1C(=O)O"), outputs=[ gr.Textbox(label="📢 الحالة"), gr.File(label="⬇️ تحميل ملف PDB") ], title=title, description=description, allow_flagging="never" ).launch()