Returns a dict mapping PDB IDs to:
                i) their number of associated records, if self.restrict_to_transmembrane_proteins is False;
               ii) the type of transmembrane protein if self.restrict_to_transmembrane_proteins is True.
            At the time of writing this (2014-12-03), there were 106,094 PDB IDs and 106,090 unique IDs.
            These records had duplicate entries: '2amk', '2ar1', '3b4r', '4k5y'.

def get_pdb_id_map(self):
        ''' Returns a dict mapping PDB IDs to:
                i) their number of associated records, if self.restrict_to_transmembrane_proteins is False;
               ii) the type of transmembrane protein if self.restrict_to_transmembrane_proteins is True.
            At the time of writing this (2014-12-03), there were 106,094 PDB IDs and 106,090 unique IDs.
            These records had duplicate entries: '2amk', '2ar1', '3b4r', '4k5y'.'''
        self.ids = {}
        context = etree.iterparse(io.BytesIO(self.xml_contents), events=('end',), tag=self.PDBTM_entry_tag_type)
        fast_iter(context, self._get_pdb_id)
        return self.ids