DrugReasoner: Interpretable Drug Approval Prediction with a Reasoning-augmented Language Model
DrugReasoner is an AI-powered system for predicting drug approval outcomes using reasoning-augmented Large Language Models (LLMs) and molecular feature analysis. By combining advanced machine learning with interpretable reasoning, DrugReasoner provides transparent predictions that can accelerate pharmaceutical research and development.
Model Details
- Model Name: DrugReasoner
- Training Paradigm: Group Relative Policy Optimization (GRPO)
- Input: SMILES Structure
- Output: Drug approval prediction + Rational of approval or unapproval + Confidence score
- Training Libraries: Hugging Face’s transformers, Transformer Reinforcement Learning (TRL), and Parameter-efficient fine-tuning (PEFT)
- Model Sources: meta-llama/Llama-3.1-8B-Instruct
How to Get Started with the Model
- To use DrugReasoner, you must first request access to the base model Llama-3.1-8B-Instruct on Hugging Face by providing your contact information. Once access is granted, you can run DrugReasoner either through the command-line interface (CLI) or integrate it directly into your Python workflows.
Prerequisites
- Python 3.8 or higher
- CUDA-compatible GPU (recommended for training and inference)
- Git
Setup Instructions
Clone the repository
git clone https://github.com/mohammad-gh009/DrugReasoner.git cd DrugReasoner
Create and activate virtual environment
Windows:
cd src python -m venv myenv myenv\Scripts\activate
Mac/Linux:
cd src python -m venv myenv source myenv/bin/activate
Install dependencies
pip install -r requirements.txt
Login to your Huggingface account You can use this instruction on how to make an account and this on how to get the token
huggingface-cli login --token YOUR_TOKEN_HERE
How to use
Note: GPU is required for inference. If unavailable, use our Colab Notebook.
CLI Inference
python inference.py \
--smiles "CC(C)CC1=CC=C(C=C1)C(C)C(=O)O" "CC1=CC=C(C=C1)C(=O)O" \
--output results.csv \
--top-k 9 \
--top-p 0.9 \
--max-length 4096 \
--temperature 1.0
Python API Usage
from inference import DrugReasoner
predictor = DrugReasoner()
results = predictor.predict_molecules(
smiles_list=["CC(C)CC1=CC=C(C=C1)C(C)C(=O)O"],
save_path="results.csv",
print_results=True,
top_k=9,
top_p=0.9,
max_length=4096,
temperature=1.0
)
Citation
If you use DrugReasoner in your research, please cite our work:
@misc{ghaffarzadehesfahani2025drugreasonerinterpretabledrugapproval,
title={DrugReasoner: Interpretable Drug Approval Prediction with a Reasoning-augmented Language Model},
author={Mohammadreza Ghaffarzadeh-Esfahani and Ali Motahharynia* and Nahid Yousefian and Navid Mazrouei and Jafar Ghaisari and Yousof Gheisari},
year={2025},
eprint={2508.18579},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2508.18579},
}
- Downloads last month
- 55
Model tree for Moreza009/Llama-DrugReasoner
Base model
meta-llama/Llama-3.1-8B
Finetuned
meta-llama/Llama-3.1-8B-Instruct