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

Re: [IMP-users] problems with a sample script (basic IMP optimization)



> It perfectly makes sense… 
> So, I understand that diverse restraints may have diverse scoring schemes and images ( e.g. [0,1] for FittingRestraint and [0,+M] for ExcludedVolumeRestraint, with M potentially very high)… And now, what to do with it ? :)
> There seem to be no "pythonic" way to modify constants in front of the diverse restraints, or to compose a restraint with a function to modulate its score. My lucky guess is : go for C++ to create a new restraint by composing existing restraints… Am I correct ?

As Ben pointed out, you can use RestraintSets to weight things. This does get to a more fundamental problem that weighting inhomogeneous restraints relative to one another is fundamentally broken and should be avoided. We are working on solutions to that (using an inference based optimizer Keren developed), but for now you have to fool around with weights.

> 
>> In addition, if you use Conjugate Gradients, the derivatives of the excluded volume score on atoms are pretty useless since they are computed using each atom ball (explanation of the problem would probably benefit from a picture, I'll work on that  :-).
> 
> I am afraid I need a picture... and a lot more explanation on IMP internal computations ;)
> So don't spend too much time on this unless you think it can benefit to others.
I tried with a picture, but couldn't make anything that wasn't confusingly cluttered.

To try to explain better, for a pair of intersecting rigid bodies, the derivatives of the excluded volume restraint are computed by adding up the derivatives for each of the balls which constitute the rigid body. The sum of these individual derivatives does not necessarily point in a direction which separates the two rigid bodies unless the inter-penetration of  bodies is small compared to the size of the balls. As a result CG would get stuck in local minima. We are working on a simple alternatively, but I don't think it is there yet. Keren?

           --Daniel