Questions on creating constraints in NAMD

From: Randy J. Zauhar (
Date: Tue Feb 21 2017 - 09:03:21 CST

Hi Giacomo and fellow experts,

I am running a thermodynamic cycle to evaluate a free energy of binding of a peptide to a target protein.

One of the simulations is to release colvar constraints, and I found free energy change by integrating dA/dLambda values from the log file. The simulation ran without a hitch and the energy change was ‘reasonable’.

Now two separate questions:

1) Next I want to convince myself of reversibility and run the the lambda schedule backwards to create the restraints. I use the endpoint of constraint annihilation as starting point. The simulation seems to run fine for a while, but died relatively early on with no error message. Assuming this was a fluke, I just ran it again - same issue. This time I restarted (it died at lambda = 0.098), and it got all the way to lambda = 0.77, but then the restart died with this message:

ERROR: Constraint failure; simulation has become unstable.
ERROR: Exiting prematurely; see error messages above.

But I swear there IS NO error message that I can find ‘above', and nothing looks amiss in the colvars output.

I am using NAMD 2.12b1 for Linux multicore, and have been running with 48 threads like this:

nohup namd +p 48 +isomalloc_sync complexPhosphoSTAT5RestrainCreateRestraint.RESTART.namd >& complexPhosphoSTAT5RestrainCreateRestraint.RESTART.log &

2) I have assumed that the dA/dLambda entries in the log file follow the same order as I specified in the colvars input file - but If I look more carefully in the log file, I see this sort of report:

colvars: Lambda= 0.1 dA/dLambda= 0.0850971
colvars: Lambda= 0.1 dA/dLambda= 10.3175
colvars: Lambda= 0.1 dA/dLambda= 0.0294449
colvars: Lambda= 0.1 dA/dLambda= 0.194364
colvars: Lambda= 0.1 dA/dLambda= 39.9485
colvars: Lambda= 0.1 dA/dLambda= 2.64137
colvars: Restraint harmonic3, stage 2 : lambda = 0.11
colvars: Lambda= 0.1 dA/dLambda= 0.494314
colvars: Lambda= 0.1 dA/dLambda= 2.34284
colvars: Lambda= 0.1 dA/dLambda= 3.04824
colvars: Lambda= 0.1 dA/dLambda= 0.22976
colvars: Restraint harmonic18, stage 2 : lambda = 0.11
colvars: Restraint harmonic4, stage 2 : lambda = 0.11
colvars: Setting force constant to 0.55
colvars: Lambda= 0.1 dA/dLambda= 9.93387
colvars: Lambda= 0.1 dA/dLambda= 3.78617
colvars: Setting force constant to 0.55
colvars: Restraint harmonic6, stage 2 : lambda = 0.11
colvars: Setting force constant to 0.55
colvars: Lambda= 0.1 dA/dLambda= 0.110793
colvars: Lambda= 0.1 dA/dLambda= 0.0482745
(snip) -------------------

The reports for updating lambda seem to appear in random order - there is the sense that more than one thread is writing at the same time. Am I guaranteed that the derivatives are reported in a consistent order? Or, is there a better way to collect this information?

THANKS in advance.


Randy J. Zauhar, PhD

Prof. of Biochemistry

Dept. of Chemistry & Biochemistry
University of the Sciences in Philadelphia
600 S. 43rd Street
Philadelphia, PA 19104

Phone: (215)596-8691
FAX: (215)596-8543

"The economy is still largely in ruins, thanks to the people who “drive the economy” by doing imaginary things on Wall Street, and there just isn’t much money left to spare for people who do actual things anymore."

  -- Tim Kreider, writing in the NY Times

This archive was generated by hypermail 2.1.6 : Sun Dec 31 2017 - 23:21:05 CST