code: def _merge_metadata(samples):
      
      samples = list(utils.flatten(samples))
      out_dir = dd.get_work_dir(samples[0])
      logger.info("summarize metadata")
      out_file = os.path.join(out_dir, "metadata.csv")
      sample_metrics = collections.defaultdict(dict)
      for s in samples:
          m = tz.get_in(['metadata'], s)
          if isinstance(m, six.string_types):
              m = json.loads(m)
          if m:
              for me in list(m.keys()):
                  if isinstance(m[me], list) or isinstance(m[me], dict) or isinstance(m[me], tuple):
                      m.pop(me, None)
              sample_metrics[dd.get_sample_name(s)].update(m)
      pd.DataFrame(sample_metrics).transpose().to_csv(out_file)
      return out_file
docs: Merge all metadata into CSV file