code: def get_unique_gene_psms(self, genetable, fields, firstjoin):
          
          lastgene = None
          gpsms_out, gp_ids = [], []
          for gpsm in self.get_proteins_psms(genetable, fields, firstjoin):
              if gpsm[0] != lastgene:
                  for outpsm in gpsms_out:
                      yield outpsm
                  lastgene = gpsm[0]
                  gpsms_out, gp_ids = [], []
              gp_id = gpsm[0] + gpsm[1] + gpsm[3]
              if gp_id not in gp_ids:
                  gp_ids.append(gp_id)
                  gpsms_out.append(gpsm)
          for outpsm in gpsms_out:
              yield outpsm
docs: Uniques the results from get_proteins_psms so each PSM as defined
          by gene ID / setname / psm_id will only occur once