Bioinformatics approaches for protein structure-function relationships and functional annotation determination