docs: def _process_orthologs(self, raw, limit=None):
          """
          This method maps orthologs for a species to the KEGG orthology classes.
  
          Triples created:
          <gene_id> is a class
          <orthology_class_id> is a class
  
          <assoc_id> has subject <gene_id>
          <assoc_id> has object <orthology_class_id>
          :param limit:
          :return:
  
          """
  
          LOG.info("Processing orthologs")
          if self.test_mode:
              graph = self.testgraph
          else:
              graph = self.graph
          model = Model(graph)
          line_counter = 0
          with open(raw, 'r', encoding="iso-8859-1") as csvfile:
              filereader = csv.reader(csvfile, delimiter='\t', quotechar='\"')
              for row in filereader:
                  line_counter += 1
                  (gene_id, orthology_class_id) = row
  
                  orthology_class_id = 'KEGG:'+orthology_class_id.strip()
                  gene_id = 'KEGG:' + gene_id.strip()
  
                  # note that the panther_id references a group of orthologs,
                  # and is not 1:1 with the rest
  
                  # add the KO id as a gene-family grouping class
                  OrthologyAssoc(
                      graph, self.name, gene_id, None).add_gene_family_to_graph(
                          orthology_class_id)
  
                  # add gene and orthology class to graph;
                  # assume labels will be taken care of elsewhere
                  model.addClassToGraph(gene_id, None)
                  model.addClassToGraph(orthology_class_id, None)
  
                  if not self.test_mode and limit is not None and line_counter > limit:
                      break
  
          LOG.info("Done with orthologs")
          return