docs: def cluster(self, input_fasta_list, reverse_pipe):
          '''
          cluster - Clusters reads at 100% identity level and  writes them to
          file. Resets the input_fasta variable as the FASTA file containing the
          clusters.
  
          Parameters
          ----------
          input_fasta_list : list
              list of strings, each a path to input fasta files to be clustered.
          reverse_pipe : bool
              True/False, whether the reverse reads pipeline is being followed.
          Returns
          -------
          output_fasta_list : list
              list of strings, each a path to the output fasta file to which
              clusters were written to.
          '''
          output_fasta_list = []
          for input_fasta in input_fasta_list:
              output_path  = input_fasta.replace('_hits.aln.fa', '_clustered.fa')
              cluster_dict = {}
  
              logging.debug('Clustering reads')
              if os.path.exists(input_fasta):
                  reads=self.seqio.read_fasta_file(input_fasta) # Read in FASTA records
                  logging.debug('Found %i reads' % len(reads)) # Report number found
                  clusters=self.clust.deduplicate(reads) # Cluster redundant sequences
                  logging.debug('Clustered to %s groups' % len(clusters)) # Report number of clusters
                  logging.debug('Writing representative sequences of each cluster to: %s' % output_path) # Report the name of the file
              else:
                  logging.debug("Found no reads to be clustered")
                  clusters = []
  
              self.seqio.write_fasta_file(
                                          [x[0] for x in clusters],
                                          output_path
                                          ) # Choose the first sequence to write to file as representative (all the same anyway)
              for cluster in clusters:
                  cluster_dict[cluster[0].name]=cluster # assign the cluster to the dictionary
              self.seq_library[output_path]= cluster_dict
  
              output_fasta_list.append(output_path)
  
          return output_fasta_list