Hi list,
I was wondering about the exact meaning of the ExcludedVolumeRestraint score, and how this score was computed. So I took my virtual shovel and had a few hours digging in IMP code, but I still have questions.
For what I understood, the score is computed as the sum of harmonic functions over a set of pairs of intersecting spheres (this score being 0.0 for non interacting spheres), but the way these pairs are built is still a little fuzzy for me.
Here is the sample python code I wrote using that restraint :
rigidChains = {}
for chain in IMP.atom.Chains(IMP.atom.get_by_type(mh, IMP.atom.CHAIN_TYPE)) :
rigidChains[chain.get_id()] = IMP.atom.setup_as_rigid_body(chain)
...
lsc = IMP.container.ListSingletonContainer()
for rb in rigidChains.values() :
lsc.add_particle(rb.get_particle())
m.add_restraint(
IMP.core.ExcludedVolumeRestraint(
lsc,
IMP.core.LeavesRefiner(refChains.values()[0].get_traits())
)
)
I intuitively expected IMP to consider all pairs of intersecting atom-spheres between any two different chains, but reading the code I could not convince me this is actually what is computed.
I could not decide for instance if pairs of atoms in a same chain were considered or not, and in fact I could not even see where exactly atoms were extracted out of my rigid body hierarchies…
Could you explain me in a few words if my sample code does what I expect from it, and if not, how to change it to obtain the desired behavior.
Thanks a lot
Dr. Benjamin SCHWARZ
Biocomputing group
Voice : +33 (0)3 68 85 47 30
FAX : +33 (0)3 68 85 47 18
<logo-uds-signature.gif>
Structural Biology & Genomics Dept. - IGBMC
1 rue Laurent Fries
BP 10142
F - 67404 Illkirch CEDEX
_______________________________________________