Threading methods for protein structure prediction