This repository contains an implementation of the ASGCNN (Adsorbate-Site Graph Convolutional Neural Network) that predicts the adsorption energies with the help of classification tasks for adsorbate types and adsorption sites of slab structures.
Copy the Folder ASGCNN into the Lib folder under your Python directory, or run the code at the same level as Folder ASGCNN.
In parentheses is a version that is compatible after testing, current potential conflicts are from dgl and torch(torchdata).
- torch (2.1.0) (1.13.1 + cu117)
- torchdata (0.7.0)
- dgl (2.2.1) (1.0.1 + cu117)
- igraph
- networkx
- scikit-learn
- pymatgen
- matplotlib
- tqdm
- numpy
- pandas
- qmpy_rester
- hyperopt
- ASGCNN/Encoder.py: Generate graph structure from VASP structure file and encode node and edge features.
- ASGCNN/Model.py: Pytorch implementation of the ASGCNN model.
- ASGCNN/Traniner.py: A module that calls the GNN model for training and prediction.
- data: Stores graph structures and targets for network training. Graphs are stored as .bin files in the dgl package.
- figures: Pictures drawn in Python in the article. Some of the drawings require custom Jworkflow scripts. Some code cannot run directly due to data size limitations.
- pretrained: Pretrained models. There are five models learned in an ensemble method, and they predict together to provide the uncertainty of the prediction results.
- structures: VASP structure files for calculation and graph structure generation.
- Query Heusler alloy data from OQMD: Tutorial 1 - query data
- Batch construction of adsorption structures and analysis of VASP results : Tutorial - slab, Tutorial - data_process, Tutorial - reaction
- Load pre-trained models and view graph data characteristics : Tutorial 2 -_load_pre-trained model
- Load datasets and train an ASGCNN from scratch: Tutorial 3 - model training
- Other supported model architectures: Tutorial 4 - Other model architecture
- Hyperparameter search, ensemble model and other training methods: Turorial 5 - training method
If you are interested in our work, you can read our literature, and cite us using
@article{ZHOU2024160519,
title = {Machine-learning-accelerated screening of Heusler alloys for nitrogen reduction reaction with graph neural network},
journal = {Applied Surface Science},
volume = {669},
pages = {160519},
year = {2024},
issn = {0169-4332},
doi = {https://doi.org/10.1016/j.apsusc.2024.160519},
url = {https://www.sciencedirect.com/science/article/pii/S0169433224012327},
author = {Jing Zhou and Xiayong Chen and Xiao Jiang and Zean Tian and Wangyu Hu and Bowen Huang and Dingwang Yuan}