AMBER Archive (2009)

Subject: RE: [AMBER] QM/MM charges

From: Ross Walker (
Date: Fri Mar 20 2009 - 10:37:34 CDT

Hi Jacopo,

> i would like to use QM/MM esp (or resp) derived charge on same residues of
> a protein, but it seems very hard to do with amber (or also with other MD
> software).

I'm not entirely sure I follow what you want to do here, or perhaps why you
want to do it. Are you saying, for example you would like to recalculate the
point charges for alanine for example using a QM/MM approach? Then you just
want to keep these charges fixed during the simulation? Or do you want them
to be recalculated on the fly and vary in some way?

In the fixed case this is easy to do. If you only want to change a few ALA's
for example you would start by editing your pdb and changing them to a new
residue name, for example ALB. Then in leap you would take ALA from the
leaprc.ff99SB template you source and copy it to ALB. Then you can issue
'edit ALB'. In the edit window highlight all the atoms and choose edit
selected atoms. Here you can enter new charges for whatever you want. Then
close the table (saving it). Then save the ALB residue as a mol2 file.
Repeat this for any other residues you'd want to change.

Then when you come to load your pdb and build the prmtop. You source the
leaprc.ff99SB file, then ALB=loadmol ALB.mol2 etc for each of the mol2 files
you created. Then when you load you modified pdb the modified residues will
pick up the charges from your modified templates.

If you want the charges to vary as a function of the coordinates then things
get a LOT more tricky.
> I tought about the use of a semiempirical potential, but i'm not sure
> about which charges are used for the QM part in the amber implementation.
> Maybe mulliken's charges?

The QM region does not use any charges per se. The interactions are all
directly with the density matrix. So the MM atoms resp charge interacts with
the density matrix of the QM region. Mulliken charges are only for periodic
boundary calculations. This is described in:

Walker, R.C., Crowley, M.F., Case, D.A., "The Implementation of a Fast and
Accurate QM/MM Potential Method in AMBER." J. Comp. Chem. 2008, 29,

> Can anybody suggests me some ideas to do it. I thougt also about a manual
> replacement of the charges, but in this case it is impratical because i
> have to treat several protein/ligand complexes.

You are going to have to calculate the charges in some way. Tleap and Xleap
are completely scriptable so the procedure above you should be able to
implement with a tleap script. That reads charges from your generation
calculations and then copies them to the relevant atoms in the templates.
Alternatively you could script something to modify the underlying lib files
that leap reads if you globally want to change the charges of certain

Failing that you can just add some code that modifies the charge array in
sander directly. This is a linear array of charges multiplied by
AMBER_ELECTROSTATIC and is in the same atom order as the prmtop and
coordinate files. This you could do inside runmd or force so you can change
it on the fly. If you just want to do it the once you might also want to
just consider modifying the array or charges directly in the prmtop file.

Good luck,

|\oss Walker

| Assistant Research Professor |
| San Diego Supercomputer Center |
| Tel: +1 858 822 0854 | EMail:- |
| | PGP Key available on request |

Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues.

AMBER mailing list