Takes a list, pdb_list, of pdb names e.g. ['Model', 'Scaffold', ...] with which the object was created.
            Using the first element of this list as a base, get the sequence alignments with chains in other members
            of the list. For simplicity, if a chain in the first PDB matches multiple chains in another PDB, we only
            return the alignment for one of the chains. If pdb_list is empty then the function defaults to the object's
            members.

            Returns HTML for the sequence alignments and an empty string if no alignments were made.

def get_sequence_alignment_strings_as_html(self, pdb_list = [], reversed = False, width = 80, line_separator = '\n', extra_tooltip_class = ''):
        '''Takes a list, pdb_list, of pdb names e.g. ['Model', 'Scaffold', ...] with which the object was created.
            Using the first element of this list as a base, get the sequence alignments with chains in other members
            of the list. For simplicity, if a chain in the first PDB matches multiple chains in another PDB, we only
            return the alignment for one of the chains. If pdb_list is empty then the function defaults to the object's
            members.

            Returns HTML for the sequence alignments and an empty string if no alignments were made.'''

        raise Exception('Re-implement using the equivalence classes.')

        sequence_alignment_printer_tuples = self.get_sequence_alignment_printer_objects(pdb_list = pdb_list, reversed = reversed, width = width, line_separator = line_separator)
        if not sequence_alignment_printer_tuples:
            return ''
        html = []
        for sequence_alignment_printer_tuple in sequence_alignment_printer_tuples:
            primary_pdb_chain = sequence_alignment_printer_tuple[0]
            sap = sequence_alignment_printer_tuple[1]
            html.append(sap.to_html(reversed = reversed, width = width, line_separator = line_separator, extra_tooltip_class = extra_tooltip_class))

        return '\n'.join(html)