1. does this solution means that f3-f5-f7 (and f0-f1-f2) are
simplified to a single sphere ?
For solution 2, the distance measure used in the distance between the
two single spheres. For solution 1 it is the distance between the two
closest sphere fragments.
2. if this is the case, I am not sure it answers Frido's request as
he would like to have ( i am guessing) a more accurate scoring term
It was not clear from his emails which distance metric he wanted.
3. and so - would not it be better to wrap the 3 fragments in a
hierarchy ( that will of course be a child of the protein) ?
Yes, solution 1. It does require manipulating a hierarchy a bit more
(and the create_fragment function is not well documented, I think it
does what is needed, but I have to check).
Keren.
On Sep 22, 2009, at 3:45 PM, Daniel Russel wrote:
In general you need to associate a particle which each feature you
want to restrain since restraints generally act on a single set of
equivalent particles. For the connectivity case you have a bunch of
options, all of which do slightly different things.
- create a fragment in the molecular hierarchy which includes the
other fragments (ie make this fragment the parent of the other
fragments, the create_fragment function should help, but needs to
be better documented) and then use a LowestRefinedPairScore
- create cover particles which cover the fragments in question and
do as you did before with the connectivity restraint. You can use
the helper::create_cover function to set this up and then pass the
created particle to the connectivity restraint. I think this is
closest to what you need. I think we should have a simpler helper
function which creates the particle for you and hides the internal
details. I'll add such over the next couple days. Then code will be
something like
c0= IMP.helper.create_cover(IMP.Particles([f3,f5,f7]))
c1= IMP.helper.create_cover(IMP.Particles([f0,f1,f2])
sd= IMP.core.SphereDistancePairScore(IMP.Harmonic(0,1))
cr= IMP.core.ConnectivityRestraint(sd)
cr.add_particle(c0)
cr.add_particle(c1)
On Sep 22, 2009, at 4:46 AM, Friedrich Foerster wrote:
thanks.
but the functionality is not sufficient for my needs as it is: i do
not see any way to specify parts of a protein involved in an
interaction.
e.g., my proteins a and b each consist of 10 fragments. i have an
interaction between A and B that involves the first 3 fragments of
protein A and fragments 3,5,7 of protein B. how can i specify that
restraint currently (it used to work previously ...). so i am not
convinced why the old syntax had to go ...
thanks
frido
On Mon, Sep 21, 2009 at 6:37 PM, Keren Lasker <kerenl@salilab.org>
wrote:
one correlation -
Frido - this is how it should look like:
#create the two proteins
prot_ps=IMP.Particles()
prot_ps.append(IMP.Particle(m))
prot_ps.append(IMP.Particle(m))
prot1=
#also make sure the part has radius
prot2.add_child(fh)
#create the restraint
ufu = IMP.core.TruncatedHarmonicUpperBound( span, k, stddev, 2.)
cps= IMP.core.ChildrenRefiner(IMP.atom.Hierarchy.get_traits())
lrps = IMP.misc.LowestRefinedPairScore(cps,ufu)
connrest = IMP.core.ConnectivityRestraint(lrps)
connrest.set_particles(prot_ps)
m.add_restraint(connrest)
On Sep 21, 2009, at 6:54 AM, Daniel Russel wrote:
I think the problem is that the list of particles the
connectivity restraint
ends up with is [p0,p1...p5]. You should just give it two
particles, one for
each protein (with radius and center computed from a sphere
cover, or with
the distance computed using a particle refiner). I doubt the code
below ever
really did what you wanted (although it might have happened to
agree:-)
I can explain better once I'm back in the US in two days.