Binding free energy calculation with the linear PB equation¶
This example calculates the binding free energy of a protein-protein complex with the single-trajectory protocol and the linear Poisson-Boltzmann equation (LPBE). It processes ten frames at an ionic strength of 0.15 M.
The manual workflow uses the following files and selections:
Calculation settings
mmpbsa.in (-i)
GROMACS system
Structure com.tpr (-cs) and topology topol.top (-cp). Keep any *.itp files referenced by the topology in the same directory.
Trajectory
PBC-corrected and fitted trajectory com_traj.xtc (-ct)
Molecular selections
Index index.ndx (-ci) and receptor/ligand group names or zero-based group numbers (-cg)
A complex reference structure without hydrogens may also be supplied with -cr. It is optional but recommended when you need specific chain IDs or residue numbering. A ligand MOL2 file is not required for this example because the GROMACS topology provides the necessary parameters. See the complete command-line reference for all options.
Extract the archive, change to the Linear_PB_solver directory, and choose either the serial or MPI command. You can also view the example files on GitHub before downloading them.
The example uses the minimal mmpbsa.in shown first below. The all-options version was generated with gmx_MMPBSA --create_input pb and then adapted with the example-specific values. The concise block is the runnable starting point; the generated block exposes additional options and defaults, so the two blocks are not textually identical.
For this example, -cp topol.top supplies the GROMACS topology parameters used by the calculation. The topology already contains the bonded, nonbonded, charge, ligand, and ion parameters required by the calculation.
Sample input file for PB calculation# This sample input is intended only to demonstrate that gmx_MMPBSA works.# Although it follows the recommendations in the Amber manual, some parameters# have been adjusted to keep the computational cost reasonable. Modify them as# appropriate for your system.&generalsys_name="Linear_PB",startframe=1,endframe=10,/&pbradiopt=0, istrng=0.150,/
Input block generated for the 1.7.0 release with --create_input pb and adapted for this example.Be careful with the variables you modify, some can have severe consequences on the results you obtain.# General namelist variables&generalsys_name = "Linear_PB"# System name; e.g. "complex"startframe = 1# First frame; e.g. 1endframe = 10# Last frame; e.g. 100interval = 1# Frame interval; e.g. 1PBRadii = 4# PB radii set; 1-7temperature = 298.15# Temperature (K); e.g. 298.15qh_entropy = 0# Legacy QH output reader; new calculations reject 1interaction_entropy = 0# Run IE entropy; 0/1ie_segment = 25# IE tail diagnostic only (%); not primary IE; e.g. 25c2_entropy = 0# Run C2 entropy; 0/1assign_chainID = 0# Assign chain IDs; 0/1exp_ki = 0.0# Experimental Ki (nM); e.g. 0.0full_traj = 0# Write full trajectory; 0/1gmx_path = ""# GROMACS path; e.g. "/usr/bin"keep_files = 2# Files to keep; 0-2netcdf = 0# Use NetCDF; 0/1solvated_trajectory = 1# Clean solvated traj.; 0/1explicit_waters = 0# Explicit waters; e.g. 10explicit_waters_mask = "dASA"# Water reference; e.g. ":1-10", "within 4", "dASA"explicit_waters_group = "automatic"# Solvent group; e.g. "TIP3" or "automatic"explicit_waters_dasa_cutoff = 0.5# dASA cutoff; e.g. 0.5explicit_waters_as = "receptor"# Water owner; e.g. "receptor"explicit_waters_extra_points = "error"# Virtual sites; "error" or "strip"verbose = 1# Output verbosity; 0-2/# (AMBER) Poisson-Boltzmann namelist variables&pbipb = 2# PB model; e.g. 2inp = 1# Nonpolar method; 1 or 2indi = 1.0# Internal dielectric; e.g. 1.0exdi = 78.5# External dielectric; e.g. 78.5emem = 4.0# Membrane dielectric; e.g. 4.0smoothopt = 1# Dielectric smoothing; 0-2istrng = 0.150# Ionic strength (M); e.g. 0.150radiopt = 0# Use optimized radii; 0/1prbrad = 1.4# Probe radius (A); e.g. 1.4iprob = 2.0# Ion probe (A); e.g. 2.0sasopt = 0# PB surface option; 0/1arcres = 0.25# Arc resolution (A); e.g. 0.25memopt = 0# Use membrane PB; 0/1mprob = 2.7# Membrane probe (A); e.g. 2.7mthick = "automatic"# Membrane thickness (A), or automaticmctrdz = "automatic"# Membrane Z offset (A), or automaticmembrane_atoms = "P"# Atom names for automatic membrane parameters; semicolon-separatedporetype = 1# Pore type; 1 or 2npbopt = 0# Use nonlinear PB; 0/1solvopt = 1# PB solver; e.g. 1accept = 0.001# Convergence; e.g. 0.001linit = 1000# SCF iterations; e.g. 1000fillratio = 4.0# Grid fill ratio; e.g. 4scale = 2.0# Grid scale; e.g. 2nbuffer = 0.0# Grid buffer; e.g. 0nfocus = 2# Focus levels; e.g. 2fscale = 8# Focus scale; e.g. 8npbgrid = 1# Grid update freq.; e.g. 1bcopt = 5# Boundary condition; e.g. 5eneopt = 2# Energy option; e.g. 2frcopt = 0# Force output; e.g. 0scalec = 0# Reaction field option; e.g. 0cutfd = 5.0# FD cutoff (A); e.g. 5cutnb = 0.0# Nonbonded cutoff (A); e.g. 0nsnba = 1# Pairlist frequency; e.g. 1decompopt = 2# Decomp scheme; 1 or 2use_rmin = 1# Use Rmin radii; 0/1sprob = 1.4# SASA probe (A); e.g. 1.4vprob = 1.3# Volume probe (A); e.g. 1.3rhow_effect = 1.129# Water density; e.g. 1.129use_sav = 1# Use SAV cavity; 0/1cavity_surften = 0.005# Cavity surften; e.g. 0.005cavity_offset = 0.0# Cavity offset; e.g. 0.0maxsph = 400# Max surface dots; e.g. 400maxarcdot = 1500# Max arc dots; e.g. 1500npbverb = 0# PB verbosity; 0/1/
Keep in mind
This input provides a practical starting point and can serve as the basis for production calculations. Review the available input-file options, their accepted values, and adjust settings that depend on your system or protocol. Additional sample inputs are available here.
The single-trajectory approximation generates the receptor and ligand structures and trajectories from the complex. In this protein-protein system, the second protein is treated as the ligand. The command selects index groups 3 and 4 as the receptor and ligand, respectively.
The input processes ten frames using the linear PB solver (npbopt=0), an ionic strength of 0.15 M, and the topology radii selected by radiopt=0.