@classmethod
def align(cls, sequences, bin_path=None, matrix=None):
    """
        Perform a multiple sequence alignment.
        
        This is a convenience function, that wraps the :class:`MSAApp`
        execution.
        
        Parameters
        ----------
        sequences : iterable object of Sequence
            The sequences to be aligned
        bin_path : str, optional
            Path of the MSA software binary. By default, the default
            path will be used.
        matrix : SubstitutionMatrix, optional
        A custom substitution matrix.
        
        Returns
        -------
        alignment : Alignment
            The global multiple sequence alignment.
        """
    if bin_path is None:
        app = cls(sequences, matrix=matrix)
    else:
        app = cls(sequences, bin_path, matrix=matrix)
    app.start()
    app.join()
    return app.get_alignment()
