code: def combine(beds, beds_sorted=False, postmerge=True):
      
      beds = copy.deepcopy(beds)
      for i,v in enumerate(beds):
          if type(v) == str:
              beds[i] = pbt.BedTool(v)
          if not beds_sorted:
              beds[i] = beds[i].sort()
  
      # For some reason, doing the merging in the reduce statement doesn't work. I
      # think this might be a pybedtools bug. In any fashion, I can merge
      # afterward although I think it makes a performance hit because the combined
      # bed file grows larger than it needs to.
      out = reduce(lambda x,y : x.cat(y, postmerge=False), beds)
      out = out.sort()
      if postmerge:
          out = out.merge()
      return out
docs: Combine a list of bed files or BedTool objects into a single BedTool object.
  
      Parameters
      ----------
      beds : list
          List of paths to bed files or BedTool objects.
  
      beds_sorted : boolean
          Whether the bed files in beds are already sorted. If False, all bed
          files in beds will be sorted.
  
      postmerge : boolean
          Whether to merge intervals after combining beds together. 
  
      Returns
      -------
      out : pybedtools.BedTool
          New sorted BedTool with intervals from all input beds.