Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -157,7 +157,6 @@ def create_fallback_database():
|
|
| 157 |
('simvastatin', 'vitamin e'): 'No Interaction',
|
| 158 |
('vitamin e', 'simvastatin'): 'No Interaction',
|
| 159 |
}
|
| 160 |
-
|
| 161 |
|
| 162 |
# Function to fetch drug features from PubChem if available
|
| 163 |
def get_pubchem_features(drug_name):
|
|
@@ -199,15 +198,26 @@ def predict_interaction(drug_names, dataset_db, fallback_db):
|
|
| 199 |
"""Predict interaction between two drugs using dataset, fallback, and PubChem"""
|
| 200 |
try:
|
| 201 |
if not drug_names or ',' not in drug_names:
|
| 202 |
-
return "
|
| 203 |
|
| 204 |
drugs = [drug.strip() for drug in drug_names.split(',')]
|
| 205 |
if len(drugs) != 2:
|
| 206 |
-
return "
|
| 207 |
|
| 208 |
drug1, drug2 = drugs[0].lower(), drugs[1].lower()
|
| 209 |
print(f"Looking up: '{drug1}' + '{drug2}'")
|
| 210 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 211 |
# Check dataset first
|
| 212 |
prediction = dataset_db.get((drug1, drug2))
|
| 213 |
if prediction:
|
|
@@ -228,7 +238,7 @@ def predict_interaction(drug_names, dataset_db, fallback_db):
|
|
| 228 |
return random.choice(['Moderate', 'Mild'])
|
| 229 |
|
| 230 |
except Exception:
|
| 231 |
-
return "
|
| 232 |
|
| 233 |
# Load your dataset and fallback
|
| 234 |
print("Loading drug interaction dataset...")
|
|
|
|
| 157 |
('simvastatin', 'vitamin e'): 'No Interaction',
|
| 158 |
('vitamin e', 'simvastatin'): 'No Interaction',
|
| 159 |
}
|
|
|
|
| 160 |
|
| 161 |
# Function to fetch drug features from PubChem if available
|
| 162 |
def get_pubchem_features(drug_name):
|
|
|
|
| 198 |
"""Predict interaction between two drugs using dataset, fallback, and PubChem"""
|
| 199 |
try:
|
| 200 |
if not drug_names or ',' not in drug_names:
|
| 201 |
+
return "Error"
|
| 202 |
|
| 203 |
drugs = [drug.strip() for drug in drug_names.split(',')]
|
| 204 |
if len(drugs) != 2:
|
| 205 |
+
return "Error"
|
| 206 |
|
| 207 |
drug1, drug2 = drugs[0].lower(), drugs[1].lower()
|
| 208 |
print(f"Looking up: '{drug1}' + '{drug2}'")
|
| 209 |
+
|
| 210 |
+
# Validate drug names
|
| 211 |
+
all_known_drugs = set()
|
| 212 |
+
for d1, d2 in {**dataset_db, **fallback_db}.keys():
|
| 213 |
+
all_known_drugs.add(d1)
|
| 214 |
+
all_known_drugs.add(d2)
|
| 215 |
+
|
| 216 |
+
if (len(drug1) < 2 or len(drug2) < 2 or # Minimum length check
|
| 217 |
+
drug1 not in all_known_drugs and not PUBCHEM_AVAILABLE or
|
| 218 |
+
drug2 not in all_known_drugs and not PUBCHEM_AVAILABLE):
|
| 219 |
+
return "Error"
|
| 220 |
+
|
| 221 |
# Check dataset first
|
| 222 |
prediction = dataset_db.get((drug1, drug2))
|
| 223 |
if prediction:
|
|
|
|
| 238 |
return random.choice(['Moderate', 'Mild'])
|
| 239 |
|
| 240 |
except Exception:
|
| 241 |
+
return "Error"
|
| 242 |
|
| 243 |
# Load your dataset and fallback
|
| 244 |
print("Loading drug interaction dataset...")
|