Automated Stepwise Addition Procedure for Extrafullerene.
A detailed description could be found in the article: Exploring exohedral functionalization of fullerene with Automation and Neural Network Potential.
Cite this:
@article{LIU2023118180,
title = {Exploring exohedral functionalization of fullerene with automation and Neural Network Potential},
journal = {Carbon},
volume = {213},
pages = {118180},
year = {2023},
issn = {0008-6223},
doi = {https://doi.org/10.1016/j.carbon.2023.118180},
url = {https://www.sciencedirect.com/science/article/pii/S0008622323004256},
author = {Mingkang Liu and Yanbo Han and Yonghong Cheng and Xiang Zhao and Hong Zheng},
keywords = {Exohedral fullerene, Neural network potential, Graph theory, Functionalization mechanism, Nanocluster},
}
Demonstration of core functions could be found in ./gym
.
Documentation could be found at https://autosteper.readthedocs.io/.
Autosteper has an dependency on multiple python packages, namely, the importlib-metadata, ase, numpy, pandas, networkx, tqdm, matplotlib, seaborn, and dpdispatcher. Installation of all of them along with this project has been integrated into a single command line:
pip install autosteper
Besides, Autosteper relies on open source project FullereneDataParser to convert 3D coordinates to graph6str format and properly visualize isomers, pathways, and SWR pairs. FullereneDataParser has not been published on Pypi. According to Pypi policy, the unpublished project could not be used as a dependency for the published package. Therefore, it needs to be installed separately:
pip install git+https://github.com/XJTU-ICP/FullereneDataParser
Note: FullereneDataParser contains part of C++ code, to properly install, an advanced compiler version is required. Simply load the highest available version of compiler will avoid most of the problems. See below.
Finally, the in-house built C++ project usenauty needs to be collected. usenauty is a lightweight tool to enumerate non-isomorphic addition patterns with nauty algorithm which is created by Brendan D. McKay. The original modification is performed in usenauty by XJTU-ICP member Y. B. Han. Here we employ a branch version of it.
Unlike previously mentioned packages, the installation of usenauty is different for Linux and Windows. There are two pre-compiled releases for two platforms, users are encouraged to download the corresponding releases.
For example, linux users could download the gcc-8.4.0 version with command line as below:
wget https://github.com/Franklalalala/usenauty/releases/download/linux/cagesearch
After downloading, users need to assign execution permissions and load a gcc environment:
chmod +x path/to/cagesearch
module load compiler/gcc/8.4.0
Note that, any gcc version above 8.4.0 is technically suitable.
If everything goes well, a gentle notation is expected after executing this binary file:
path/to/cagesearch
The absolute path of this file corresponds to the gen_core_path
in the generator module, as demonstrated in test_step.py.
A GitHub Proxy will speed up the installation from github:
pip install git+https://ghproxy.com/https://github.com/XJTU-ICP/FullereneDataParser
wget https://ghproxy.com/https://github.com/Franklalalala/usenauty/releases/download/linux/cagesearch
Any contribution is greatly appreciated. To install from the source code, the AutoSteper package:
git clone https://github.com/Franklalalala/AutoSteper
cd AutoSteper
pip install . -e
The FullereneDataParser package:
git clone https://github.com/XJTU-ICP/FullereneDataParser
cd FullereneDataParser
pip install . -e
To compile the usenauty project, please follow instructions in usenauty.
Issues are welcomed if you have any questions.
Contributions needs to stay in line with Conventional Commit messages.
Contact me: 1660810667@qq.com