This repo uses PointNet [1], a neural network designed for computer vision applications using point clouds. In this study, a properly-trained PointNet was demonstrated to be highly generalizable on morphology detection in molecular simulations, and can be potentially extended to discovery of emerging ordered patterns from non-equilibrium systems.
The PointNet was trained on atomic coordinates of mesophases including lamellar (LAM), body-centered cubic (BCC), hexagonally-packed cylinder (HPC), hexagonally-perforeated lamellar (HPL), and disorderd (DIS) from molecular dynamics (MD) simulation trajectories from our previous work [2, 3, 4] and synthetic point clouds for ordered network morphologies that were absent from previous simulations, including double diamond (DD), double gyroid (DG), plumber’s nightmare (P), and single gyroid (SG).
The PointNet architecture is taken from [1], also see implementation in Tensorflow (https://github.com/charlesq34/pointnet) and in PyTorch (https://github.com/fxia22/pointnet.pytorch). DeFever et. al. [5] also presented the use of PointNet to identify local structures in coarsed grained MD simulations.
pip install -m requirements.txt
point_clouds
and raw training data raw
from here. Note: the raw
folder contains 100 example .pdb
(~1.1 G) files for each structure. A complete data set contains ~38 G of data and will be available upon request.point_clouds
and raw
into the data
folder..pdb
files (simulation frames): sh cd ./data python process_pdb.py -c LAM -t -r
-c: name of the phases available form .pdb
files (BCC, DIS, HPC, HPL, or LAM)sh cd ./data python process_net.py -c DG -t -r -n 3000
-c: name of the network phases (DD, DG, P, or SG)sh cd ./utils python train_classification.py -b 64 -n 1000 -e 100 -d ../data/point_clouds/ -f
-b: size of minibatchThe highest accuracy and the corresponding confusion matrices for different models:
Model | Strategy | Accuracy | CI |
---|---|---|---|
A | translation | 0.973 | 0.010 |
B | translation + STN | 0.957 | 0.011 |
C | translation + rotation | 0.983 | 0.009 |
D | translation + rotation + STN | 0.990 | 0.005 |
Download model states during training from trained_models
https://drive.google.com/drive/folders/1N8BjACdNCKTmEnRF46VKkoHufLV8VoMt?usp=sharing.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Project Link: https://github.com/donshen/pointnet.phasedetection