[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-dev] Proposal: GravityCenterScoreState



Daniel Russel wrote:
If the derived positions are not optimizable then some current restraints won't modify their derivatives. For example, the non-bonded list is using non-optimizable x,y,z to mean fixed particles, which get treated separately (since they don't need to move in the grid and collisions between them are not meaningful). I think some of the others may skip non-optimized particles too.

Simply letting the optimizers optimize them and then ignoring the result works, but is kind of inelegant (and inefficient if the branching factor is small). The fixed particle case may be enough of a special case anyway that we can just get rid of it. I can replicate the current behavior in my code by having several nonbonded lists and corresponding restraints-- the main change will be that it checks that the particles indeed didn't move.

So I think removing the checks from the other restraints and states looks like the right way to go.

Sounds reasonable to me. Your patch to fix this is in r496.

This ScoreState would require a change to the API. ScoreState::update
(called before the score is evaluated) would be renamed
ScoreState::pre_update and a new ScoreState::post_update method would be added
Perhaps we should call the methods before_evaluate and after_evaluate as they are called before and after the Model::evaluate work is done. pre_update is a bit strange as the states are the things doing the updating.

Agreed. I'll put this in later today.

	Ben
--
                      http://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
	- Sir Arthur Conan Doyle