gnn_synth / README.md
andreazhu's picture
Updated imports and dependencies
930c148 verified
|
Raw
History Blame Contribute Delete
1.84 kB
metadata
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 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:

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