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

Re: [IMP-dev] ambiguous restraints



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



www.tomotronic.org






_______________________________________________
IMP-dev mailing list

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