Python Rapid Artificial Intelligence Ab Initio Molecular Dynamics
/\ |\ /| /++\ ||\ /|| /++++\ || \/ || || /++++++\ || || || /PyRAI2MD\ || || || /++++++++++\ __ || /++++++++++++\ |\ | /\ |\/| | \ ||__ __ *==============* | \| /--\ | | |_/ Python Rapid Artificial Intelligence Ab Initio Molecular Dynamics Author @Jingbai Li Northeastern University, Boston, USA version: 2.0 alpha With contriutions from (in alphabetic order): Jingbai Li - Fewest switches surface hopping Zhu-Nakamura surface hopping Velocity Verlet OpenMolcas interface OpenMolcas/Tinker interface BAGEL interface Adaptive sampling Grid search Two-layer ONIOM (coming soon) Periodic boundary condition (coming soon) QC/ML hybrid NAMD Patrick Reiser - Neural networks (pyNNsMD) Special acknowledgement to: Steven A. Lopez - Project directorship Pascal Friederich - ML directoriship>
Features
- Machine learning nonadibatic molecular dyanmics (ML-NAMD).
- Neural network training and grid search.
- Active learning with ML-NAMD trajectories.
- Support BAGEL, Molcas for QM, and Molcas/Tinker for QM/MM calculations.
- Support nonadibatic coupling and spin-orbit coupling (Molcas only)
Prerequisite
- Python >=3.7 PyRAI2MD is written and tested in Python 3.7.4. Older version of Python is not tested and might not be working properly.
- TensorFlow >=2.2 TensorFlow/Keras API is required to load the trained NN models and predict energy and force.
- Cython PyRAI2MD uses Cython library for efficient surface hopping calculation.
- Matplotlib/Numpy Scientifc graphing and numerical library for plotting training statistic and array manipulation.
Content
File/Folder Name Description --------------------------------------------------------------------------------------------------- pyrai2md.py PyRAI2MD interface PyRAI2MD source codes folder |--variables.py PyRAI2MD input reader |--method.py PyRAI2MD method manager |--Molecule atom, molecule, trajectory code folder | |--atom.py atomic properties class | |--molecule.py molecular properties class | |--trajectory.py trajectory properties class | |--pbc_helper.py periodic boundary condition functions | `-qmmm_helper.py qmmm functions | |--Quantum_Chemistry quantum chemicial program interface folder | |--qc_molcas.py OpenMolcas interface | |--qc_bagel.py BAGEL interface | `-qc_molcas_tinker OpenMolcas/Tinker interface | |--Machine_Learning machine learning library interface folder | |--training_data.py training data manager | |--model_NN.py neural network interface | |--hypernn.py hyperparameter manager | |--permutation.py data permutation functions | |--adaptive_sampling.py adaptive sampling class | |--grid_search.py grid search class | |--remote_train.py distribute remote training | `-pyNNsMD neural network library | |--Dynamics ab initio molecular dynamics code folder | |--aimd.py molecular dynamics class | |--mixaimd.py ML-QC hybrid molecular dynamics class | |--single_point.py single point calculation | |--hop_probability.py surface hopping probability calculation | |--reset_velocity.py velocity adjustment functions | |--verlet.py velocity verlet method | |--Ensembles thermodynamics control code folder | | |--ensemble.py thermodynamics ensemble manager | | |--microcanonical.py microcanonical ensemble | | `-thermostat.py canonical ensemble | | | `-Propagators electronic propagation code folder | |--surface_hopping.py surface hopping manager | |--fssh.pyx fewest switches surface hopping method | |--gsh.py generalized surface hopping method | `-tsh_helper.py trajectory surface hopping tools | `-Utils utility folder |--aligngeom.py geometry aligment and comparison functions |--coordinates.py coordinates writing functions |--read_tools.py index reader |--bonds.py bond length library |--sampling.py initial condition sampling functions |--timing.py timing functions `-logo.py logo and credits
Installation
Download the repository
git clone https://github.com/lopez-lab/PyRAI2MD.git
Specify environment variable of PyRAI2MD
export PYRAI2MD=/path/to/PyRAI2MD
Test PyRAI2MD
Copy the test script and modify environment variables
cp $PYRAI2MD/Tool/test_PyRAI2MD.sh .
bash test_PyRAI2MD.sh
Or directly run if environment variables are set
$PYRAI2MD/pyrai2md.py quicktest
Run PyRAI2MD
$PYRAI2MD/pyrai2md.py input
User manual
We are currently working on the user manual.
Cite us
- Jingbai Li, Patrick Reiser, Benjamin R. Boswell, AndrΓ© Eberhard, Noah Z. Burns, Pascal Friederich, and Steven A. Lopez, "Automatic discovery of photoisomerization mechanisms with nanosecond machine learning photodynamics simulations", Chem. Sci. 2021. DOI: 10.1039/D0SC05610C
- Jingbai Li, Rachel Stein, Daniel Adrion, Steven A. Lopez, "Machine-learning photodynamics simulations uncover the role of substituent effects on the photochemical formation of cubanes", ChemRxiv, preprint, DOI:10.33774/chemrxiv-2021-lxsjk