Spaces:
Sleeping
Sleeping
File size: 1,148 Bytes
0ef2e37 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import gradio as gr
from rdkit import Chem
from rdkit.Chem import Descriptors, rdMolDescriptors
# دالة SA Score بسيطة
def simple_sa_score(smiles):
mol = Chem.MolFromSmiles(smiles)
if not mol:
return "❌ SMILES غير صالح"
mw = Descriptors.MolWt(mol)
rot_bonds = rdMolDescriptors.CalcNumRotatableBonds(mol)
num_atoms = mol.GetNumAtoms()
score = 0
score += 1 if mw > 500 else 0
score += 1 if rot_bonds > 10 else 0
score += 1 if num_atoms > 50 else 0
sa_score = round(1 + score * 3, 2)
if sa_score <= 4:
level = "🔬 سهل التصنيع ✅"
elif sa_score <= 7:
level = "⚠️ متوسط الصعوبة"
else:
level = "❌ صعب تصنيعه معمليًا"
return f"🧪 SA Score: {sa_score} / 10\n{level}"
# واجهة Gradio
demo = gr.Interface(
fn=simple_sa_score,
inputs=gr.Textbox(label="🔬 أدخل SMILES هنا"),
outputs=gr.Textbox(label="📊 التقييم"),
title="تقييم SA Score",
description="تحليل مدى سهولة تصنيع المركب بناءً على SMILES"
)
demo.launch()
|