Fredaaaaaa commited on
Commit
18b26ff
·
verified ·
1 Parent(s): e37f5a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -5
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 "No Interaction"
203
 
204
  drugs = [drug.strip() for drug in drug_names.split(',')]
205
  if len(drugs) != 2:
206
- return "No Interaction"
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 "No Interaction"
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...")