docs: def parse_atom_tag_data(self, name, tag_content):
          '''Parse the atom tag data.'''
          current_atom_site = self.current_atom_site
          if current_atom_site.IsHETATM:
              # Early out - do not parse HETATM records
              return
  
          elif name == 'PDBx:atom_site':
              # We have to handle the atom_site close tag here since we jump based on self._BLOCK first in end_element
  
              #'''Add the residue to the residue map.'''
              self._BLOCK = None
              current_atom_site = self.current_atom_site
              current_atom_site.validate()
              if current_atom_site.IsATOM:
                  # Only parse ATOM records
                  r, seqres, ResidueAA, Residue3AA = current_atom_site.convert_to_residue(self.modified_residues)
                  if r:
                      if not(self.pdb_id in cases_with_ACE_residues_we_can_ignore and Residue3AA == 'ACE'):
                          # skip certain ACE residues
                          full_residue_id = str(r)
                          if self._residues_read.get(full_residue_id):
                              assert(self._residues_read[full_residue_id] == (r.ResidueAA, seqres))
                          else:
                              self._residues_read[full_residue_id] = (r.ResidueAA, seqres)
                              self._residue_map[r.Chain] = self._residue_map.get(r.Chain, {})
                              assert(type(seqres) == int_type)
                              self._residue_map[r.Chain][str(r)] = seqres
  
          # Record type
          elif name == 'PDBx:group_PDB':
              # ATOM or HETATM
              if tag_content == 'ATOM':
                  current_atom_site.IsATOM = True
              elif tag_content == 'HETATM':
                  current_atom_site.IsHETATM = True
              else:
                  raise Exception("PDBx:group_PDB was expected to be 'ATOM' or 'HETATM'. '%s' read instead." % tag_content)
  
          # Residue identifier - chain ID, residue ID, insertion code
          elif name == 'PDBx:auth_asym_id':
              assert(not(current_atom_site.PDBChainID))
              current_atom_site.PDBChainID = tag_content
              if not tag_content:
                  assert(current_atom_site.PDBChainIDIsNull)
                  if self.pdb_id.upper() == '2MBP':
                      current_atom_site.PDBChainID = 'A' # e.g. 2MBP
                  else:
                      current_atom_site.PDBChainID = ' '
  
          elif name == 'PDBx:auth_seq_id':
              assert(not(current_atom_site.ATOMResidueID))
              current_atom_site.ATOMResidueID = int(tag_content)
          elif name == "PDBx:pdbx_PDB_ins_code":
              if current_atom_site.ATOMResidueiCodeIsNull:
                  assert(len(tag_content) == 0)
              else:
                  assert(current_atom_site.ATOMResidueiCode == ' ')
                  current_atom_site.ATOMResidueiCode = tag_content
          elif name == "PDBx:auth_comp_id":
              assert(not(current_atom_site.ATOMResidueAA))
              current_atom_site.ATOMResidueAA = tag_content
  
          elif name == "PDBx:label_seq_id":
              assert(not(current_atom_site.SEQRESIndex))
              current_atom_site.SEQRESIndex = int(tag_content)
          elif name == "PDBx:label_comp_id":
              assert(not(current_atom_site.ATOMSeqresResidueAA))
              current_atom_site.ATOMSeqresResidueAA = tag_content