Probing protein dynamics in vivo using non-canonical amino acid labeling