QuantumChem/QuantumChem_200k
Viewer • Updated • 211k • 21 • 1
A lightweight graph neural network (242K parameters) for predicting 10 quantum-chemical properties from molecular SMILES strings.
| Property | Unit | MAE | R² |
|---|---|---|---|
| Sigma at 780 nm | GM | 10.10 | 0.953 |
| Max sigma | GM | 10.19 | 0.957 |
| ISC energy | eV | 0.0055 | 0.933 |
| Toxicity score | — | 0.017 | 0.924 |
| SA score | — | 0.0069 | 0.967 |
| Boiling point | °C | 5.77 | 0.984 |
| logP | — | 0.057 | 0.993 |
| Aromaticity | — | 0.0077 | 0.998 |
| Solubility | ug/ml | 71,953 | 0.053 |
| Molecular weight | g/mol | 1.61 | 0.806 |
Mean R² across 9/10 properties (excl. solubility): 0.946
import torch
import torch.nn as nn
# Load the model
model_state = torch.load("msgat_model.pt", weights_index=None)
norm_stats = torch.load("norm_stats.pt")
# Reconstruct model architecture (see model.py in the repo)
from model import create_model # clone https://github.com/devansh0703/MSGAT
model = create_model()
model.load_state_dict(model_state)
model.eval()
# mean/std for inverse transform (shape: [10])
mean = norm_stats["mean"]
std = norm_stats["std"]
The model outputs z-score normalized predictions. To get raw values:
# solubility uses log1p before normalization — must invert with expm1
raw = preds * std + mean
sol_idx = 8 # solubility index in active props
raw[:, sol_idx] = torch.expm1(raw[:, sol_idx])
| File | Description |
|---|---|
msgat_model.pt |
Trained model state dict (242K params) |
norm_stats.pt |
Z-score normalization stats (mean, std) for the 10 active properties |
git clone https://github.com/devansh0703/MSGAT
cd MSGAT
pip install torch rdkit-pypi datasets pandas tqdm matplotlib
python train.py # train/val split
python train_final.py # full data retrain
@article{raulo2025msgat,
title={MSGAT: Multi-Scale Graph Attention Network for Efficient Molecular Property Prediction},
author={Raulo, Devansh},
year={2025}
}
Dataset: QuantumChem/QuantumChem_200k by Zeng et al.