Slight improvement of the proposal:
- if any of the hierarchy has coordinates, all the leaves must
- one must be able to determine which Particle each residue is associated with
- the default "radius" attribute is used to an approximating radius- so the radius that best approximates the sub-particles at that level of detail
- hierarchy particles can have a "bounding radius" attribute which represents a bounding sphere. This will be used by the close pairs code and other code and is assumed to include all relevant geometry associated with the particle (so all geometry in the subtree).


On Thu, May 21, 2009 at 10:07 AM, Daniel Russel <drussel@gmail.com> wrote:
I suggest that we impose that  in an atom.Hierarchy
- if any of the hierarchy has coordinates, all the leaves do (they can be at any level of the hierarchy though)
- all residues in each molecule must be either a) explicitly represented as a Residue, b) part of a Domain which is a leaf (which would be expanded to allow non-contiguous sets of residues--or we could split off a new type of decorator for this)
- any member of the hierarchy other than an Atom which has coordinates also has a radius. The interpretation is that this radius bounds where members of the (possibly elided) subtree can be.

These would ensure several useful properties:
1) it be clear what the highest resolution representation of any hierarchy is
2) one be able to find out where in the hierarchy any residue is located
3) code does not need to look at the most detailed representation to get a rough picture of the structure, it only has to search down the tree (I'm from CS) to find a representation with small enough balls.

Comments?