You probably know it, but some atom names would simply result in read_pdb to fail. This behavior seems a bit drastic too me. Maybe it would be possible to build a hierarchy containing atoms that could be recognized, and provide some warnings, or give access to the number of encountered errors or ignored atoms when building the hierarchy; leaving the final choice to the user to play with its structure or to reject it.
As an example : pdb code 1E1Q
mh = IMP.atom.read_pdb(pdbFilePath,m)
_IMP.ValueException: Illegal character in atom name, only A-Z, 0-9, " "allowed. Got "HET: O5'"