code: def _combine_regions(all_regions, ref_regions):
      
      chrom_order = {}
      for i, x in enumerate(ref_regions):
          chrom_order[x.chrom] = i
      def wchrom_key(x):
          chrom, start, end = x
          return (chrom_order[chrom], start, end)
      all_intervals = []
      for region_group in all_regions:
          for region in region_group:
              all_intervals.append((region.chrom, int(region.start), int(region.stop)))
      all_intervals.sort(key=wchrom_key)
      bed_lines = ["%s\t%s\t%s" % (c, s, e) for (c, s, e) in all_intervals]
      return pybedtools.BedTool("\n".join(bed_lines), from_string=True)
docs: Combine multiple BEDtools regions of regions into sorted final BEDtool.