Python Rapid Artificial Intelligence Ab Initio Molecular Dynamics

Related tags

Deep LearningPyRAI2MD
Overview

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
OBBDetection is a oriented object detection library, which is based on MMdetection.

OBBDetection news: We are now updating OBBDetection to new vision based on MMdetection v2.10, which has more advanced models and more efficient featur

jbwang1997 401 Jan 02, 2023
Convnext-tf - Unofficial tensorflow keras implementation of ConvNeXt

ConvNeXt Tensorflow This is unofficial tensorflow keras implementation of ConvNe

29 Oct 06, 2022
MusicYOLO framework uses the object detection model, YOLOx, to locate notes in the spectrogram.

MusicYOLO MusicYOLO framework uses the object detection model, YOLOX, to locate notes in the spectrogram. Its performance on the ISMIR2014 dataset, MI

Xianke Wang 2 Aug 02, 2022
Code for DeepXML: A Deep Extreme Multi-Label Learning Framework Applied to Short Text Documents

DeepXML Code for DeepXML: A Deep Extreme Multi-Label Learning Framework Applied to Short Text Documents Architectures and algorithms DeepXML supports

Extreme Classification 49 Nov 06, 2022
Transport Mode detection - can detect the mode of transport with the help of features such as acceeration,jerk etc

title emoji colorFrom colorTo sdk app_file pinned Transport_Mode_Detector 🚀 purple yellow gradio app.py false Configuration title: string Display tit

Nishant Rajadhyaksha 3 Jan 16, 2022
A set of tools to pre-calibrate and calibrate (multi-focus) plenoptic cameras (e.g., a Raytrix R12) based on the libpleno.

COMPOTE: Calibration Of Multi-focus PlenOpTic camEra. COMPOTE is a set of tools to pre-calibrate and calibrate (multifocus) plenoptic cameras (e.g., a

ComSEE - Computers that SEE 4 May 10, 2022
Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms

AdvancedHMC.jl AdvancedHMC.jl provides a robust, modular and efficient implementation of advanced HMC algorithms. An illustrative example for Advanced

The Turing Language 167 Jan 01, 2023
TensorFlow-based implementation of "Pyramid Scene Parsing Network".

PSPNet_tensorflow Important Code is fine for inference. However, the training code is just for reference and might be only used for fine-tuning. If yo

HsuanKung Yang 323 Dec 20, 2022
Tesla Light Show xLights Guide With python

Tesla Light Show xLights Guide Welcome to the Tesla Light Show xLights guide! You can create and run your own light shows on Tesla vehicles. Running a

Tesla, Inc. 2.5k Dec 29, 2022
FinRL­-Meta: A Universe for Data­-Driven Financial Reinforcement Learning. 🔥

FinRL-Meta: A Universe of Market Environments. FinRL-Meta is a universe of market environments for data-driven financial reinforcement learning. Users

AI4Finance Foundation 543 Jan 08, 2023
[CVPR 2020] 3D Photography using Context-aware Layered Depth Inpainting

[CVPR 2020] 3D Photography using Context-aware Layered Depth Inpainting [Paper] [Project Website] [Google Colab] We propose a method for converting a

Virginia Tech Vision and Learning Lab 6.2k Jan 01, 2023
Kaggleship: Kaggle Notebooks

Kaggleship: Kaggle Notebooks This repository contains my Kaggle notebooks. They are generally about data science, machine learning, and deep learning.

Erfan Sobhaei 1 Jan 25, 2022
Array Camera Ptychography

Array Camera Ptychography This repository provides the code for the following papers: Schulz, Timothy J., David J. Brady, and Chengyu Wang. "Photon-li

Brady lab in Optical Sciences 1 Nov 15, 2021
Collection of TensorFlow2 implementations of Generative Adversarial Network varieties presented in research papers.

TensorFlow2-GAN Collection of tf2.0 implementations of Generative Adversarial Network varieties presented in research papers. Model architectures will

41 Apr 28, 2022
Code for "Long Range Probabilistic Forecasting in Time-Series using High Order Statistics"

Long Range Probabilistic Forecasting in Time-Series using High Order Statistics This is the code produced as part of the paper Long Range Probabilisti

16 Dec 06, 2022
Automatically replace ONNX's RandomNormal node with Constant node.

onnx-remove-random-normal This is a script to replace RandomNormal node with Constant node. Example Imagine that we have something ONNX model like the

Masashi Shibata 1 Dec 11, 2021
Spatial color quantization in Rust

rscolorq Rust port of Derrick Coetzee's scolorq, based on the 1998 paper "On spatial quantization of color images" by Jan Puzicha, Markus Held, Jens K

Collyn O'Kane 37 Dec 22, 2022
Code for our paper Domain Adaptive Semantic Segmentation with Self-Supervised Depth Estimation

CorDA Code for our paper Domain Adaptive Semantic Segmentation with Self-Supervised Depth Estimation Prerequisite Please create and activate the follo

Qin Wang 60 Nov 30, 2022
POT : Python Optimal Transport

POT: Python Optimal Transport This open source Python library provide several solvers for optimization problems related to Optimal Transport for signa

Python Optimal Transport 1.7k Dec 31, 2022
Temporal Segment Networks (TSN) in PyTorch

TSN-Pytorch We have released MMAction, a full-fledged action understanding toolbox based on PyTorch. It includes implementation for TSN as well as oth

1k Jan 03, 2023