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

Re: [IMP-dev] connectivity restraints



Daniel -
1. does this solution means that f3-f5-f7 (and f0-f1-f2) are simplified to a single sphere ? 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 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) ?
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 <> 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=
IMP .atom .Hierarchy.setup_particle(prot_ps[0],IMP.atom.Hierarchy.PROTEIN)

prot2=
IMP .atom .Hierarchy.setup_particle(prot_ps[1],IMP.atom.Hierarchy.PROTEIN)

#make the parts fragments and add to the molecules

for e in [part1,part2,part3]:

fh= IMP.atom.Hierarchy.setup_particle(e,IMP.atom.Hierarchy.FRAGMENT)

#also make sure the part has radius
prot1.add_child(fh)

for e in [part4,part5,part6]:

fh= IMP.atom.Hierarchy.setup_particle(e,IMP.atom.Hierarchy.FRAGMENT)

#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.


On Sep 21, 2009, at 2:30 PM, Friedrich Foerster < >
wrote:

hi all,

i noticed that the connectivity restraint must have changed at some point:

i want to impose a restraint on two proteins, each consisting of

several particles. thus, i am interested in restraining the closest

pair between the two proteins. whereas the following code did what i

need previously it now calculates all against all distances (including

intra-protein distances) - which is not what i want.

i'd be grateful if anyone could tell me how i need to change my pseudo code:


prot1 = [part1,part2,part3]

prot2 = [part4,part5,part6]

ufu = IMP.core.TruncatedHarmonicUpperBound( span, k, stddev, 2.)

pairsc = IMP.core.SphereDistancePairScore(ufu, IRAD_KEY)

connrest = IMP.core.ConnectivityRestraint(pairsc)

for pps in [prot1,prot2]:

         connrest.add_particles(pps)

to be explicit: the code now restrains distances in prot1 and prot2,

which is what i do not want. i only want the inter-protein distances

to be considered...

thanks

frido


--

Dr. Friedrich Foerster

Max-Planck Institut fuer Biochemie

Am Klopferspitz 18

D-82152 Martinsried

Tel: +49 89 8578 2651

Fax: +49 89 8578 2641



www.tomotronic.org

_______________________________________________

IMP-dev mailing list



https://salilab.org/mailman/listinfo/imp-dev

_______________________________________________
IMP-dev mailing list

https://salilab.org/mailman/listinfo/imp-dev



_______________________________________________
IMP-dev mailing list

https://salilab.org/mailman/listinfo/imp-dev





--
--

Dr. Friedrich Foerster
Max-Planck Institut fuer Biochemie
Am Klopferspitz 18
D-82152 Martinsried

Tel: +49 89 8578 2651
Fax: +49 89 8578 2641



www.tomotronic.org
_______________________________________________
IMP-dev mailing list

https://salilab.org/mailman/listinfo/imp-dev

_______________________________________________
IMP-dev mailing list

https://salilab.org/mailman/listinfo/imp-dev