Warning
This repository is actively being developed. Expect breaking changes and incomplete documentation.
- Clone this repo and add this base directory to PATH, or run calculations directly from here.
- Install the project dependencies in
pyproject.tomlusinguvorpip. - If using free energy simulations, install
gxtbversion 2.0.1 or greater intobin(or specify its location with--xtb-executable). If running into issues, one can also installgxtbversion 2.0.0, and separately installxtbandcpcmbecause the solvation model was not included in the 2.0.0 binary. (If this is done, set--xtb-versiontolegacy.)
Example setup with pip:
git clone git@github.com:jonwzheng/PEACE.git
cd PEACE
python -m venv peace_env
source peace_env/bin/activate
pip install -e .
Example run:
python -m peace.main --smiles "NCC(=O)O" --solvation
CLI commands can be displayed e.g. with:
python -m peace.main --help
- Tautomer Enumeration using RDKit.
- Protomer Enumeration by searching each tautomer for acid/base sites and sequentially (de)protonating all possible combinations (this searches for zwitterion forms).
- (Optional) Microstate Population Estimation using quantum-chemical calculations:
- Screening: KDG conformer -> CPCM-X, g-xTB gas-phase SP, and RRHO on the screening geometry.
- Refinement (screened-in protomers): MMFF94-ranked conformer ensemble -> GFN2-xTB/ALPB optimization -> re-optimize at g-xTB gas phase.CPCM-X on GFN2-xTB/ALPB geometry; g-xTB SP and RRHO on the g-xTB geometry by default. Pass
--no-gxtb-optimizeto instead have all energy calculations done at the GFN2-xTB/ALPB geometry. It is planned that a machine learning model will be made available to speed this up.
- Visualization of all relevant tautomer-protomers based on their graph representations.
The free energies of tautomers, and their ensembles, can be used to estimate pKa values. It is currently quite inaccurate and should be considered work in progress, or at least a way of estimating which micro-reactions contribute to acidity. Work is ongoing.
You can call this with the --pka flag as well as --proton-energy to estimate the proton free energy in solution.