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.