protein alignment using dynamic programming