-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The schedule optimization in Chainsail works nicely only for systems for which a good estimate of the density of states (DOS) can be obtained during the first few optimization runs. Now in reality, a distribution can exhibit a "phase transition", meaning (very qualitatively) that certain characteristics of the probability distribution change very rapidly and almost discontinuously in a narrow range of inverse temperatures. Think, for example, about the phase transition of the Ising model: at a certain "critical" temperature, the behavior of the Ising model changes drastically; there is a transition from the ferromagnetic phase (magnetic spins are all aligned) to the paramagnetic phase (magnetic spins can point in various directions). In protein folding, when starting at a high temperature and then lowering the temperature, at one point, the protein will spontaneously fold into its native structure (if it has one).
If one samples a system that exhibits such a phase transition with Replica Exchange (RE), very little to no exchanges will be accepted between replicas at temperature
In practice, what I used to do when encountering such phase transitions in RE was to manually add a certain number, say, 20, replicas linearly spaced between
It should be able to automatize this process to some extent and include it in the schedule optimization algorithm. This would require
- detecting phase transitions (most likely from checking the final acceptance rates for acceptance rates below, say, 1%),
- implementing the linear interpolation between temperatures on the left and right side of the phase transition.
I started writing a script that automatizes the detection and refinement outside of the Chainsail schedule optimizer. It is available in this gist and might serve as an inspiration.