Evaluation of protein function prediction algorithms