Installation¶
AutoSteper has a dependency on multiple projects, namely:
importlib-metadata
ase
numpy
pandas
networkx
tqdm
matplotlib>=3.6.0
seaborn
openpyxl
DPDispatcher
FullereneDataParser
usenauty
The installation pipeline has been optimized with our best efforts. Before hands-on, a gentle notation about wisely choosing the working platform needs to be addressed.
Choose your platform¶
AutoSteper is designed to simulate the stepwise chemical reaction.
Generally speaking, there are three minor steps in each step. As
presented in Fig 1, the computation-intensive operation Optimize has
been isolated to the Remote resources, and the other two are conducted
in Local resources. AutoSteper relies on
DPDispatcher
to realize the communication between the two. Here local and remote are
virtual concepts to emphasize the isolation of computation-intensive
operations.
Fig 1. Illustration of the communication scheme in AutoSteper.
In general, the remote resources are HPCC(High-Performance Computing Cluster), which is accommodated with the Linux operation system, while the local resource could be your PC(Personal Computer), a Windows system, or stay in line with the remote.
Here we recommend setup all your workbase on the Linux platform, since the communication between HPCC with PC may undermine performance. Though you can set up a Windows version to perform some analyzing tasks.
For Linux users¶
Before hands-on to AutoSteper, an isolated conda environment is encouraged:
conda create -n AutoSteper python=3.8
conda activate AutoSteper
We have put our project on Pypi, to install this project along with most of the dependencies has been integrated into a single command line:
pip install autosteper
The rest two packages, FullereneDataParser and usenauty, have not been published on Pypi. According to Pypi policy, the unpublished project could not be used as a dependency for the published package. Therefore, the rest two of them need to be installed separately.
Since both of these projects contains part of the C++ code, before further installation, a C compiler needs to be prepared. For example:
module load path/to/gcc/8.4.0
Here we strongly recommend users load the highest version of the compiler that is available. Note that the usenauty project requested a compiler that satisfies the CXX 17 standard. A satisfied compiler will avoid most of the installation problems, though a lower version of compiler may work with instructions in usenauty.
FullereneDataParser has been utilized in this project to convert 3D coordinates into graph6str format and properly visualize isomers, pathways, and SWR pairs. FullereneDataParser is developed by XJTU-ICP member Y.B. Han, see article.
To install this project:
pip install git+https://github.com/XJTU-ICP/FullereneDataParser
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, see article. The original modification is performed in usenauty by XJTU-ICP member Y. B. Han. Here we employ a branch version of it.
If you have loaded a gcc with a version higher than gcc-8.4.0, you can directly download the binary file:
wget https://github.com/Franklalalala/usenauty/releases/download/linux/cagesearch
After downloading, users need to assign execution permissions:
chmod +x 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.
On the other hand, if you do not have compilers that meet the
requirement, you can follow compile instructions in
usenauty.
After collecting all these packages, a gentle touch on these programs is encouraged:
In Python environment:
from autosteper import AutoSteper
If everything goes well, there will be normal terminations.
And the usenauty program:
path/to/cagesearch
A notation will appear:
Fig 2. The usenauty notation.
For Windows users¶
Though we do not recommend users install in a Windows environment, for potential analyzing convenience, a Windows version could be prepared in the following way:
Prepare an isolated conda environment:
conda create -n AutoSteper python=3.8
conda activate AutoSteper
Install AutoSteper and FullereneDataParser:
pip install autosteper
pip install git+https://github.com/XJTU-ICP/FullereneDataParser
Get a binary release from Releases ·usenauty (github.com). Note that there are two pre-compiled releases, if you do not have a compiler met that requirement, please follow the instructions in usenauty, or you can directly skip this part to reserve analyzing functions only.