Algorithms For Tandem Mass Spectrometry-Based Proteomics