code: def _organize_qc_files(program, qc_dir):
      
      base_files = {"fastqc": "fastqc_report.html",
                    "qualimap_rnaseq": "qualimapReport.html",
                    "qualimap": "qualimapReport.html"}
      if os.path.exists(qc_dir):
          out_files = []
          for fname in [os.path.join(qc_dir, x) for x in os.listdir(qc_dir)]:
              if os.path.isfile(fname) and not fname.endswith(".bcbiotmp"):
                  out_files.append(fname)
              elif os.path.isdir(fname) and not fname.endswith("tx"):
                  for root, dirs, files in os.walk(fname):
                      for f in files:
                          if not f.endswith(".bcbiotmp"):
                              out_files.append(os.path.join(root, f))
          if len(out_files) > 0 and all([not f.endswith("-failed.log") for f in out_files]):
              if len(out_files) == 1:
                  base = out_files[0]
                  secondary = []
              else:
                  base = None
                  if program in base_files:
                      base_choices = [x for x in out_files if x.endswith("/%s" % base_files[program])]
                      if len(base_choices) == 1:
                          base = base_choices[0]
                  if not base:
                      base = out_files[0]
                  secondary = [x for x in out_files if x != base]
              return {"base": base, "secondary": secondary}
docs: Organize outputs from quality control runs into a base file and secondary outputs.
  
      Provides compatibility with CWL output. Returns None if no files created during processing.