code: def combine_regions(self,input_region_labels,output_region_label,verbose=True):
          
          if isinstance(input_region_labels,str): input_region_labels = [input_region_labels]
          bad_regions = set(input_region_labels)-set(self.regions)
          if len(bad_regions) > 0: raise ValueError("Error regions(s) "+str(bad_regions)+" are not in the data.")
          data = self.copy()
          if len(input_region_labels) == 0: return data
          def _swap_in(d,inputs,output):
              # Get the keys we need to merge together
              overlap = set(d.keys()).intersection(inputs)
              # if there are none to merge we're done already
              if len(overlap) == 0: return d
              keepers = [(k,v) for k,v in d.items() if k not in inputs]
              # combine anything thats not a keeper
              return dict(keepers+\
                          [(output_region_label,sum([d[x] for x in overlap]))])
          data['regions'] = data.apply(lambda x:
              _swap_in(x['regions'],input_region_labels,output_region_label)
              ,1)
          data.loc[data['region_label'].isin(input_region_labels),'region_label'] = output_region_label
          return data
docs: Combine/rename one or more input regions to a single output region
  
          Args:
              input_region_labels (list): A str name or list of names to combine
              output_region_label (list): A str name to change the phenotype names to
              verbose (bool): output more details
  
          Returns:
              CellDataFrame: The CellDataFrame modified.