Predicting protein function and protein-ligand interactions through machine learning