The ExcludedVolume scoring function is a sum over all pairs of refined particles. Pairs where both members are in the same rigid body are dropped as they can never change during optimization. The rigidbodyclosepairsfinder is responsible for enumerating all such pairs which are then put in a ClosePairContainer, which is in turn fed to a PairsRestraint. See the constructor implementation in svn (I think I simplified the implementation since 1.0, but maybe the simplification preceded 1.0). The reason it is not documented in detail is that the plan has been to replace it with an alternate mechanism which better handles high resolution rigid bodies. But the improved implementation is not finished and tested yet. Your sample code below won't do much of interest since there are only internal pairs. Add all the rigid bodies to one container and set up a ExcludedVolumeRestraint on that will do better. lsc=IMP.container.ListSingetonContainer(rigidChains.values) m.add_restraint(IMP.core.ExcludedVolumeRestraint(lsc, IMP.core.LeavesRefiner(...)) I'll add a warning if only one particle is passed and a reminder to get better rigid body handling. On Aug 2, 2010, at 2:33 AM, Benjamin SCHWARZ wrote:
|