A Partial Atomic Charge Predicter for Porous Materials based on Graph Convolutional Neural Network (PACMAN)
- DDEC6 (1, 2, 3, 4), Bader, Charge Model 5 (CM5), REPEAT for metal-organic frameworks (MOFs)
- DDEC6 for covalent-organic frameworks (COFs)
Developed by: Guobin Zhao
pip install PACMAN-charge
Git clone
git clone https://github.com/sxm13/PACMAN.git
cd PACMAN
pip install -r requirements.txt
Jupyter notebook (using pip)
from PACMANCharge import pmcharge
pmcharge.predict(cif_file="./test/Cu-BTC.cif",charge_type="DDEC6",digits=10,atom_type=True,neutral=True)
Terminal
python pmcharge.py folder-name[path] --charge_type[DDEC6/Bader/CM5/REPEAT] --digits[int] --atom_type[bool] --neutral[bool]
Example command: python pmcharge.py test_file/test-1/ --charge_type DDEC6 --digits 10
Help usage information: python pmcharge.py -h
- folder-name: relative path to a folder with cif files without partial atomic charges
- charge-type (default: DDEC6): DDEC6, Bader, CM5 or REPEAT
- digits (default: 6): number of decimal places to print for partial atomic charges. ML models were trained on a 6-digit dataset
- atom-type (default: True): Default is to keep the same partial atomic charge for the same atom types (based on the similarity of partial atomic charges up to 3 & 2 decimal places)
- neutral (default: True): Default is to keep the net charge is zero. We use "mean" method to neuralize the system where the excess charges are equally distributed across all atoms
- Predict partial atomic charges using an online APP ๐ link
- Full code and dataset can be downloaded from ๐ link
- Note: All future releases will be uploaded on Github and pip only
If you use PACMAN charge, please consider citing this paper:
@article{,
title={PACMAN: A Robust Partial Atomic Charge Predicter for Nanoporous Materials based on Crystal Graph Convolution Network},
DOI={},
journal={Journal of Chemical Theory and Computation},
author={Zhao, Guobin and Chung, Yongchul},
year={2024},
pages={}
}
Database with DDEC Charges | url | size |
---|---|---|
QMOF | link | 16,779 |
CoRE MOF 2014 DDEC | link | 2,932 |
CoRE MOF 2014 DFT-optimized | link | 502 |
CURATED-COFs | link | 612 |
ARC-MOF | link | 279,118 |
If you encounter any problem during using PACMAN, please email [email protected]
or create "issues"
.
โโโ ..
โโโ figs # Figures used for introduction
โ โโโ toc.jpg # Table of Contents
โ โโโ workflow.png # Workflow of this project
โ
โโโ model # Python files used for dataset prepartion & GCN training
โ โโโ GCN_E.py # Networks model for energy/bandgap training
โ โโโ GCN_charge.py # Networks model for atomic charge training
โ โโโ cif2data.py # Convert QMOF database to dataset
โ โโโ data_E.py # Convert cif to graph & target (energy/bandgap)
โ โโโ data_charge.py # Convert cif to graph & target (atomic charge)
โ โโโ utils.py # Normalizer, sampling, AverageMeter, save_checkpoint
โ
โโโ model4pre # Python files used for prediction
โ โโโ GCN_E.py # Networks model for energy/bandgap prediction
โ โโโ GCN_charge.py # Networks model for atomic charge prediction
โ โโโ atom_init.json # a JSON file that stores the initialization vector for each element
โ โโโ cif2data.py # Read/write cif file
โ โโโ data.py # Convert cif to graph & target (energy/bandgap)
โ โโโ data_charge.py # Convert cif to graph & target (atomic charge)
โ โโโ utils.py # Normalizer, sampling, AverageMeter, save_checkpoint
โ
โโโ pth # Models of this project
โ โโโ best_bader # Bader
โ โ โโโ bader .pth # Bader charge model
โ โ โโโ normalizer-bader.pkl # Normalizer of bandgap
โ โโโ best_bandgap # Bandgap
โ โ โโโ bandgap.pth # Bandgap model
โ โ โโโ normalizer-bandgap.pkl # Normalizer of bandgap
โ โโโ best_cm5 # CM5
โ โ โโโ bandgap.pth # ///
โ โ โโโ normalizer-bandgap.pkl # ///
โ โโโ best_ddec # ///
โ โ โโโ ddec.pth # ///
โ โ โโโ normalizer-ddec.pkl # ///
โ โโโ best_pbe # ///
โ โ โโโ pbe-atom.pth # ///
โ โ โโโ normalizer-pbe.pkl # ///
โ โโโ best_repeat # ///
โ โ โโโ repeat.pth # ///
โ โ โโโ normalizer-repeat.pkl # ///
โ โโโ chk_bader # Bader
โ โ โโโ checkpoint.pth # Checkpoint of bader
โ โโโ chk_bandgap # Bandgap
โ โ โโโ checkpoint.pth # Checkpoint of bandgap
โ โโโ chk_cm5 # CM5
โ โ โโโ checkpoint.pth # ///
โ โโโ chk_ddec # ///
โ โ โโโ checkpoint.pth # ///
โ โโโ chk_pbe # ///
โ โ โโโ checkpoint.pth # ///
โ โโโ chk_repeat # ///
โ โโโ checkpoint.pth # ///
โ
โโโ pmcharge.py # main python file for atomic charge assignment by command line
โโโ LICENSE.txt # MIT license
โโโ README.md # Usage/Source
โโโ requirements.txt # packages need to be installed
โโโ train_E.py # main python file for energy/bandgap training
โโโ train_charge.py # main python file for atomic charge training
- Guobin Zhao ([email protected])
- Guobin Zhao ([email protected]): models, training, data preparation
- Yongchul G. Chung ([email protected]): supervising