To build topology for the new molecule partial charges for atoms should be determined. Working in OPLS force field big amount of atom types with predefined partial charges allows you to chose atom type for almost every atom of your «new» compound. But In rest force fields you have no choice except use quantum chemistry to determine partial charges. Restrained ElectroStatic Potential method approximates electrostatic potential found ab initio with atom-centered point-charge model [1]. Here the guide to use RESP technique based on calculations from Firefly or GAMESS-US is presented.

(i) Firefly/GAMESS run

First of all one should prepare correct GAMESS input file, some extra parameters should be defined: firstly, MOLPLT flag should be defined for appropriate coordinates transfer to RESP program:


Secondly, dumping electrostatic potential to PUNCH-file should be turned on:


Note, that RESP algorythm will fit potential in the set of points which are selected according to $PDC group in the input-file. CONNOLY method of point selection poses points on the surface constructed of fused VdW-spheres around every atom. Each sphere has a standart VdW atom radius multipled on VDWSCL (default value is 1.4). For some molecules VDWSCL should be chosen more than standrad 1.4 value: 1.5 or 2.0.

Then run Firefly and save PUNCH-file for further work.

(ii) Convert Firefly PUNCH-file into RESP format

There is punch2resp.csh script written by Hans de Winter (Rega Institute for Medical Research, Belgium) in attach archive. Run:

./punch2resp.csh myPunchFile +1

where «+1» should be substituted with the value of total molecule charge. 2 files will be generated: (file with electrostatic potential in format appropriate for RESP) and — file with parameters of RESP-algorythm.

(iii) Edit RESP parameters and run RESP

It’s strongly recommended to point intermolecular restrains. For instance, 3 hydrogen atoms of CH3-group in acetic acid are equal, 2 oxygens are equals too. It is represented in file given by example:

Acetic acid
 &cntrl nmol=1, ihfree=1
Acetic acid
   -1    7    #unused col.
    6    0     #1
    8    0     #2
    8    2     # means that this atom will be equal to atom №2
    6    0     #4
    1    0     #5
    1    5     # means that this atom will be equal to atom №5
    1    5     # means that this atom will be equal to atom №5

punch2resp.csh script will generate with all zeroes in second column. Intermolecular restrains you should add manually.

If you have no RESP on your computer take it from attached archive, edit Makefile (if need) and make with make command. Finally run RESP:

/usr/local/bin/resp -O -i  -o resp.out   -e

Generated resp.out file will contain charges you need:

Point Charges Before & After Optimization

 no.    q(init)       q(opt)     ivary    d(rstr)/dq
 1   6       0.000000       1.100289      0       0.000453
 2   8       0.000000      -0.907461      0       0.000548
 3   8       0.000000      -0.907461      2       0.000548
 4   6       0.000000      -0.425098      0       0.001145
 5   1       0.000000       0.046578      0       0.000000
 6   1       0.000000       0.046578      5       0.000000
 7   1       0.000000       0.046578      5       0.000000

Attached archive

Standalone RESP 2.1 with punch2resp.csh script and some examples.


  1. C.I. Bayly, P. Cieplak, W.D. Cornell & P.A. Kollman. A Well-Behaved Electrostatic Potential Based Method Using Charge Restraints For Determining Atom-Centered Charges: The RESP Model. J. Phys. Chem. 1993, 97, 10269-10280. doi:10.1021/j100142a004