docs: def merge(self, samples_uuid):
          """
          The method to merge the datamodels belonging to different references
  
          :param samples_uuid: The unique identifier metadata column name to identify the identical samples having different references
          :return: Returns the merged dataframe
  
          """
  
          all_meta_data = pd.DataFrame()
          for dm in self.data_model:
              all_meta_data = pd.concat([all_meta_data, dm.meta], axis=0)
  
          group = all_meta_data.groupby([samples_uuid])['sample']
          sample_sets = group.apply(list).values
  
          merged_df = pd.DataFrame()
          multi_index = list(map(list, zip(*sample_sets)))
          multi_index_names = list(range(0, len(sample_sets[0])))
          i = 1
          for pair in sample_sets:
              i += 1
              numbers = list(range(0, len(pair)))
              df_temp = pd.DataFrame()
              for n in numbers:
                  try:  # data.loc[pair[n]] may not be found due to the fast loading (full_load = False)
                      df_temp = pd.concat([df_temp, self.data_model[n].data.loc[pair[n]]], axis=1)
                  except:
                      pass
              merged_df = pd.concat([merged_df, df_temp.T.bfill().iloc[[0]]], axis=0)
  
          multi_index = np.asarray(multi_index)
          multi_index = pd.MultiIndex.from_arrays(multi_index, names=multi_index_names)
          merged_df.index = multi_index
          return merged_df