Re: [AMBER] Alanine Scanning MMPBSA

From: Jason Swails <jason.swails.gmail.com>
Date: Fri, 30 May 2014 11:11:17 -0400

On Tue, 2014-05-20 at 09:33 -0400, Jason Swails wrote:
> On Tue, 2014-05-20 at 13:21 +0000, Aronica, Pietro wrote:
> > I have run the same calculation with a different but similar system (it has a staple between two residues) and I see the same error as before: when it generates the trajectory for the mutated complex, the newly created alanine has unrealistic dynamics. Furthermore, this happens in the same residue (146) while not happening in the ones that didn't have an error even in systems without the staple (143-145 and 147). I have not checked the other residues that give this error, but I expect them to show the same behaviour.
> > I have then run the same calculation on an older version of AmberTools. I'm not sure which one it is, but the command
> > MMPBSA --version
> > returns 2.7. This calculation runs fine, generating a completely reasonable trajectory for the mutated complex and giving no error whatsoever.
> > Clearly, the error is within the new version of the protocol, which, in some consistent cases, fails to give proper results.
> > I hope this can be fixed somehow.

It took awhile to track this down, but the fix is remarkably simple. I
will release an update for AmberTools 14 hopefully soon, but for the
time being you can apply this update by hand to any version of MMPBSA.py
you decide to use (you have to get rid of a single character in a single
file).

The patch is shown below (hopefully it is self-explanatory -- any line
beginning with "-" is deleted, any line beginning with "+" is added;
this is in the alamdcrd.py file around line 258).

--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
.. -258,7 +258,7 .. class MutantMdcrd(object):
             continue
 
          if location == 0 and coords_done <= max(resstart * 3 - 4, 0) and \
- coords_done + coordsperline >= max(resstart * 3 - 4, 0):
+ coords_done + coordsperline > max(resstart * 3 - 4, 0):
             location = 1
             words = _getCoords(line, coordsperline, coordsize)
             for i in range(coordsperline):

Basically, change >= to > on that one line. Apologies it took so long
to fix. This is some of the first code I've ever written, so I didn't
remember the details well (and I daresay it's a bit embarrassing to
admit to having written it in the first place...).

Thanks for the report!
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 30 2014 - 08:30:02 PDT
Custom Search