docs: def _get_omim_ids(self):
          '''
              side effect:
                  populate omim_type map from a omim number to an ontology term
                  the ontology terms's labels as
                   -  'gene'
                      when they declare it as a gene
  
                  -   'Phenotype'
                      Phenotype, molecular basis known
  
                  -   'heritable_phenotypic_marker'
                      Phenotype or locus, molecular basis unknown
  
                  -   'obsolete'
                      when Removed or moved to another entry
  
                  -   'has_affected_feature'
                      "when declared as  "Gene and phenotype, combined"
                      hope being it could be detected and used as either
  
              :return a unique list of omim numbers
          '''
          src_key = 'mim2gene'
          omim_nums = set()        # all types
          line_counter = 0
          raw = '/'.join((self.rawdir, self.files[src_key]['file']))
          LOG.info("Obtaining OMIM record identifiers from: %s", raw)
          # TODO check to see if the file is there
          col = self.files[src_key]['columns']
          with open(raw, "r") as reader:
              reader.readline()            # copyright
              reader.readline()            # Generated: YYYY-MM-DD
              reader.readline()            # discription
              reader.readline()            # disclaimer
              line = reader.readline()     # column headers
              row = line.strip().split('\t')
              if row != col:  # assert
                  LOG.error('Expected  %s to have columns: %s', raw, col)
                  LOG.error('But Found %s to have columns: %s', raw, row)
                  raise AssertionError('Incomming data headers have changed.')
  
              line_counter = 5
              for line in reader:
                  line_counter += 1
                  row = line.strip().split('\t')
                  if len(row) != len(col):
                      LOG.warning(
                          'Unexpected input on line: %i  got: %s', line_counter, row)
                      continue
                  omim_num = row[col.index('MIM Number')]
                  mimtype = row[col.index(
                      'MIM Entry Type (see FAQ 1.3 at https://omim.org/help/faq)')]
                  # ncbigene = row[col.index('Entrez Gene ID (NCBI)')]
                  # hgnc = row[col.index('Approved Gene Symbol (HGNC)')]
                  # ensembl = row[col.index('Ensembl Gene ID (Ensembl)')]
  
                  omim_nums.update({omim_num})
  
                  self.omim_type[omim_num] = None
                  if mimtype == 'gene':
                      self.omim_type[omim_num] = self.globaltt['gene']
  
                  # Phenotype, molecular basis known
                  elif mimtype == 'phenotype':
                      self.omim_type[omim_num] = self.globaltt['Phenotype']
  
                  # Phenotype or locus, molecular basis unknown
                  elif mimtype == 'predominantly phenotypes':
                      self.omim_type[omim_num] = self.globaltt[
                          'heritable_phenotypic_marker']  # ?
  
                  # Removed or moved to another entry
                  elif mimtype == 'moved/removed':
                      self.omim_type[omim_num] = self.globaltt['obsolete']
  
                  # "Gene and phenotype, combined"  works as both/either.
                  elif mimtype == 'gene/phenotype':
                      self.omim_type[omim_num] = self.globaltt['has_affected_feature']
                  else:
                      LOG.warning(
                          'Unknown OMIM TYPE of %s on line %i', mimtype, line_counter)
  
          LOG.info("Done. found %d omim ids", len(omim_nums))
  
          return list(omim_nums)