Algorithms for analysis of multiple biological sequences : theory and practice