code: def _find_gene_list_from_bed(bed_file, base_file, data):
      
      # Check for a gene list, we can just return that.
      if is_gene_list(bed_file):
          return bed_file
      out_file = "%s-genes.txt" % utils.splitext_plus(base_file)[0]
      if not os.path.exists(out_file):
          genes = set([])
          import pybedtools
          with utils.open_gzipsafe(bed_file) as in_handle:
              for r in pybedtools.BedTool(in_handle):
                  if r.name:
                      if not r.name.startswith("{"):
                          genes.add(r.name)
          with file_transaction(data, out_file) as tx_out_file:
              with open(tx_out_file, "w") as out_handle:
                  if len(genes) > 0:
                      out_handle.write("\n".join(sorted(list(genes))) + "\n")
      if utils.file_exists(out_file):
          return out_file
docs: Retrieve list of gene names from input BED file.