docs: def uncluster_annotations(self, input_annotations, reverse_pipe):
          '''
          Update the annotations hash provided by pplacer to include all
          representatives within each cluster
  
          Parameters
          ----------
          input_annotations : hash
              Classifications for each representative sequence of the clusters.
              each key being the sequence name, and the entry being the taxonomy
              string as a list.
          reverse_pipe : bool
              True/False, whether the reverse reads pipeline is being followed.
  
          Returns
          -------
          output_annotations : hash
              An updated version of the above, which includes all reads from
              each cluster
          '''
          output_annotations = {}
          for placed_alignment_file_path, clusters in self.seq_library.iteritems():
  
              if reverse_pipe and placed_alignment_file_path.endswith("_reverse_clustered.fa"): continue
              placed_alignment_file = os.path.basename(placed_alignment_file_path)
              cluster_classifications = input_annotations[placed_alignment_file]
  
              if reverse_pipe:
                  placed_alignment_base = placed_alignment_file.replace('_forward_clustered.fa', '')
              else:
                  placed_alignment_base = placed_alignment_file.replace('_clustered.fa', '')
              output_annotations[placed_alignment_base] = {}
              for rep_read_name, rep_read_taxonomy in cluster_classifications.iteritems():
  
                  if reverse_pipe:
                      orfm_regex = OrfM.regular_expression()
                      clusters={(orfm_regex.match(key).groups(0)[0] if orfm_regex.match(key) else key): item for key, item in clusters.iteritems()}
                  for read in clusters[rep_read_name]:
                      output_annotations[placed_alignment_base][read.name] = rep_read_taxonomy
  
          return output_annotations