docs: def proc_atom(self):
          """Processes an "ATOM" or "HETATM" record."""
          atom_data = self.proc_line_coordinate(self.current_line)
          (at_type, at_ser, at_name, alt_loc, res_name, chain_id, res_seq,
           i_code, x, y, z, occupancy, temp_factor, element, charge) = atom_data
          # currently active state
          a_state = self.pdb_parse_tree['data'][self.state]
          res_id = (res_seq, i_code)
          if chain_id not in a_state:
              a_state[chain_id] = (set(), OrderedDict())
          if res_id not in a_state[chain_id][1]:
              a_state[chain_id][1][res_id] = (set(), OrderedDict())
          if at_type == 'ATOM':
              if res_name in standard_amino_acids.values():
                  poly = 'P'
              else:
                  poly = 'N'
          else:
              poly = 'H'
          a_state[chain_id][0].add((chain_id, at_type, poly))
          a_state[chain_id][1][res_id][0].add(
              (at_type, res_seq, res_name, i_code))
          if at_ser not in a_state[chain_id][1][res_id][1]:
              a_state[chain_id][1][res_id][1][at_ser] = [atom_data]
          else:
              a_state[chain_id][1][res_id][1][at_ser].append(atom_data)
          return