Here, we provide the scripts used to generate partial charges, assess variability, and run absolute hydration free energy calculations.
- Create openfe environment from
openfe.yaml
mamba create -f openfe.yaml
- This environment should be used with the following scripts
charge_molecules.py
calculate_bond_dq.py
prep_fe_am1bcc.py
prep_fe_elf10.py
prep_fe_nagl_pt2.py
- Create nagl environment from
nagl.yaml
mamba create -f nagl.yaml
- This environment should be used with the following scripts
prep_fe_nagl_pt1.py
These are the scripts used to generate 50 random conformers of a molecule and charge them using various partial charge generation methods.
charge_molecules.py
- given
toolkit='openeye'
andcharge_method=am1bcc
- should be run with environment created from
openfe.yaml
- charges molecules using either OpenEye AM1-BCC charges or AmberTools AM1-BCC charges
- We generate 50 random conformers
- We charge each conformer using the chosen AM1-BCC charge toolkit
- should be run with environment created from
- given
toolkit='ambertools'
andcharge_method=am1bcc
- should be run with environment created from
openfe.yaml
- charges molecules using either OpenEye AM1-BCC charges or AmberTools AM1-BCC charges
- We generate 50 random conformers
- We charge each conformer using the chosen AM1-BCC charge toolkit
- should be run with environment created from
- given
toolkit='openeye'
andcharge_method=am1bccelf10
- should be run with environment created from
openfe.yaml
- charges molecules using OpenEye AM1-BCC ELF10 charges
- We generate 50 sets of 500 random conformers
- Each set has a different random seed
- Each set of 500 conformers is used as an input to AM1-BCC ELF10 charge generator
- This results in 50 AM1-BCC ELF10 partial charge sets
- should be run with environment created from
- given
toolkit='openff'
andcharge_method=nagl
- should be run with environment created from
nagl.yaml
- charges molecules uisng OpenForceField's NAGL charges
- We generate 50 random conformers
- this is in way unnecessary because NAGL charges should be conformer independent
- however, this allows us to prove NAGL charges are conformer indpendent
- should be run with environment created from
- given
- AM1-BCC charges
prep_fe_am1bcc.py
- should be run with environment created from
openfe.yaml
- prepares OpenFE absolute hydration free energy calculation start files with AM1-BCC charges
- uses either OpenEye or AmberTools to charge molecules
- each replicate of the calculation will be identical except in the assigned partial charges
- each replicate will have partial charges generated from a random conformer
- each replicate will begin the simulation from the same 3D coordinates / conformer
- should be run with environment created from
- AM1-BCC ELF 10 charges
prep_fe_elf10.py
- should be run with environment created from
openfe.yaml
- prepares OpenFE absolute hydration free energy calculation start files with OpenEye AM1-BCC ELF10 charges
- each replicate of the calculation will be identical except in the assigned partial charges
- each replicate will have partial charges generated from a set of 500 random conformers
- each replicate will begin the simulation from the same 3D coordinates / conformer
- should be run with environment created from
- OpenFF NAGL charges
prep_fe_nagl_pt1.py
- should be run with environment created from
nagl.yaml
- it is necessary to use a separate environment to generate the charges as the OpenFF toolkit version necessary to use NAGL is incompatible with the version of OpenFE used to create the simulations start files
- generates NAGL charges and saves the charges in a
.mol2
- We generate 50 random conformers
- this is in way unnecessary because NAGL charges should be conformer independent
- however, this allows us to prove NAGL charges are conformer indpendent
- should be run with environment created from
prep_fe_nagl_pt2.py
- should be run with environment created from
openfe.yaml
- prepares OpenFE absolute hydration free energy calculation start files with OpenFF NAGL charges
- requires the
.mol2
files generated fromprep_fe_nagl_pt1.py
- requires the
- each replicate of the calculation will be exactly identical including in the assigned partial charges as NAGL is a conformer independent charge generation method
- should be run with environment created from
plot_2dmol_with_qdiff.ipynb
- Creates a 2D image of the molecule
- User selects 2 partial charge sets to compare
- Notebook highlights each atom based on the partial charge difference for that atom between the 2 partial charge sets
plot_2dmol_with_bonddqdiff.ipynb
- Creates a 2D image of the molecule
- User selects 2 partial charge ∆q_bond sets to compare
- Notebook highlights each bond based on the ∆q_bond difference for that bond between the 2 partial charge ∆q_bond sets