To get the particles within a rigid body, it is better using IMP::core::get_leaves or get_members, i.e.: does get_members return the leaves or the children of the RigidBody ?
On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote:
> To get the particles within a rigid body, it is better using IMP::core::get_leaves or get_members, Maybe :-) They do different things (that might happen to have the same result sometimes).
> i.e.: does get_members return the leaves or the children of the RigidBody ? neither, it returns all particles which move rigidly with the rigid body.
Basically, when you have a shape that happens to be rigid, there are many sets of particles associated with it - all particles which movie rigidly with the shape (the rigid members) - the set of particles which defines the highest resolution description of the shape (which, if the rigid body is created from a molecular hierarchy, would be the leaves) - the set of particles which defines the coarsest description of the shape. Typically this is just the rigid body particle itself with a radius - the set of particles defining the residues in the rigid body - the particles defining the sphere hierarchy used for collision detection between that rigid hierarchy and another rigid hierarchy (which would be members, if they existed) etc.
Depending on what you want to do, you will need different ones of these sets.
thanks Daniel. Is there a function for each of those ? if so it would be useful to explicitly have it in the documentation. and specifically for my current requirement - what is the function for getting the set of particles which defines the highest resolution description of the shape, if the rigid body is not defined by atom::Hierarchy. ? On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote:
> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: > >> To get the particles within a rigid body, it is better using >> IMP::core::get_leaves or get_members, > Maybe :-) They do different things (that might happen to have the > same result sometimes). > > >> i.e.: does get_members return the leaves or the children of the >> RigidBody ? > neither, it returns all particles which move rigidly with the rigid > body. > > Basically, when you have a shape that happens to be rigid, there are > many sets of particles associated with it > - all particles which movie rigidly with the shape (the rigid members) > - the set of particles which defines the highest resolution > description of the shape (which, if the rigid body is created from a > molecular hierarchy, would be the leaves) > - the set of particles which defines the coarsest description of the > shape. Typically this is just the rigid body particle itself with a > radius > - the set of particles defining the residues in the rigid body > - the particles defining the sphere hierarchy used for collision > detection between that rigid hierarchy and another rigid hierarchy > (which would be members, if they existed) > etc. > > Depending on what you want to do, you will need different ones of > these sets. > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev
On Jan 25, 2010, at 3:33 PM, Keren Lasker wrote:
> thanks Daniel. > Is there a function for each of those ? Of course :-) And many more. And refiners for most of them (which is more useful, since that is what rigid body taking methods use to do the mapping).
> if so it would be useful to explicitly have it in the documentation. Most of the methods have to do with atom::Hierarchies and are documented there, since the same considerations hold whether or not the particle happens to be a rigid body (eg, any time you are doing collision detection with a hierarchy, you have to decide what sort of representation to use, all atoms, coarse grained, residues etc). It would be good to have a more thorough introduction to molecular hierarchies, but my thought has been to rip that out of the paper. I could use the current text top start producing something.
The rigid body docs says very general things about members vs other sets you might be interested in. I'll improve the text there, but it can't really be too specific to molecular hierarchies.
> and specifically for my current requirement - what is the function for getting the set of particles which defines the highest resolution description of the shape, if the rigid body is not defined by atom::Hierarchy. > ? There is no way to have a general purpose function for that since it would involve mind reading :-) The rigid body usage methods all take refiners which map from the rigid body to the set of particles you are interested in for that usage. You just have to provide the right refiner to produce your desired representation.
Why aren't the set of particles a molecular hierarchy (assuming it is representing a molecule)?
> On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote: > >> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: >> >>> To get the particles within a rigid body, it is better using IMP::core::get_leaves or get_members, >> Maybe :-) They do different things (that might happen to have the same result sometimes). >> >> >>> i.e.: does get_members return the leaves or the children of the RigidBody ? >> neither, it returns all particles which move rigidly with the rigid body. >> >> Basically, when you have a shape that happens to be rigid, there are many sets of particles associated with it >> - all particles which movie rigidly with the shape (the rigid members) >> - the set of particles which defines the highest resolution description of the shape (which, if the rigid body is created from a molecular hierarchy, would be the leaves) >> - the set of particles which defines the coarsest description of the shape. Typically this is just the rigid body particle itself with a radius >> - the set of particles defining the residues in the rigid body >> - the particles defining the sphere hierarchy used for collision detection between that rigid hierarchy and another rigid hierarchy (which would be members, if they existed) >> etc. >> >> Depending on what you want to do, you will need different ones of these sets. >> >> _______________________________________________ >> 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
Is this a better overview of rigid bodies text? The previous one was not well structured.
A rigid body particle describes a set of particles, known as the members, which move rigidly together. Since the members are simply a set of particles which move together they don't (necessarily) define a shape. For example, the members could include representations of the geometry at several different representations. As a result, methods that use rigid bodies also take a Refiner. This refiner is used to map from the rigid body to the set of particles defining the geometry of interest.
The initial orientation of the rigid body is computed from the coordinates, masses and radii of the particles passed to the constructor, based on diagonalizing the inertial tensor (which is not stored, currently).
A rigid body stores the a set of local coordinates for each member and an algebra::Transformation3D mapping between the local coordinates and the actual location of the member.
It is often desirable to randomize the orientation of a rigid body: \verbinclude randomize_rigid_body.py
On Jan 25, 2010, at 3:33 PM, Keren Lasker wrote:
> thanks Daniel. > Is there a function for each of those ? if so it would be useful to explicitly have it in the documentation. > and specifically for my current requirement - what is the function for getting the set of particles which defines the highest resolution description of the shape, if the rigid body is not defined by atom::Hierarchy. > ? > On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote: > >> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: >> >>> To get the particles within a rigid body, it is better using IMP::core::get_leaves or get_members, >> Maybe :-) They do different things (that might happen to have the same result sometimes). >> >> >>> i.e.: does get_members return the leaves or the children of the RigidBody ? >> neither, it returns all particles which move rigidly with the rigid body. >> >> Basically, when you have a shape that happens to be rigid, there are many sets of particles associated with it >> - all particles which movie rigidly with the shape (the rigid members) >> - the set of particles which defines the highest resolution description of the shape (which, if the rigid body is created from a molecular hierarchy, would be the leaves) >> - the set of particles which defines the coarsest description of the shape. Typically this is just the rigid body particle itself with a radius >> - the set of particles defining the residues in the rigid body >> - the particles defining the sphere hierarchy used for collision detection between that rigid hierarchy and another rigid hierarchy (which would be members, if they existed) >> etc. >> >> Depending on what you want to do, you will need different ones of these sets. >> >> _______________________________________________ >> 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
yes - this looks good, as long as it follows with examples for protein rigid bodies, usage of that in optimization, maybe also something about relevant score-states. Also - there is this issue of moving a rigid body that does not really does anything unless a flag is set - maybe it would be good to explain the mechanism of rigid body movements. Also - for optimization it might be useful to mention the RigidBodyMover. On Jan 26, 2010, at 1:56 AM, Daniel Russel wrote:
> Is this a better overview of rigid bodies text? The previous one was > not well structured. > > A rigid body particle describes a set of particles, known > as the members, which move rigidly together. Since the > members are simply a set of particles which move together > they don't (necessarily) define a shape. For example, > the members could include representations of the geometry > at several different representations. As a result, methods > that use rigid bodies also take a Refiner. This refiner > is used to map from the rigid body to the set of particles > defining the geometry of interest. > > The initial orientation of the rigid body is computed from > the coordinates, masses and radii of the particles > passed to the constructor, based on diagonalizing the > inertial tensor (which is not stored, currently). > > A rigid body stores the a set of local coordinates for each > member and an algebra::Transformation3D mapping between > the local coordinates and the actual location of the member. > > It is often desirable to randomize the orientation of a rigid > body: > \verbinclude randomize_rigid_body.py > > > On Jan 25, 2010, at 3:33 PM, Keren Lasker wrote: > >> thanks Daniel. >> Is there a function for each of those ? if so it would be useful to >> explicitly have it in the documentation. >> and specifically for my current requirement - what is the function >> for getting the set of particles which defines the highest >> resolution description of the shape, if the rigid body is not >> defined by atom::Hierarchy. >> ? >> On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote: >> >>> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: >>> >>>> To get the particles within a rigid body, it is better using >>>> IMP::core::get_leaves or get_members, >>> Maybe :-) They do different things (that might happen to have the >>> same result sometimes). >>> >>> >>>> i.e.: does get_members return the leaves or the children of the >>>> RigidBody ? >>> neither, it returns all particles which move rigidly with the >>> rigid body. >>> >>> Basically, when you have a shape that happens to be rigid, there >>> are many sets of particles associated with it >>> - all particles which movie rigidly with the shape (the rigid >>> members) >>> - the set of particles which defines the highest resolution >>> description of the shape (which, if the rigid body is created from >>> a molecular hierarchy, would be the leaves) >>> - the set of particles which defines the coarsest description of >>> the shape. Typically this is just the rigid body particle itself >>> with a radius >>> - the set of particles defining the residues in the rigid body >>> - the particles defining the sphere hierarchy used for collision >>> detection between that rigid hierarchy and another rigid hierarchy >>> (which would be members, if they existed) >>> etc. >>> >>> Depending on what you want to do, you will need different ones of >>> these sets. >>> >>> _______________________________________________ >>> 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
On Jan 25, 2010, at 4:01 PM, Keren Lasker wrote:
> yes - this looks good, as long as it follows with examples for protein rigid bodies, usage of that in optimization, A protein example would be good. Do you have something simple around from experimenting for multifit? A couple of proteins and simple distance restraints that provide a unique relative orientation for example.
Do we have something we can on discussing rigid body modeling in general with biological structures?
> maybe also something about relevant score-states. No one should ever see them, so definitely not documenting them.
> Also - there is this issue of moving a rigid body that does not really does anything unless a flag is set That is long gone :-)
> - maybe it would be good to explain the mechanism of rigid body movements. Yeah, I'll add a mention of constraints and a link to the constraints page in an advanced section.
> Also - for optimization it might be useful to mention the RigidBodyMover. Indeed, you should have added a link when you wrote it :-) I've added one.
> On Jan 26, 2010, at 1:56 AM, Daniel Russel wrote: > >> Is this a better overview of rigid bodies text? The previous one was not well structured. >> >> A rigid body particle describes a set of particles, known >> as the members, which move rigidly together. Since the >> members are simply a set of particles which move together >> they don't (necessarily) define a shape. For example, >> the members could include representations of the geometry >> at several different representations. As a result, methods >> that use rigid bodies also take a Refiner. This refiner >> is used to map from the rigid body to the set of particles >> defining the geometry of interest. >> >> The initial orientation of the rigid body is computed from >> the coordinates, masses and radii of the particles >> passed to the constructor, based on diagonalizing the >> inertial tensor (which is not stored, currently). >> >> A rigid body stores the a set of local coordinates for each >> member and an algebra::Transformation3D mapping between >> the local coordinates and the actual location of the member. >> >> It is often desirable to randomize the orientation of a rigid >> body: >> \verbinclude randomize_rigid_body.py >> >> >> On Jan 25, 2010, at 3:33 PM, Keren Lasker wrote: >> >>> thanks Daniel. >>> Is there a function for each of those ? if so it would be useful to explicitly have it in the documentation. >>> and specifically for my current requirement - what is the function for getting the set of particles which defines the highest resolution description of the shape, if the rigid body is not defined by atom::Hierarchy. >>> ? >>> On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote: >>> >>>> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: >>>> >>>>> To get the particles within a rigid body, it is better using IMP::core::get_leaves or get_members, >>>> Maybe :-) They do different things (that might happen to have the same result sometimes). >>>> >>>> >>>>> i.e.: does get_members return the leaves or the children of the RigidBody ? >>>> neither, it returns all particles which move rigidly with the rigid body. >>>> >>>> Basically, when you have a shape that happens to be rigid, there are many sets of particles associated with it >>>> - all particles which movie rigidly with the shape (the rigid members) >>>> - the set of particles which defines the highest resolution description of the shape (which, if the rigid body is created from a molecular hierarchy, would be the leaves) >>>> - the set of particles which defines the coarsest description of the shape. Typically this is just the rigid body particle itself with a radius >>>> - the set of particles defining the residues in the rigid body >>>> - the particles defining the sphere hierarchy used for collision detection between that rigid hierarchy and another rigid hierarchy (which would be members, if they existed) >>>> etc. >>>> >>>> Depending on what you want to do, you will need different ones of these sets. >>>> >>>> _______________________________________________ >>>> 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
below On Jan 26, 2010, at 2:29 AM, Daniel Russel wrote:
> > On Jan 25, 2010, at 4:01 PM, Keren Lasker wrote: > >> yes - this looks good, as long as it follows with examples for >> protein rigid bodies, usage of that in optimization, > A protein example would be good. Do you have something simple around > from experimenting for multifit? A couple of proteins and simple > distance restraints that provide a unique relative orientation for > example. yes - jeremy and i are finalizing something like that for the review, so we should be able to add it soon. > > Do we have something we can on discussing rigid body modeling in > general with biological structures? > >> maybe also something about relevant score-states. > No one should ever see them, so definitely not documenting them. i had the pleasure of meeting then when working on domino, so - it might be useful for "advanced" usages. > >> Also - there is this issue of moving a rigid body that does not >> really does anything unless a flag is set > That is long gone :-) > >> - maybe it would be good to explain the mechanism of rigid body >> movements. > Yeah, I'll add a mention of constraints and a link to the > constraints page in an advanced section. > >> Also - for optimization it might be useful to mention the >> RigidBodyMover. > Indeed, you should have added a link when you wrote it :-) I've > added one. > > >> On Jan 26, 2010, at 1:56 AM, Daniel Russel wrote: >> >>> Is this a better overview of rigid bodies text? The previous one >>> was not well structured. >>> >>> A rigid body particle describes a set of particles, known >>> as the members, which move rigidly together. Since the >>> members are simply a set of particles which move together >>> they don't (necessarily) define a shape. For example, >>> the members could include representations of the geometry >>> at several different representations. As a result, methods >>> that use rigid bodies also take a Refiner. This refiner >>> is used to map from the rigid body to the set of particles >>> defining the geometry of interest. >>> >>> The initial orientation of the rigid body is computed from >>> the coordinates, masses and radii of the particles >>> passed to the constructor, based on diagonalizing the >>> inertial tensor (which is not stored, currently). >>> >>> A rigid body stores the a set of local coordinates for each >>> member and an algebra::Transformation3D mapping between >>> the local coordinates and the actual location of the member. >>> >>> It is often desirable to randomize the orientation of a rigid >>> body: >>> \verbinclude randomize_rigid_body.py >>> >>> >>> On Jan 25, 2010, at 3:33 PM, Keren Lasker wrote: >>> >>>> thanks Daniel. >>>> Is there a function for each of those ? if so it would be useful >>>> to explicitly have it in the documentation. >>>> and specifically for my current requirement - what is the >>>> function for getting the set of particles which defines the >>>> highest resolution description of the shape, if the rigid body is >>>> not defined by atom::Hierarchy. >>>> ? >>>> On Jan 26, 2010, at 1:27 AM, Daniel Russel wrote: >>>> >>>>> On Jan 25, 2010, at 3:20 PM, Keren Lasker wrote: >>>>> >>>>>> To get the particles within a rigid body, it is better using >>>>>> IMP::core::get_leaves or get_members, >>>>> Maybe :-) They do different things (that might happen to have >>>>> the same result sometimes). >>>>> >>>>> >>>>>> i.e.: does get_members return the leaves or the children of the >>>>>> RigidBody ? >>>>> neither, it returns all particles which move rigidly with the >>>>> rigid body. >>>>> >>>>> Basically, when you have a shape that happens to be rigid, there >>>>> are many sets of particles associated with it >>>>> - all particles which movie rigidly with the shape (the rigid >>>>> members) >>>>> - the set of particles which defines the highest resolution >>>>> description of the shape (which, if the rigid body is created >>>>> from a molecular hierarchy, would be the leaves) >>>>> - the set of particles which defines the coarsest description of >>>>> the shape. Typically this is just the rigid body particle itself >>>>> with a radius >>>>> - the set of particles defining the residues in the rigid body >>>>> - the particles defining the sphere hierarchy used for collision >>>>> detection between that rigid hierarchy and another rigid >>>>> hierarchy (which would be members, if they existed) >>>>> etc. >>>>> >>>>> Depending on what you want to do, you will need different ones >>>>> of these sets. >>>>> >>>>> _______________________________________________ >>>>> 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 > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev
participants (2)
-
Daniel Russel
-
Keren Lasker