code: def _flatten_samples(samples, base_file, get_retriever):
      
      flat_data = []
      for data in samples:
          data["reference"] = _indexes_to_secondary_files(data["reference"], data["genome_build"])
          cur_flat = {}
          for key_path in [["analysis"], ["description"], ["rgnames"], ["config", "algorithm"],
                           ["metadata"], ["genome_build"], ["resources"],
                           ["files"], ["reference"], ["genome_resources"], ["vrn_file"]]:
              cur_key = "__".join(key_path)
              for flat_key, flat_val in _to_cwldata(cur_key, tz.get_in(key_path, data), get_retriever):
                  cur_flat[flat_key] = flat_val
          flat_data.append(cur_flat)
      out = {}
      for key in sorted(list(set(reduce(operator.add, [list(d.keys()) for d in flat_data])))):
          # Periods in keys cause issues with WDL and some CWL implementations
          clean_key = key.replace(".", "_")
          out[clean_key] = []
          for cur_flat in flat_data:
              out[clean_key].append(cur_flat.get(key))
      # special case for back-compatibility with fasta specifications -- yuck
      if "reference__fasta__base" not in out and "reference__fasta" in out:
          out["reference__fasta__base"] = out["reference__fasta"]
          del out["reference__fasta"]
      return _samplejson_to_inputs(out), out
docs: Create a flattened JSON representation of data from the bcbio world map.