code: def _parse_header(self, header_string):
          
          header_content = header_string.strip().split('\t')
          if len(header_content) != self._snv_enum.HEADER_LEN.value:
              raise MTBParserException(
                  "Only {} header columns found, {} expected!"
                  .format(len(header_content), self._snv_enum.HEADER_LEN.value))
          counter = 0
          for column in header_content:
              for enum_type in self._snv_enum:
                  if column == enum_type.value:
                      self._header_to_column_mapping[enum_type.name] = counter
                      continue
              counter+=1
  
          if len(self._header_to_column_mapping) != self._snv_enum.HEADER_LEN.value:
              debug_string = self._header_to_column_mapping.keys()
              raise MTBParserException("Parsing incomplete: Not all columns have been "
                      "matched to speficied column types. Identified {} columns, but expected {}. {}"
                      .format(len(self._header_to_column_mapping), self._snv_enum.HEADER_LEN.value, debug_string))
docs: Parses the header and determines the column type
          and its column index.