docs: def _get_gene2pubmed(self, limit):
          """
          Loops through the gene2pubmed file and adds a simple triple to say
          that a given publication is_about a gene.
          Publications are added as NamedIndividuals.
  
          These are filtered on the taxon.
  
          :param limit:
          :return:
  
          """
          src_key = 'gene2pubmed'
          if self.test_mode:
              graph = self.testgraph
          else:
              graph = self.graph
          model = Model(graph)
          LOG.info("Processing Gene records")
          line_counter = 0
          myfile = '/'.join((self.rawdir, self.files[src_key]['file']))
          LOG.info("FILE: %s", myfile)
          assoc_counter = 0
          col = self.files[src_key]['columns']
          with gzip.open(myfile, 'rb') as tsv:
              row = tsv.readline().decode().strip().split('\t')
              row[0] = row[0][1:]  # strip comment
              if col != row:
                  LOG.info(
                      '%s\nExpected Headers:\t%s\nRecived Headers:\t %s\n',
                      src_key, col, row)
              for line in tsv:
                  line_counter += 1
                  # skip comments
                  row = line.decode().strip().split('\t')
                  if row[0][0] == '#':
                      continue
                  # (tax_num, gene_num, pubmed_num) = line.split('\t')
  
                  # ## set id_filter=None in init if you don't want to have a filter
                  # if self.id_filter is not None:
                  #     if ((self.id_filter == 'taxids' and \
                  #          (int(tax_num) not in self.tax_ids))
                  #        or (self.id_filter == 'geneids' and \
                  #            (int(gene_num) not in self.gene_ids))):
                  #         continue
                  # #### end filter
  
                  gene_num = row[col.index('GeneID')].strip()
                  if self.test_mode and int(gene_num) not in self.gene_ids:
                      continue
  
                  tax_num = row[col.index('tax_id')].strip()
                  if not self.test_mode and tax_num not in self.tax_ids:
                      continue
  
                  pubmed_num = row[col.index('PubMed_ID')].strip()
                  if gene_num == '-' or pubmed_num == '-':
                      continue
  
                  gene_id = ':'.join(('NCBIGene', gene_num))
                  pubmed_id = ':'.join(('PMID', pubmed_num))
  
                  if self.class_or_indiv.get(gene_id) == 'C':
                      model.addClassToGraph(gene_id, None)
                  else:
                      model.addIndividualToGraph(gene_id, None)
                  # add the publication as a NamedIndividual
                  # add type publication
                  model.addIndividualToGraph(pubmed_id, None, None)
                  reference = Reference(
                      graph, pubmed_id, self.globaltt['journal article'])
                  reference.addRefToGraph()
                  graph.addTriple(
                      pubmed_id, self.globaltt['is_about'], gene_id)
                  assoc_counter += 1
                  if not self.test_mode and limit is not None and line_counter > limit:
                      break
  
          LOG.info(
              "Processed %d pub-gene associations", assoc_counter)
  
          return