On Wed, Sep 23, 2009 at 5:14 AM, Daniel Russel drussel@gmail.com 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 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= >>>>> >>>>> 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 >>>>> foerster@biochem.mpg.de >>>>> 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 >>>>> >>>>> foerster@biochem.mpg.de >>>>> >>>>> www.tomotronic.org >>>>> >>>>> _______________________________________________ >>>>> >>>>> IMP-dev mailing list >>>>> >>>>> IMP-dev@salilab.org >>>>> >>>>> https://salilab.org/mailman/listinfo/imp-dev >>>>> >>>>> _______________________________________________ >>>>> IMP-dev mailing list >>>>> IMP-dev@salilab.org >>>>> https://salilab.org/mailman/listinfo/imp-dev >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> IMP-dev mailing list >>>>> IMP-dev@salilab.org >>>>> 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 >>>> >>>> foerster@biochem.mpg.de >>>> >>>> www.tomotronic.org >>>> _______________________________________________ >>>> IMP-dev mailing list >>>> IMP-dev@salilab.org >>>> https://salilab.org/mailman/listinfo/imp-dev >>> >>> _______________________________________________ >>> IMP-dev mailing list >>> IMP-dev@salilab.org >>> https://salilab.org/mailman/listinfo/imp-dev >> >> _______________________________________________ >> IMP-dev mailing list >> IMP-dev@salilab.org >> https://salilab.org/mailman/listinfo/imp-dev > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev > >