Johannes Zenn · Dominik Gond · Fabian Jirasek · Robert Bamler
This is the official GitHub repository for our work Balancing Molecular Information and Empirical Data in the Prediction of Physico-Chemical Properties where we propose a hybrid method for combining molecular descriptors with representation learning for the (exemplary) task of predicting activity coefficients.
Predicting the physico-chemical properties of pure substances and mixtures is a central task in thermodynamics. Established prediction methods range from fully physics-based ab-initio calculations, which are only feasible for very simple systems, over descriptor-based methods that use some information on the molecules to be modeled together with fitted model parameters (e.g., quantitative-structure-property relationship methods or classical group contribution methods), to representation-learning methods, which may, in extreme cases, completely ignore molecular descriptors and extrapolate only from existing data on the property to be modeled (e.g., matrix completion methods). In this work, we propose a general method for combining molecular descriptors with representation learning using the so-called expectation maximization algorithm from the probabilistic machine learning literature, which uses uncertainty estimates to trade off between the two approaches. The proposed hybrid model exploits chemical structure information using graph neural networks, but it automatically detects cases where structure-based predictions are unreliable, in which case it corrects them by representation-learning based predictions that can better specialize to unusual cases. The effectiveness of the proposed method is demonstrated using the prediction of activity coefficients in binary mixtures as an example. The results are compelling, as the method significantly improves predictive accuracy over the current state of the art, showcasing its potential to advance the prediction of physico-chemical properties in general.
- tested with Python 3.9 (other versions might work as well);
- dependencies can be found in
requirements.txt
wandb
is not necessarily required (provide--wandb
tomain.py
to enable it)
We provide a detailed description of the data preparation process in the following.
The Dortmund Data Bank 2019 (DDB) is not publicly available but can be downloaded with
a paid subscription.
The dataset is processed as described in Jirasek et al. (2020).
The provided CSV
file should contain the following columns:
log_gamma_exp
: log of the experimental activity coefficientsolute_idx
: index of the solutesolvent_idx
: index of the solventsolute_smiles
: SMILES string of the solutesolvent_smiles
: SMILES string of the solvent
The values of the *_smiles
keys are matched with the corresponding objects in a JSON
file.
The JSON
file has the same structure as for the data of Medina et al. (2022) (see below).
We provide the processed CSV
file for the data used in Medina et al. (2022) in the data
folder.
Additionally, we provide the JSON
file that contains data and embeddings for the molecules.
Example training command for DAIS baseline:
python main.py <arguments for training>
<arguments for training>
can be replaced by the files found in the hyperparameters
folder.
Distributed under the MIT License. See LICENSE.MIT
for more information.
Following is the Bibtex if you would like to cite our paper :
@article{zenn2024balancing,
title={Balancing Molecular Information and Empirical Data in the Prediction of Physico-Chemical Properties},
author={Johannes Zenn and Dominik Gond and Fabian Jirasek and Robert Bamler},
journal={arXiv preprint arXiv:2406.08075},
year={2024}
}