Techniques for studying protein heterogeneity and post-translational modifications