arXiv

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

  1. Clone the repository

    git clone https://github.com/mohammad-gh009/DrugReasoner.git
    cd DrugReasoner
    
  2. 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
    
  3. Install dependencies

    pip install -r requirements.txt
    
  4. 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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Moreza009/Llama-DrugReasoner

Adapter
(1045)
this model

Dataset used to train Moreza009/Llama-DrugReasoner