Re: [AMBER] ESURF in MMPBSA.py results

From: Jason Swails <jason.swails.gmail.com>
Date: Fri, 15 May 2015 05:15:40 -0400

On Fri, May 15, 2015 at 4:26 AM, Huang <huangloligo.gmail.com> wrote:

> I read the output files _MMPBSA_{complex,ligand,receptor}_gb.mdout.0
> after an MMPBSA.py run with Input file:
> |--------------------------------------------------------------
> |Poisson-Boltzmann and General Born
> |&general
> | debug_printlevel=1,
> | verbose=2,
> | startframe=10,
> | endframe=10,
> | use_sander=0,
> | strip_mask=":WAT,NA,CL",
> | entropy=0,
> | keep_files=1,
> |/
> |&gb
> | saltcon=0.100,
> |/
> |--------------------------------------------------------------
>
> There is a ESURF value in each of these file, but this value is
> different from the ESURF value in the finally output file (assigned by
> option -o of MMPBSA.py). I read the reference manual and the source
> code of MMPBSA.py and realize that MMPBSA.py calculates ESURF values
> by invoking cpptraj with command surf (LCPO method) or molsurf
> (Connolly's method).
>

​Correct. Unless you request molsurf, LCPO will be used.



>
> The questions :
> 1. Why does MMPBSA.py discard the values of ESURF in
> _MMPBSA_{complex,ligand,receptor}_gb.mdout?
>

​Because it uses cpptraj to compute the surface area. This allows me to
provide the option of using molsurf or LCPO (it's less convoluted code if
the molsurf/surf choice differs by as little as possible in the code -- and
offloading LCPO to one program and molsurf to another is more convoluted).



> ​​
> 2. Neither LCPO nor Connolly's method, within cpptraj, produces values
> ​​
> comparable to the values in
> ​​
> _MMPBSA_{complex,ligand,receptor}_gb.mdout, i.e. the difference is
> ​​
> larger than acceptable error. What is the exact method used in these
> ​​
> files? Is it really ESURF in the context of free energy calculation?
>

​I believe this is because the results from cpptraj are the raw surface
areas, while in _MMPBSA_{complex,receptor,ligand}_gb.mdout the ESURF values
are the surface areas multiplied by the surface tension. MMPBSA.py reads
the surface areas from cpptraj and multiplies by the surface tension (and
adds the offset). See line 680 of MMPBSA_mods/amber_outputs.py to see
where this is done.

When I added this option, I made sure that the two methods (using sander
and using cpptraj) gave identical results for LCPO, and they did.

HTH,
Jason

-- 
Jason M. Swails
BioMaPS,
Rutgers University
Postdoctoral Researcher
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Fri May 15 2015 - 02:30:17 PDT
Custom Search