Parse the atom tag data.

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