A Python script employs the MMPBSA (Molecular Mechanics Poisson-Boltzmann Surface Area) method to integrate GROMACS and APBS software, facilitating the calculation of binding free energy between proteins and small molecules.
This script is designed for individuals who have completed molecular dynamics simulations and need to calculate the binding free energy between proteins and small molecules.
Building on the foundational shell script, gmx_mmpbsa.bsh, originally developed by Jicun Li for calculating the binding free energy between proteins and small molecules, we have enhanced it with further analyses and illustrative graphics.
Further analyses and illustrative graphics:
- Calculate the total binding free energy (ΔGbinding) between the protein and the small molecules. Calculate the van der Waals energy (ΔGvdw), electrostatic energy (ΔGele), polar-solvation energy (ΔGpolar), nonpolar solvation energy (ΔGnonpolar) and entropy change (-TΔS) between the protein and the small molecules. Present these energy values in a visual histogram.
- Assess the energy contribution of each amino acid within the protein towards the binding free energy. Highlight the top 15 amino acids, ranked in descending order based on their contribution magnitude. Display the energy contributions of the top 15 amino acids using a descriptive pie chart.
- Show the calculation formula of binding free energy. According to the relationship between the binding free energy and the dissociation constant (ln Kd =ΔG/RT), the corresponding dissociation constant was converted, and the affinity between proteins and small molecules was further analyzed.
We provide a protocol for users to follow up. The example analysis results are stored in the
gmx_mmpbsa_py/example
folder.
The instructions below are for the installation of the required software. It should be noticed that there should be no space in the path of APBS and GROMACS.
The recommended version for APBS is 3.0.0, please download the software with link.
Please refer to the link for GROMACS installation.
Please install Python3 with the link. Version 3.6 or higher is preferred.
For the windows' users, a Linux/Unix-like environment is required. Please install Git for Windows with the link. Other bash environment is also valid.
Open git bash in target directory, clone the repository to local.
# clone the repository to local
git clone https://github.com/linqicheng-xiao/gmx_mmpbsa_py.git
cd gmx_mmpbsa_py
# install requirements
pip install -r requirements.txt # or pip3 install -r requirements.txt
Put three files in the created gmx_mmpbsa_py/data
folder:
- Trajectory file (.xtc)
- Tpr file (.tpr)
- Index file (.ndx)
The parameter.yaml file is used for setting the very basic parameters for the script. Here is an example of the parameter.yaml file:
trj: md_0_1_noPBC.xtc # trajectory file
tpr: md_0_1.tpr # tpr file
ndx: index.ndx # index file
pro: Protein # index group name of protein
lig: UNK # index group name of ligand
com: Protein_UNK
# For Windows' users, USE "/", NOT "\"
apbs: 'I:/Xiao_Lab/APBS/APBS-3.0.0/bin/apbs'
gmx: 'I:/Xiao_Lab/gmx2018.8/bin/gmx'
Change the gmx_mmpbsa_py/parameter.yaml
file according to your needs. Be aware that this
is the minimal requirement for the script to execute. For more parameter adjustment, please refer to the
gmx_mmpbsa/gmx_mmpbsa.bsh
for more details, you can adjust it there and execute the script as well.
Open git bash in the gmx_mmpbsa_py
folder and execute the script with the command below:
python main.py # or python3 main.py
The original shell script output will be stored in the gmx_mmpbsa_py/results/execution
folder.
The analytical results are stored in the gmx_mmpbsa_py/results/analysis
folder.
The organized analytical results are briefly introduced:
- Calculation of the binding free energy between the ligand small molecule and the protein
- MM/PBSA binding free energy calculation results (Figure 1)
- The 15 amino acids that contribute the most to binding free energy in the protein (Figure 2)
If you find the script is useful for your work and used for your publication(s). It will be appreciated if you cite our paper:
As well as the original shell script by Jicun Li: 10.5281/zenodo.6408973