Bug fixes in Monte Carlo functionality 27/4327/4
authorradakb <brian.radak@gmail.com>
Thu, 5 Jul 2018 13:37:21 +0000 (09:37 -0400)
committerDavid Hardy <dhardy@ks.uiuc.edu>
Mon, 9 Jul 2018 21:25:42 +0000 (16:25 -0500)
commitda68ba8d65f7ca20c2994a4c4708d47e91035c21
treee5353eab5667cf366fb0be29cafef10e2aa29e3d
parent646de957040200d87d3af891a0204997fa5c7cdf
Bug fixes in Monte Carlo functionality

This update is an unfortunate hodge-podge of changes. A significant
error in the algorithm was discovered while introducing new features and
reorganizing the output code.

MAJOR BUG FIXES
---------------
1) cphMaxProposalAttempts is an extremely problematic parameter for
  small systems. This keyword is now deprecated and internally assigned
  to be one. Simulations of small systems with non-unit values almost
  certainly yielded incorrect statistics, but the effect is much smaller
  for large systems with uniform weights (the default).

2) Equivalent states were incorrectly accounted for during the inherent
  pKa proposal step (a mistake from the original paper). The pKas are
  now correctly shifted by the log multiplicity to obtain the
  _microscopic_ pKa when moving in the direction of a multiplicity.

  An unrelated error in the code seems to have bizarrely compensated for
  this problem. Namely, the unnormed pairwise weights were taken with
  respect to the current state such that the unnormed weight of the
  current state is exactly one. However, these weights were computed in
  log-space such that the assignment of one was incorrect (it should be
  zero). This meant that all other weights were reduced by a factor of
  1/e in a manner that did not maintain detailed balance in certain
  instances. Since 1/e ~= 1/2 and 1/3, this seems to have semi-corrected
  residues with those multiplicities.

As severe as the second error sounds, tests indicate that the most
significant problems were actually from the first error. Systematic
errors from the latter are actually probably at or below statistical
precision (+/- 1.0 pKa units).

All of these errors were unhelpfully masked by the published WHAM
procedure.

MAJOR CHANGES
-------------
1) The inherent pKa MC step now precludes transitions between equivalent
  states. This should be more efficient in nearly all instances and was
  a fairly heavily requested feature. The original aim was to be able to
  toggle this behavior on a per residue basis, but this was put on hold
  when bugs starting cropping up.

MINOR CHANGES
-------------
1) Re-organized archiving the titrator to cphrst so that this is more
  flexible.

2) Added preliminary support for proton transfer and co-titration moves,
  including separate enumeration in the move summary and persistence in
  the restart file. However, in light of the MC errors this
  functionality is now suspect and thus deactivated until it can be
  retested.

3) Various bug-fixes in the initialization procedure. These were
  probably not encountered by most users and would have lead to crashes.

4) Disable obsolete building of hydrogen coordinates when not restarting
  from a known state. This was introduced for older versions of the
  build procedure and is catastrophic for certain instances such as
  certain primary amines, since "chirality" was occasionally built
  incorrectly.

Change-Id: If2692eef0110d3ad835090481371a65798fecdf6
lib/namdcph/namdcph.tcl
lib/namdcph/namdcph/cphtitrator.tcl
lib/namdcph/namdcph/cphtoppar.tcl
lib/namdcph/namdcph/namdcph.core.tcl