Date: Wed, 12 Nov 2003 14:30:33 -0600
From: Chris Moth
Subject: Re: AMBER: GB/SA

At 02:02 PM 11/11/2003 -0500, Yichen Cao wrote:
>Hello everyone:
>
>I want to calculate the solvent accessible sureface area (SASA). But it
>seems the GB/SA can only give the energy correction of molecule surface to
>the overall solvation energy. If I want to know the value of SASA, can I
>calculate it in Amber?
>
>Thanks,
>Yichen

I'm also learning MM_GBSA. Apologies in advance if my answer here is not
helpful.

I've also included an earlier correspondence on this from the AMBER email
list, which is more direct.

In amber7/src/sander/egb.f, this is the code for the output of the ESURF
energy value when gbsa=1 (which is the case when sander is called by the
mm_pbsa.pl script acting on MS==0 in its input file)

esurf = surften*totsasa

This implies that totsasa=esruf/(surface tension)

I grepped for surften in the amber7/src/sander/*.f files, and found no
other use of the variable, so setting it to 1.0 should not harm any other
calculation.

Back to mm_pbsa, which I have been exploring recently:

In the sander .in file created by mm_pbsa.pl I have here:

File generated by mm_pbsa.pl. Using MM GB MS
&cntrl
ntf = 1, ntb = 0, dielc = 1,
idecomp= 0,
igb = 1, saltcon= 0.2,
offset = 0.09, extdiel= 78.5,
gbsa = 1, surften= 1.0,
<<< Above line Means "use LCPO" method (output ESURF) value with surface
tension=1.0 >>>
cut = 99999.0, nsnb = 99999,
scnb = 2.0, scee = 1.2,

imin = 1, maxcyc = 1, ncyc = 0,
&end

So, since surften=1.0, ESURF=surface area, and the "surface area" values in
mm_pbsa.pl's *.all.out files are simply created by substituting "surface
area" for sander's ESURF value:

$line =~ s/ ESURF +=/surface area =/; # Equal output as for MS

I hope this helps. The mm_pbsa.pl scripts are great work - but you do have
to hack through them a bit to sort through some details of the options.

In other words, The surften value that mm_pbsa.pl passes to sander is not
the same as the SURFTEN value you pass to mm_pbsa.pl. SURFTEN and SURFOFF
are apparently only used by the mm_pbsa_statistics.pm perl script only
after the sander calculations with surften=1.0

And, whether you use LCPO or molsurf, you should be able to take the
"surface area" values out of the *.all.out files quite literally, though of
course, approximations are involved.

Also, if you prefer to use the molsurf program instead of sander's LCPO
implementation, molsurf should work stand-alone, but you will have to sort
through the C code (in mm_pbsa directory) and build an input .pdb file for
each frame of interest. Typing molsurf gives:
Usage: molsurf pqrfile probe_rad

Finally, here is an earlier email on the AMBER list which addresses your
question more directly from the mm_pbsa author himself:


Jarrod Wesley Barnes wrote:
>
> I was curious to know if one could calculate the solvent
> acessible surface area for an atom or residue in a trajectory
> file over the course of a MD simulation in one of the programs
> associated with Amber. If not, is there a program that is
> capable of doing this calculation over the course of the
> trajectory ?

Within the mm_pbsa module, at least residue based (+
side-chain/backbone) decomposition is possible. For that, you need to
break down your trajectory into single snapshots, however.
Have a look at the @DECOMP section in the mm_pbsa.in file. You also need
to choose GBSA=2 in the @GB section and to set SURFTEN=1.0 . This will
give you the SAS in the results file (in the column where otherwise the
nonpolar contribution to solvation free energy is reported). Please
note, with GBSA=2, SAS is computed here as sum over (non-buried)
surfaces of (approximated) spheres.

Best regards

Holger