Frido: I am not sure I entirely understand you message. Would you consider it an improvement to be able to do the following:
# a,b,c are Particles which are MolecularHierarchyDecorator roots for the proteins # they can have arbitrary levels
# the identifier for the equivalence class hierarchy traits= HiearchyDecoratorTraits("equivlanence_class")
abp= Particle() m.add_particle(abp) cp= Particle() m.add_particle(cp) # create a new hierarchy to define which proteins can be equivalently connected abh= HierarchyDecorator.create(abp, traits) abh.add_child(HierarchyDecorator.create(a, traits)) abh.add_child(HierarchyDecorator.create(b, traits))
# nothing else has the same type as c ch= HierarchyDecorator.create(cp, traits) ch.add_child(HierarchyDecorator.create(c, traits))
# create a refiner to get all residues irrespective of how far down they are in the hierarchy refres= DescendentsOfTypeParticleRefiner (MolecularHierarchyDecorator.get_type_key(),
MolecularHierarchyDecorator.RESIDUE) rtres = RefineOncePairScore(SphereDistancePairScore(), refres)
# a refiner to produce the proteins in each equivalence class cpr= ChildrenParticleRefiner(traits) erops= RefineOncePairScore(rtres, cpr)
# make a list of the particles defining the equivalence classes classes= IMP.Particles() classes.append(abp) classes.append(cp) r= ConnectivtyRestraint(erops, classes)
The changes necessary to do the above are quite easy.
On Dec 19, 2008, at 6:36 AM, Friedrich Foerster wrote:
> hi daniel, > > the Model hierarchy is not particularly awkward by itself. for me > the problem is more that dealing with a single hierarchy on the > representation level is hard. > i just constantly run into the problem that i want to press all my > restraints and representation into a single hierarchy - and i always > need to change it. so my hierarchy is basically just protein -> > fragment. whether a fragment is an atom, few residues, a domain, or > an entire protein varies from case to case. of course, i could add > another layer - but it'd be quite a bit of work to change it > everywhere and probably i'd need to change it again very soon. > for me a convenient framework for restraints would probably look > like that: > rest1 = upper_distance(particles_from_protein_A, > articles_from_protein_B) > rest2 = upper_distance(particles_from_protein_A, > articles_from_protein_C) > final_restraint = lower_scoring_one_of(rest1, rest2) > model.add_restraint(final_restraint) > > (protein_B and protein_C are both of the same protein type, e.g., > lysozyme ). for tricky cases one could use several instances of > lower_scoring_one_of. > just a proposal.... > > cheers > > frido > > On Dec 19, 2008, at 2:02 PM, Daniel Russel wrote: > >> By the way, what exactly do you five cumbersome with the hierarchy >> as it stands? Why do you find you are changing it a lot? Just >> looking for ways to make things simpler. > > -- > > 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