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)
โญ by pip
pip install PACMAN-charge
Download
git clone https://github.com/sxm13/PACMAN.git
cd PACMAN
pip install -r requirements.txt
โญ notebook(from pip)
from PACMANCharge import pmcharge
pmcharge.predict(cif_file="./test/Cu-BTC.cif",charge_type="DDEC6",digits=10,atom_type=True,neutral=True)
cif_file: relative path to a CIF file with cif files without partial atomic charges
bash
python pmcharge.py folder-name[path] --charge_type[DDEC6/Bader/CM5/REPEAT] --digits[int] [--atom_type] [--neutral]
example: python pmcharge.py test_file/test-1/ --charge_type DDEC6 --digits 10 --atom_type --neutral
usage: python pmcharge.py -h
- folder-name: relative path to a folder with cif files without partial atomic charges
- charge-type (default: DDE6): 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: False): 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: False): 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 using Crystal Graph Convolution Network},
DOI={},
journal={},
author={Zhao, Guobin and Chung, Yongchul},
year={2024},
pages={}
}
If you encounter any problem during using PACMAN, please email [email protected]
or create "issues".
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 |
.
โโโ ..
โโโ 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