---
title: Inference & export
description: Load a DeepPurpose checkpoint, predict one drug-target pair or a CSV batch, run virtual_screening or oneliner.repurpose, and export the network to ONNX.
---

[DeepPurpose](https://github.com/kexinhuang12345/DeepPurpose) provides flexible inference options for drug-target interaction (DTI) prediction. This guide covers loading trained models and running predictions.

## Load a saved model

```python
from DeepPurpose import DTI as models

# Load a trained model
model = models.model_pretrained(path_dir="outputs/model")

# Or use a pretrained model from the model zoo
model = models.model_pretrained(model='MPNN_CNN_BindingDB')
```

DeepPurpose includes several pretrained models trained on benchmark datasets:
- `MPNN_CNN_DAVIS`: MPNN drug encoder + CNN target encoder, trained on DAVIS
- `Morgan_CNN_BindingDB`: Morgan fingerprints + CNN, trained on BindingDB
- `Transformer_CNN_BindingDB`: Transformer + CNN, trained on BindingDB

## Single prediction

For quick predictions on individual drug-target pairs:

```python
from DeepPurpose import utils

# Single drug-target pair prediction
drug_smiles = "CC(=O)Oc1ccccc1C(=O)O"  # Aspirin
target_sequence = "MKKFFDSRREQGGSGLGSGSSGGGGSTSGLGSGYIGRVFGIGRQQVTVDEVLAE..."

# Encode and predict
X_drug, X_target, _ = utils.data_process(
    X_drug=[drug_smiles],
    X_target=[target_sequence],
    y=[0],  # Dummy label for processing
    drug_encoding="Morgan",
    target_encoding="CNN",
    split_method='no_split'
)

score = model.predict(X_drug, X_target)
print(f"Predicted binding affinity: {score[0]:.4f}")
```

## Batch predict

```python
import pandas as pd
from DeepPurpose import utils

data = pd.read_csv("inputs/predict.csv")

# Process data for prediction (no split needed)
X_drug, X_target, _ = utils.data_process(
    X_drug=data["smiles"].tolist(),
    X_target=data["protein"].tolist(),
    y=[0] * len(data),  # Dummy labels
    drug_encoding="Morgan",
    target_encoding="CNN",
    split_method='no_split'
)

scores = model.predict(X_drug, X_target)
data["predicted_affinity"] = scores
data.to_csv("outputs/predictions.csv", index=False)
```

## Virtual screening

Screen a library of compounds against one or more targets:

```python
from DeepPurpose import virtual_screening

# Screen drug library against target(s)
result = virtual_screening.virtual_screening(
    X_drugs=drug_smiles_list,
    X_targets=target_sequence_list,
    model=model,
    drug_names=drug_names,
    target_names=target_names,
    result_folder="./screening_results"
)

# Results sorted by predicted affinity
print(result.head(10))
```

## Export to ONNX (optional)

If your model uses torch-based encoders, export for serving:

```python
import torch

dummy_drug = torch.randn(1, model.drug_encoder.output_size).cuda()
dummy_target = torch.randn(1, model.target_encoder.output_size).cuda()

torch.onnx.export(
    model.network,
    (dummy_drug, dummy_target),
    "outputs/model.onnx",
    input_names=["drug", "target"],
    output_names=["score"],
    opset_version=17,
)
```

## Run metadata

- Log model path, git commit, and DeepPurpose/torch versions.
- Include the encoding types (`drug_encoding`, `target_encoding`) with outputs.
- Save a `SUMMARY.json` with run args and the number of predictions produced.

## Drug repurposing workflow

DeepPurpose provides a streamlined one-liner API for drug repurposing:

```python
from DeepPurpose import oneliner

# Repurpose approved drugs for a new target
oneliner.repurpose(
    target='MKKFFDSRREQGGSGLGSGSSGGGGSTSGLGSGYIGRVFGIGRQQVTVDEVLAE...',
    target_name='SARS-CoV-2 3CL Protease',
    drug_names=['Remdesivir', 'Hydroxychloroquine', 'Lopinavir'],
    save_path='./repurposing_results'
)
```

The results include ranked predictions with confidence scores for potential drug candidates.

## Canvas Visualization

When a DeepPurpose job completes, a result card appears on the canvas.

- **Card size**: 300x250px
- **Border color**: Brown (#795548)
- **Visualization**: Scatter chart of binding probability predictions

### Tier 2 Metrics

- Binding probability (%)
- Interaction score
- Drug SMILES
- Target sequence snippet
