code: def resolve(items, run_parallel):
      
      out = []
      to_process = collections.defaultdict(list)
      for data in [x[0] for x in items]:
          if "disambiguate" in data:
              split_part = tuple([int(x) for x in data["align_split"].split("-")]) if data.get("combine") else None
              to_process[(dd.get_sample_name(data), split_part)].append(data)
          else:
              out.append([data])
      if len(to_process) > 0:
          dis1 = run_parallel("run_disambiguate",
                              [(xs, xs[0]["config"]) for xs in to_process.values()])
          disambigs_by_name = collections.defaultdict(list)
          print(len(dis1))
          for xs in dis1:
              assert len(xs) == 1
              data = xs[0]
              disambigs_by_name[dd.get_sample_name(data)].append(data)
          dis2 = run_parallel("disambiguate_merge_extras",
                              [(xs, xs[0]["config"]) for xs in disambigs_by_name.values()])
      else:
          dis2 = []
      return out + dis2
docs: Combine aligned and split samples into final set of disambiguated reads.