PyTorch implementation related to the paper Chemical Representation Learning for Toxicity Prediction (Born et al, 2023, Digital Discovery).
We released pretrained models for the Tox21, the ClinTox and the SIDER dataset.
🤗 A gradio demo with a simple UI is available on HuggingFace spaces
The pretrained models are available via the GT4SD, the Generative Toolkit for Scientific Discovery. See the paper here. We recommend to use GT4SD for inference. Once you install that library, use as follows:
from gt4sd.properties import PropertyPredictorRegistry
tox21 = PropertyPredictorRegistry.get_property_predictor('tox21', {'algorithm_version': 'v0'})
tox21('CCO')
The other models are the SIDER model and the ClinTox model from the MoleculeNet benchmark:
from gt4sd.properties import PropertyPredictorRegistry
sider = PropertyPredictorRegistry.get_property_predictor('sider', {'algorithm_version': 'v0'})
clintox = PropertyPredictorRegistry.get_property_predictor('clintox', {'algorithm_version': 'v0'})
print(f"SIDE effect predictions: {sider('CCO')}")
print(f"Clinical toxicitiy predictions: {clintox('CCO')}")
The library itself has few dependencies (see setup.py) with loose requirements.
pip install -e .
In the scripts
directory is a training script train_tox.
Download sample data from the Tox21 database and store it in a folder called data
here.
(toxsmi) $ python3 scripts/train_tox \
--train data/tox21_train.csv \
--test data/tox21_score.csv \
--smi data/tox21.smi \
--params params/mca.json \
--model path_to_model_folder \
--name debug
Features:
- Set
--finetune
to the path to a.pt
file to start from a pretrained model - Set
--embedding_path
to the path of pretrained embeddings
Type python scripts/train_tox -h
for further help.
In the scripts
directory is an evaluation script eval_tox.py.
Assume you have a trained model, use as follows:
(toxsmi) $ python3 scripts/eval_tox.py \
-model path_to_model_folder \
-smi data/tox21.smi \
-labels data/tox21_test.csv \
-checkpoint RMSE"
where -checkpoint
specifies which .pt
file to pick for the evaluation (based on substring matching)
The model uses a self-attention mechanism that can highlight chemical motifs used for the predictions. In notebooks/toxicity_attention_plot.ipynb we share a tutorial on how to create such plots:
If you use this code in your projects, please cite the following:
@article{born2023chemical,
author = {Born, Jannis and Markert, Greta and Janakarajan, Nikita and Kimber, Talia B. and Volkamer, Andrea and Martínez, María Rodríguez and Manica, Matteo},
title = {Chemical representation learning for toxicity prediction},
journal = {Digital Discovery},
year = {2023},
pages = {-},
publisher = {RSC},
doi = {10.1039/D2DD00099G},
url = {http://dx.doi.org/10.1039/D2DD00099G}
}