This repository contains an application of a PointNet to identify crystal structures in molecular simulations. See original paper (https://arxiv.org/abs/1612.00593) and repository (https://github.com/charlesq34/pointnet).
This tool depends on several Python packages, all of which can be easily installed in an Anaconda environment:
conda install numpy pandas scikit-learn tensorflow-gpu==1.7.0
There are three primary scripts:
run_pointnet.py
: Trains the point netrun_infer.py
: Runs inference (w/ labels)run_infer_nolabel.py
: Runs inference (w/o labels)
and two scripts to help read/format inputs:
read_train.py
: Reads/formats training data into numpy arraysread_test_nolabel.py
: Reads/formats data w/o labels and preserves frame id/atom id
To compile approxmatch:
/usr/local/cuda-9.0/bin/nvcc tf_approxmatch_g.cu -o tf_approxmatch_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_approxmatch.cpp tf_approxmatch_g.cu.o -o tf_approxmatch_so.so -shared -fPIC
-I /home/$USER/.local/lib/python2.7/site-packages/tensorflow/include -I /usr/local/cuda-9.0/include
-I /home/$USER/.local/lib/python2.7/site-packages/tensorflow/include/external/nsync/public
-lcudart -L /usr/local/cuda-9.0/lib64 -L /home/$USER/.local/lib/python2.7/site-packages/tensorflow
-ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0
Note that path to tensorflow location may vary depending on your install.