code: def _annotate(reads, mirbase_ref, precursors):
      
      for r in reads:
          for p in reads[r].precursors:
              start = reads[r].precursors[p].start + 1  # convert to 1base
              end = start + len(reads[r].sequence)
              for mature in mirbase_ref[p]:
                  mi = mirbase_ref[p][mature]
                  is_iso = _coord(reads[r].sequence, start, mi, precursors[p], reads[r].precursors[p])
                  logger.debug(("{r} {p} {start} {is_iso} {mature} {mi} {mature_s}").format(s=reads[r].sequence, mature_s=precursors[p][mi[0]-1:mi[1]], **locals()))
                  if is_iso:
                      reads[r].precursors[p].mirna = mature
                      break
      return reads
docs: Using SAM/BAM coordinates, mismatches and realign to annotate isomiRs