Skip to content

mane292/Enerzyme

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

309 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enerzyme

Towards next-generation machine learning force fields for enzymatic catalysis.

Currently supported model architectures:

Model Type Energy and force prediction Charge and dipole prediction Fully modulized Shallow ensemble Reference paper Reference code
PhysNet internal J. Chem. Theory Comput. 2019, 15, 3678–3693 Github
SpookyNet internal Nat. Commun. 2021, 12(1), 7273 Github
AlphaNet internal arXiv:2501.07155 Github
MACE internal NeurIPS 2022, arXiv:2206.07697 Github
NequIP external Nat. Commun. 2022, 13(1), 2453 Github
XPaiNN external J. Chem. Theory Comput. 2024, 20, 21, 9500–9511 Github

Usage

Installation

Recommended environment for internal force fields

python==3.12.8
pip==25.0
setuptools==75.8.0
h5py==3.12.1
numpy==2.2.2
addict==2.4.0
tqdm==4.67.1
joblib==1.4.2
pandas==2.2.3
pytorch==2.5.1
scikit-learn==1.6.1
ase==3.24.0
transformers==4.48.2
torch-ema==0.3
pyyaml==6.0.2
torch-scatter==2.1.2
e3nn==0.5.5

To test PhysNet, you also need

tensorflow==2.13.0

To invoke NequIP, you need

nequip==0.6.1

To invoke XPaiNN, you need

XequiNet==0.3.6
scipy==1.11.2
pyscf==2.7.0
torch_geometric==2.5.3
pytorch-warmup==0.1.1
pydantic==1.10.12

Then install the package

pip install -e .

Training

Energy (force) / Atomic Charge / Dipole moment fitting.

enerzyme train -c <configuration yaml file> -o <output directory>

Please see enerzyme/config/train.yaml for details and recommended configurations.

Enerzyme saves the preprocessed dataset, split indices, final <configuration yaml file>, and the best/last model to the <output directory>.

Active Learning Training

Please see enerzyme/config/active_learning_train.yaml for details and recommended configurations.

Evaluation

Energy (force) / Atomic Charge / Dipole moment prediction.

enerzyme predict -c <configuration yaml file> -o <output directory> -m <model directory>

Please see enerzyme/config/predict.yaml for details.

Enerzyme reads the <model directory> for the model configuration, load the models, predict the results from all active models, save the predicted values as a pickle in the corresponding model subfolders, and report the results as a csv file in the <output directory>.

Simulation

Supported simulation types:

  • Constrained optimization. See enerzyme/config/opt.yaml
  • Constrained flexible scan on the distance between two atoms. See enerzyme/config/scan.yaml
  • Constrained Langevin MD. See enerzyme/config/nvt_md.yaml
enerzyme simulate -c <configuration yaml file> -o <output directory> -m <model directory>

Enerzyme reads the <model directory> for the model configuration, load the models, do simulation, and report the results in the <output directory>.

Fragment Extraction

Extract fragments based on local uncertainty from the prediction

enerzyme extract -c <configuration yaml file> -o <output directory> -m <model directory>

Please see enerzyme/config/extract.yaml for details.

Data annotation

Label molecules with energies, forces and dipoles from QM calculation. Please get your QM engine's environment prepared first.

enerzyme annotate -c <configuration yaml file> -o <output directory> -t <temporary directory> -s <start index> -e <end index>

Please see enerzyme/config/annotate.yaml for details.

Bond order assignment

Guess bond orders from pdb file. Compatible with QuantumPDB, where the pdb file should be the output of cluster building and the template sdf file should be ligands.sdf.

enerzyme bond -p <pdb file> -m <output mol file> -i <output image file> -t <template sdf file>

About

Next generation machine learning force field on enzymatic catalysis

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 99.6%
  • Jupyter Notebook 0.4%