Several optimizers are not currently used in PMI and would be useful. For example, IMP.core.SteepestDescent should be usable in PMI, and both it and IMP.core.ConjugateGradients should be usable in IMP.pmi.dof.DegreesOfFreedom.optimize_flexible_beads.
IMP.core.MonteCarloWithLocalOptimization would be useful with IMP.pmi.macros.ReplicaExchange0, in particular if one wants to do a minimization after each Monte Carlo step. IMP.core.BrownianDynamics would also be useful when doing replica exchange.
This all seems like it could create a lot of redundant code. Perhaps it's worthwhile thinking of a general PMI wrapper for an optimizer, which could be called when doing replica exchange or minimization.
Several optimizers are not currently used in PMI and would be useful. For example,
IMP.core.SteepestDescent
should be usable in PMI, and both it andIMP.core.ConjugateGradients
should be usable inIMP.pmi.dof.DegreesOfFreedom.optimize_flexible_beads
.IMP.core.MonteCarloWithLocalOptimization
would be useful withIMP.pmi.macros.ReplicaExchange0
, in particular if one wants to do a minimization after each Monte Carlo step.IMP.core.BrownianDynamics
would also be useful when doing replica exchange.This all seems like it could create a lot of redundant code. Perhaps it's worthwhile thinking of a general PMI wrapper for an optimizer, which could be called when doing replica exchange or minimization.