duartegroup / mlp-train

MLP training for molecular systems
MIT License
25 stars 9 forks source link

DOI pytest CI codecov pre-commit Ruff License

mlp-train

General machine learning potentials (MLP) training for molecular systems in gas phase and solution

Available models:

Install

Each model is installed into an individual conda environment:

# Install GAP
./install_gap.sh

# Install ACE
./install_ace.sh

# Install MACE
./install_mace.sh 

Notes

Using with OpenMM

The OpenMM backend only works with MACE at the moment. The necessary dependencies are installed automatically via conda:

./install_mace.sh

Depending on your machine, you might need to prefix the command above with something like CONDA_OVERRIDE_CUDA="11.2" in two scenarios:

You should now be able to run water_openmm.py in ./examples or run the jupyter notebook on Google Colab water_openmm_colab.ipynb.

You can use OpenMM during active learning by passing the keyword argument md_program="OpenMM" to the al_train method. You can run MD with OpenMM using mlptrain.md_openmm.run_mlp_md_openmm()

For developers

We are happy to accept pull requests from users. Please first fork mlp-train repository. We use pre-commit, Ruff and pytest to check the code. Your PR needs to pass through these checks before is accepted. Pre-commit is installed as one the dependecies. To use it in your repository, run the following command in the mlp-train folder:

pre-commit install 

Pre-commit will then run automatically at each commit and will take care of installation and running of Ruff.

Citations

If mlptrain is used in a publication please consider citing the paper:

@article{MLPTraining2022,
  doi = {10.1039/D2CP02978B},
  url = {https://doi.org/10.1039/D2CP02978B},
  year = {2022},
  publisher = {The Royal Society of Chemistry},
  author = {Young, Tom and Johnston-Wood, Tristan and Zhang, Hanwen and Duarte, Fernanda},
  title = {Reaction dynamics of Diels-Alder reactions from machine learned potentials},
  journal = {Phys. Chem. Chem. Phys.}
}

Contact

For bugs or implementation requests, please use GitHub Issues