nt of the cases, or even 100% (why should I call get_is_molecule()
if I know that is going to be true all the time ? ). It is far more
difficult, but far more useful, to agree of what we expect to get
after a PDB, and how we are going to organize our structures in IMP
into hierarchies.
You need some way of traversing the resulting hierarchy and telling
what you are looking at. Say read_pdb returns a Hierarchy. You then
have to go through the children of the node and determine which is a
protein and which is a ligand if you want to do much useful with it.
The docs for the read_pdb function can't possibly specify the answer.
If you are writing code that knows the pdb that is being loaded, then
you can hard code it, but that is not always possible (say you are
writing something like modpipe or an application to handle fitting
into em maps).
Or you load a protein and decide you want to define subdomains. You
then modify the hierarchy to have a node corresponding to the
structure. Some code which alter traverses the hierarchy (such as code
to build a simplified representation), may need to know when it has
gotten to the atoms or residues (it can't assume a constant structure).
Together with Keren, I can give suggestions for low resolution
structures.