Bioinformatics of membrane proteins: predicting topology and structure