And I'm not sure where you'd store the weight,
if not in the restraint. Why not just in the Restraint base class?
The Restraint never actually uses its weight. It is a property of how
the thing calling the restraint combines the weights, not of the
restraint itself. And so should go with the thing calling the restraint.
But "the thing calling the restraint" is the model, which doesn't know
what the weights are. So here's an example: Frido's system contains 1000
restraints, 999 of which are MM forcefield terms (bonds, angles,
exclusion volumes, etc.) and the last one of which is an EM restraint.
He wants to scale down just the EM restraint to 0.1, so he does (Python
syntax):
myemrestraint.set_scale(0.1)
model.evaluate()
Are you suggesting that instead he should do:
model.evaluate(scale_factors=[1.0] * 999 + [0.1])
? Or am I misunderstanding what you're saying?
Another analogy: suppose instead he wanted to tweak the standard
deviation of the restraint. Surely he would say: