I’m looking for a mover or class that holds the lowest energy pose found, and returns it at the end. I know I could use MonteCarlo and set kT extremely high, but it seems a bit hacky. Is there anything like this besides MC?
If you have a protocols.moves.MonteCarlo object, you should be able to use the lowest_score_pose() and recover_low(pose) methods to recover the lowest energy structure ever encountered, regardless of the temperature of the MonteCarlo object.
Looking at the code, it looks like the evaluation for the lowest score pose only happens during the boltzmann method; line 416 or 477:
if ( score < lowest_score() ) {
*lowest_score_pose_ = pose;
lowest_score_ = score;
I guess you could have this in your code to accomplish it without boltzmann…
if (score < mc.lowest_score()){
set_lowest_score_pose(pose)
}