Re: [AMBER] SPAM: A Simple Approach for Profiling Bound Water Molecules

From: Jason Swails <>
Date: Thu, 23 Jan 2014 13:04:34 -0500


GSK has graciously agreed to release the SPAM code under the same
license as cpptraj from AmberTools.

The SPAM code comes in 2 parts currently -- the Python driver and the
cpptraj modifications as a patch file. It was originally written for
AmberTools 12, and since cpptraj is a new and rapidly changing/improving
code the patch will not apply to any later (or earlier) version of
cpptraj, so you are currently locked into using AmberTools 12.

The necessary energy evaluations to compute the SPAM energies are
actually done with NAMD, since it contains functionality not yet easily
available in Amber, although this is on the to-do list to change. So
prerequisites to running SPAM is to have AmberTools12 and NAMD2
installed on your system (also, only the SPCE water model has been
parametrized in this current release).

I've attached a copy of the SPAM source code to this email. To use it,
make sure that you have a completely up-to-date AmberTools 12 (do not
upgrade to AmberTools 13) and unpack spam.tgz into
$AMBERHOME/AmberTools/src. This should create a
$AMBERHOME/AmberTools/src/spamscript directory that contains a Makefile,
spamtraj.patch,,, and spam directory. To install it,
use update_amber to apply the spamtraj.patch file and recompile

./update_amber --apply AmberTools/src/spamscript/spamtraj.patch
./configure [options] gnu
make install

Then 'compile' the SPAM script:

make -C AmberTools/src/spamscript install

This will put the file in $AMBERHOME/bin. You can run the GUI
front-end of SPAM by running with no arguments. Alternatively, can take command-line arguments (the "--help" or "-h" arguments
will provide a full descriptive list of all recognized arguments).
Hopefully this provides enough information for you to get it running. depends on Tkinter for the GUI, and scipy/numpy for the
numerical analysis of the SPAM free energies.

There is ongoing work aimed at incorporating SPAM entirely within Amber
(and more than that, implementing it entirely within cpptraj). In fact,
the cpptraj released with AmberTools 13 actually has an (undocumented)
spam action that will compute SPAM energies for you (eliminating the
need for NAMD). The key difference here is that NAMD uses PME to
compute electrostatic interaction energies (by actually computing PME
energies and taking their difference), whereas cpptraj simply computes
the interaction energy of the selected SPAM water with its surroundings
using a force- and energy-shifted electrostatic term with a hard cutoff.
The solvent SPAM energies would need to be recomputed with this new
electrostatic model, but the SPAM action in cpptraj13 will compute this
for you if you provide a trajectory of pure water (using your desired
water model). If you type "help spam" in cpptraj13, it will provide
some documentation that will hopefully help you get started. The spam
command needs to be used after the "volmap" command in cpptraj, which
you can use to locate peaks in water density (based on the VMD volmap
routine). The peak file output from volmap is needed by spam. The
energies printed by cpptraj can then be post-processed into the SPAM
free energies using the formulas presented in the paper (and the code
inside spamscript/spam/ provides an example of how this is done using a
kernel density estimate in scipy).

The results published in the paper you cited used NAMD to compute
interaction energies, although my preliminary tests indicate that the
electrostatic model used by cpptraj gives very similar results
quantitatively (and the same qualitative results). Furthermore, because
cpptraj only computes the interaction energy between one water molecule
with every other atom instead of running 3 separate PME reciprocal space
calculations like NAMD does, cpptraj is considerably faster than
using NAMD.

I inundated you with a lot of information, but hopefully you have luck
in getting this method up and running. I hope to have SPAM packaged in
an easy-to-use script with numerous water models parametrized soon (but
I've had that hope for some time now). If you have any more questions,
comments, or bug reports please feel free to reply here.


On Thu, 2014-01-23 at 14:57 +0100, Sergey Samsonov wrote:
> Dear AMBERs,
> in the paper "SPAM: A Simple Approach for Profiling Bound Water
> Molecules" by Guanglei Cui, Jason Swails and Eric Manas (JCTC, 2013), it
> is stated that ''To facilitate the application of SPAM analysis, all the
> steps prior to the water interaction energy calculation were implemented
> in the /cpptraj/ module of the freely available AmberTools 12 suite. A
> Python frontend driver,, was also written and can be used to
> automate the entire SPAM analysis with minimal user intervention."
> Is it indeed possible to use SPAM with AmberTools 12 at the moment, and,
> if so, where one can get it and the corresponding documentation?
> Thanks and cheers,
> Sergey

Jason M. Swails
Rutgers University
Postdoctoral Researcher

AMBER mailing list

Received on Thu Jan 23 2014 - 10:30:03 PST
Custom Search