File size: 1,841 Bytes
fc6acef
 
917dc3f
 
 
 
 
 
 
 
 
fc6acef
917dc3f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
930c148
 
917dc3f
930c148
917dc3f
 
 
 
 
 
930c148
 
 
917dc3f
 
930c148
 
 
 
 
 
 
 
917dc3f
 
 
930c148
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
license: mit
tags:
  - PROTAC
  - drug-discovery
  - cheminformatics
  - regression
  - graph-neural-network
  - chemprop
library_name: chemprop
pipeline_tag: graph-ml
---

# PROTAC Synthesizability — CheMeleon GNN

A graph neural network that predicts the **heavy-atom-count weighted synthesizability
score** (`hac_weighted_score`) of PROTAC molecules from SMILES. Built on the
[CheMeleon](https://github.com/JacksonBurns/chemeleon) foundation model (a pretrained
D-MPNN) fine-tuned via ChemProp — graph-only, no engineered features.
Nested 5×5 scaffold cross-validation, Optuna tuning. **Mean CV R² = 0.643.**

## Files

- `gnn_v3_final.ckpt` — fine-tuned model checkpoint (weights + target scaler)
- `gnn_v3_hparams.yaml` — hyperparameters

## Usage

Requires the project code: https://github.com/ribesstefano/PROTAC-Synthesizability

Install the package (editable) so `protac_synth` is importable, then:

```python
from protac_synth.models.gnn.model import CheMeleonRegressor

model  = CheMeleonRegressor.load("gnn_v3_final")   # base path, no extension
smiles = ["O=C(O)c1ccccc1"]
preds  = model.predict(smiles)                     # graph-only: SMILES in, prediction out
```

The GNN is graph-only: it builds the molecular graph internally, so no
fingerprints or descriptors are passed to `predict`.

## Dependencies

The model loads from a torch/ChemProp checkpoint (no `.skops`/scikit-learn), so
loading is sensitive to the **ChemProp / Lightning / torch** versions rather than
scikit-learn. Pin the versions the model was fine-tuned with:

- `chemprop>=2.2.0` (pin the exact training version for reproducible checkpoint loading)
- `lightning`, `torch` — pin to the training environment (checkpoint format is
  torch/Lightning-version dependent)
- `rdkit`, `numpy` — pin to the training environment

## License

MIT