Spaces:
Sleeping
Sleeping
| 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() | |