Protein Bioinformatics: An Algorithmic Approach to Sequence and Structure Analysis