code: def _pair_samples_with_pipelines(run_info_yaml, config):
      
      samples = config_utils.load_config(run_info_yaml)
      if isinstance(samples, dict):
          resources = samples.pop("resources")
          samples = samples["details"]
      else:
          resources = {}
      ready_samples = []
      for sample in samples:
          if "files" in sample:
              del sample["files"]
          # add any resources to this item to recalculate global configuration
          usample = copy.deepcopy(sample)
          usample.pop("algorithm", None)
          if "resources" not in usample:
              usample["resources"] = {}
          for prog, pkvs in resources.items():
              if prog not in usample["resources"]:
                  usample["resources"][prog] = {}
              if pkvs is not None:
                  for key, val in pkvs.items():
                      usample["resources"][prog][key] = val
          config = config_utils.update_w_custom(config, usample)
          sample["resources"] = {}
          ready_samples.append(sample)
      paired = [(x, _get_pipeline(x)) for x in ready_samples]
      d = defaultdict(list)
      for x in paired:
          d[x[1]].append([x[0]])
      return d, config
docs: Map samples defined in input file to pipelines to run.