Skip to content

Improve schedule optimization to support systems with "phase transitions" #425

@simeoncarstens

Description

@simeoncarstens

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 $\beta_<$ on the "left" side of the phase transition and $\beta_>$ on the "right" side of the phase transition. No exchanges means that the replicas separate into two sets of replicas that do not communicate with each other, defeating the purpose of RE. And the energies accessible in the temperature region between $\beta_<$ and $\beta_>$ will have no DOS estimate available and this optimized schedules cannot be reliable calculated.

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 $\beta_<$ and $\beta_>$ and sample again. This would yield a narrower interval $[\beta_<^`, \beta_>^`]$, which I would then refine again using linearly spaces replicas, until I find a temperature covering that allows for nonzero exchanges.

It should be able to automatize this process to some extent and include it in the schedule optimization algorithm. This would require

  1. detecting phase transitions (most likely from checking the final acceptance rates for acceptance rates below, say, 1%),
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    schedule optimizationRelates to automatic temperature schedule optimization

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions