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

Re: [IMP-dev] connectivity restraints



On Wed, Sep 23, 2009 at 5:14 AM, Daniel Russel <> wrote:
>
> On Sep 22, 2009, at 6:55 PM, Keren Lasker wrote:
>
>> Daniel -
>> 1. does this solution means that f3-f5-f7 (and f0-f1-f2) are simplified to
>> a single sphere ?

so i implemented option 1, which seems to do what i want (the
restraint acting closest two spheres).
to check that the code actually does the right thing (score the single
shortest distance between (f3,f5,f7) and (f0,f1,f2)) i tried to return
the connected pairs (=ONE pair for my desired restraint, not FIVE
restraints for the undesired behavior). sadly,
connrest.get_connected_pairs() returns my newly generated particles,
which specify the interacting fragments. is there any way to return
the actually interacting LowestRefined particles? otherwise, i cannot
check that the code does the right thing (and the information is
useful for me)...

thanks

frido


>
> 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 <>
>>>> 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
>>
>> _______________________________________________
>> 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