Extrapolating Beyond C60: Advancing Prediction of Fullerene Isomers with FullereneNet
pip install torch
pip install torch-geometric
pip install rdkit
pip install scikit-learn
pip install pandas matplotlib
pip install tqdm Before training, generate the features by running:
python feature/generate_all_features.pyWe provide several data split strategies for training and evaluation:
-
Random split
Specify the seed when running training:
python train_and_test_FullereneNet.py --seed 0
-
Random split
See
split_method/cross_validation_split.py. -
Leave-one-group-out split
See
split_method/leave_one_group_out_split.py. -
Leave-one-cluster-out split
See
split_method/leave_one_cluster_out_split.py.
Train and test the model using:
python train_and_test_FullereneNet.py --with_edge --epochs 300 --target 'Eb' --lr 0.001 -seed 42Target choices: 'homo', 'lumo', 'gap', 'dipole_total', 'G-water', 'G-dich', 'logP', 'Eb'. The explanation of each target can be found on paper.
--with_edge indicate using both node and edge feature to train the model.
Training and testing results will be printed to the console. All available arguments can be found inside the script.
We also benchmark with Matformer, using bond distances as features.
These features should be obtained from optimized structures and can be downloaded from Figsure, find feature_for_matformer.zip file, download it. Then move the file to feature/opt_and_unopt_for_matformer folder, unzip file.
Run training and testing with:
python train_and_test_FullereneNet.py --epochs 300 --target 'Eb' --lr 0.001 --seed 42 --use_optimized_structure--use_optimized_structure indicate using DFT optimized structures to train the model.
We provide example LAMMPS input scripts using the GAP-20 potential to calculate binding energy and perform geometry optimization on GAP-20 folder.

