When two or more drugs are taken simultaneously, they can interact in ways that amplify, reduce, or completely alter each other's effects — sometimes with life-threatening consequences. In Nigeria, This model provides a fast, data-driven tool to flag potentially dangerous drug combinations before they are prescribed or dispensed.
# 💊 Drug-Drug Interaction Risk Classifier
### A Nigeria-Focused Machine Learning & Deep Learning Pipeline
---
## 🧠 Overview
This project builds an end-to-end **Drug-Drug Interaction (DDI) Risk Classification system** grounded in Nigerian healthcare context. It scrapes drugs registered by **NAFDAC (National Agency for Food and Drug Administration and Control)** from the public Greenbook, maps them against global interaction databases (TWOSIDES via PyTDC, OpenFDA, PubChem), engineers pharmacological features, and classifies interaction severity into 4 classes:
| Class | Severity | Description |
|-------|----------|-------------|
| 0 | ✅ None | No known clinically relevant interaction |
| 1 | 🟡 Mild | Minor — monitoring recommended |
| 2 | 🟠 Moderate | Clinically significant — dose adjustment may be needed |
| 3 | 🔴 Severe | Life-threatening — combination should be avoided |
The project prioritises drugs common in Nigerian clinical practice: **antimalarials, antihypertensives, antibiotics, antiretrovirals (HIV/AIDS), antidiabetics, and antituberculosis agents.**
---
## 🗂️ Project Structure
```
drug-drug-interaction-nigeria/
│
├── notebooks/
│ ├── 00_nafdac_scraper.ipynb # Scrape NAFDAC Greenbook → CSV (run first)
│ ├── 01_eda.ipynb # Data loading, feature engineering, 7 EDA charts
│ ├── 02_ml_models.ipynb # LR, RF, XGBoost + SHAP + full validation suite
│ └── 03_lstm_notebook.ipynb # Keras DNN + PyTorch DNN (both frameworks)
│
├── app/
│ └── streamlit_app.py # Interactive DDI Risk Checker (3-tab Streamlit app)
│
├── models/ # Populated after running notebooks 02 & 03
│ ├── lr_model.pkl # Logistic Regression
│ ├── rf_model.pkl # Random Forest
│ ├── xgboost_best.pkl # XGBoost (tuned)
│ ├── keras_dnn.h5 # Keras DNN weights
│ ├── keras_dnn_savedmodel/ # Keras SavedModel format
│ ├── pytorch_dnn_best.pt …