def cluster(seqs, threshold=<NUM_LIT>, out_file=None, temp_dir=None, make_db=True,<EOL>quiet=False, threads=<NUM_LIT:0>, return_just_seq_ids=False, max_memory=<NUM_LIT>, debug=False):
if make_db:<EOL><INDENT>ofile, cfile, seq_db, db_path = cdhit(seqs, out_file=out_file, temp_dir=temp_dir,<EOL>threshold=threshold, make_db=True, quiet=quiet,<EOL>threads=threads, max_memory=max_memory, debug=debug)            <EOL>return parse_clusters(ofile, cfile, seq_db=seq_db, db_path=db_path, return_just_seq_ids=return_just_seq_ids)<EOL><DEDENT>else:<EOL><INDENT>seqs = [Sequence(s) for s in seqs]<EOL>seq_dict = {s.id: s for s in seqs}<EOL>ofile, cfile, = cdhit(seqs, out_file=out_file, temp_dir=temp_dir, threads=threads,<EOL>threshold=threshold, make_db=False, quiet=quiet,<EOL>max_memory=max_memory, debug=debug)<EOL>return parse_clusters(ofile, cfile, seq_dict=seq_dict, return_just_seq_ids=return_just_seq_ids)<EOL><DEDENT>
Perform sequence clustering with CD-HIT.

Args:

    seqs (list): An iterable of sequences, in any format that `abutils.utils.sequence.Sequence()`
        can handle

    threshold (float): Clustering identity threshold. Default is `0.975`.

    out_file (str): Path to the clustering output file. Default is to use
        `tempfile.NamedTemporaryFile` to generate an output file name.

    temp_dir (str): Path to the temporary directory. If not provided, `'/tmp'` is used.

    make_db (bool): Whether to build a SQlite database of sequence information. Required
        if you want to calculate consensus/centroid sequences for the resulting
        clusters or if you need to access the clustered sequences (not just sequence IDs)
        Default is `True`.

    quiet (bool): If `True`, surpresses printing of output/progress info. Default is `False`.

    threads (int): Number of threads (CPU cores) to be used for clustering. Default is `0`,
        which results in all available cores being used.

    return_just_seq_ids (bool): If `True`, will return a 2D list of sequence IDs
        (a list containing a list of sequence IDs for each cluster) rather than returning a
        list of `Cluster` objects.

    max_memory (int): Max memory (in MB) for CD-HIT. Will be passed directly to CD-HIT through
        the `-M` runtime option. Default is `800`.

    debug (bool): If `True`, print standard output and standard error from CD-HIT. Default is `False`.

Returns:

    list: A list of `Cluster` objects (or a 2D list of sequence IDs, if `return_just_seq_ids` is `True`).