# DrugCombPred - Drug Combination Synergy Prediction This project focuses on predicting **drug combination synergy** using deep learning. Combination therapies are a promising strategy in treating complex diseases like cancer, and accurate prediction of drug synergy can help identify effective combinations faster and more cost-effectively. Our models aim to support this effort by learning from large-scale pharmacogenomic datasets. Two datasets are supported: 1. **DrugCombDB** 2. **O'Neil et al. (2016)** Each dataset has its own folder and model implementation. The main training script is: ``` predictor/cross_validation.py ``` --- ## 📂 Folder Structure ``` drugcombpred/ ├── DrugCombDB/ │ ├── drug/ │ ├── cell/ │ └── predictor/ │ └── cross_validation.py ├── ONeil2016/ │ ├── drug/ │ ├── cell/ │ └── predictor/ │ └── cross_validation.py ``` --- ## 🧠 Project Overview The models process chemical structures (using RDKit), drug-target interactions, and cell line features (from gene expression and mutation data). Drug features are combined and passed into a neural network to predict synergy scores. Two architectures are used: - **Model on O'Neil Dataset** ![O'Neil Model](./Images/DrugCombPred1.png) - **Model on DrugCombDB Dataset** ![DrugCombDB Model](./Images/DrugCombPred2.png) --- ## ⚙️ Requirements - Python 3.7+ - PyTorch - CUDA (optional, for GPU support) Install dependencies: ```bash pip install -r requirements.txt ``` --- ## 🚀 Running the Models Both models use the same script interface: `cross_validation.py` ### Arguments | Argument | Description | Default | | ------------ | ---------------------------------------- | -------------------- | | `--epoch` | Number of training epochs | `500` | | `--batch` | Batch size | `256` | | `--gpu` | GPU device ID to use (`None` for CPU) | `None` | | `--patience` | Early stopping patience | `100` | | `--suffix` | Suffix for output folder | Current timestamp | | `--hidden` | Hidden layer sizes (list of ints) | `[2048, 4096, 8192]` | | `--lr` | Learning rate(s) to try (list of floats) | `[1e-3, 1e-4, 1e-5]` | ### Example: Run DrugCombDB Model ```bash cd DrugCombDB/predictor python cross_validation.py --epoch 300 --batch 128 --gpu 0 --suffix drugcomb_test ``` ### Example: Run O'Neil 2016 Model ```bash cd ONeil2016/predictor python cross_validation.py --epoch 300 --batch 128 --gpu 0 --suffix oneil_test ``` --- ## 📁 Output Results and logs are saved in: ``` OUTPUT_DIR/cv_ ``` Make sure `OUTPUT_DIR` is defined or configurable in your script. --- ## 📚 Citation If you use this code or data in your research, please cite the original datasets: - **DrugCombDB**: Zagidullin et al., *Nucleic Acids Research*, 2019 [https://doi.org/10.1093/nar/gky1144](https://doi.org/10.1093/nar/gky1144) - **O'Neil et al., 2016**: O'Neil et al., *Cell Systems*, 2016 [https://doi.org/10.1016/j.cels.2016.08.015](https://doi.org/10.1016/j.cels.2016.08.015)