code: def find_ribosomal(rps, scaffolds, s2rp, min_hits, max_hits_rp, max_errors):
      
      for scaffold, proteins in list(s2rp.items()):
          # for each scaffold, get best hits for each rp
          hits = {p: [i for i in sorted(hits, key = itemgetter(10))][0:max_hits_rp]
              for p, hits in list(proteins.items()) if len(hits) > 0}
          # skip if fewer than min_hits RPs are identified
          if len(hits) < min_hits:
              continue
          best = sorted([hit[0] + [p]
              for p, hit in list(hits.items())], key = itemgetter(10))[0]
          block = find_block(rps, scaffolds[scaffold], hits, best, max_errors)
          if (len(block) - 1) >= min_hits:
              yield scaffold, block
docs: determine which hits represent real ribosomal proteins, identify each in syntenic block
      max_hits_rp = maximum number of hits to consider per ribosomal protein per scaffold