ExcGraph is a graph neural network to predict emission properties of dye like chromophores. The architecture is written in "Spektral", a Python library for graph deep learning, based on the Keras API and TensorFlow.
- Python 3.10.10
- spektral 1.2.0
- matplotlib 3.7.1
- numpy 1.24.3
- tensorflow 2.11.1
- pip 23.1.2
Note: You do not have to install them yourselves. Following the proceedure in the deployment section will get your environment set up for you.
To deploy this project run
git clone https://github.com/vtripath65/ExcGraph.git
cd ExcGraph
make conda_env
conda activate ExcGraphNote: I have not provided the data here. If you really want to run this code please contact me for the data.
If you have the data you will have to run the following code:
cd data
unzip pickled_data.zipTo train the model use
cd ../training
python spektral-model.py > spektral-model.logThis will generate the output file "spektral-model.log" along with the png files in the training directory.
To use the pretrained model on external dataset use the following:
cd ../load_model
python load_saved_model.py > load_saved_model.logThis will generate the output file "load_saved_model.log" along with the png files in the load_model directory. The purpose of this directory is to test the model on new external test sets.
Two convolution layers followed by a pooling layers to obtain molecular fingerprint. This fingerprint is passed through a feedforward neural network to obtain the predicted emission maxima. The node features contain atomic properties and bonding environment along with the eps value (dielectric) of the solvent. The solvent index will be the same for all the nodes for a chromophore in a particular solvent. Using this as a global property has been tested with no impro vement.
The predictions are colored using different dyes classes. The chromophores are preprocessed to assign each chromophore to its own corresponding dye class.
- Test on external dataset
- Shows good extrapolation performance
- Unlike previous work, no constraint on the size of the chromophores
- State of the art performance with test error being ~0.1 eV


