Frido - this is how it should look like:
#create the two proteins ps=IMP.Particles() ps.append(IMP.Particle(m)) ps.append(IMP.Particle(m)) prot1= IMP.atom.Hierarchy.setup_particle(ps[0],IMP.atom.Hierarchy.PROTEIN) prot2= IMP.atom.Hierarchy.setup_particle(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) cr.set_particles(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