Exploring the molecular evolution of proteins with deep mutational scanning