code: def _merge_fastqc(samples):
      
      fastqc_list = collections.defaultdict(list)
      seen = set()
      for data in samples:
          name = dd.get_sample_name(data)
          if name in seen:
              continue
          seen.add(name)
          fns = glob.glob(os.path.join(dd.get_work_dir(data), "qc", dd.get_sample_name(data), "fastqc") + "/*")
          for fn in fns:
              if fn.endswith("tsv"):
                  metric = os.path.basename(fn)
                  fastqc_list[metric].append([name, fn])
  
      for metric in fastqc_list:
          dt_by_sample = []
          for fn in fastqc_list[metric]:
              dt = pd.read_csv(fn[1], sep="\t")
              dt['sample'] = fn[0]
              dt_by_sample.append(dt)
          dt = utils.rbind(dt_by_sample)
          dt.to_csv(metric, sep="\t", index=False, mode ='w')
      return samples
docs: merge all fastqc samples into one by module