Over the past several decades, de novo peptide sequencing algorithms have evolved considerably. Early de novo peptide sequencing algorithms employed heuristic search or dynamic programming procedures . The PepNovo algorithm combined dynamic programming with a probabilistic score function that instantiated a set of rules governing peptide fragmentation, and Fisher et al. proposed a closely related hidden Markov model approach. Notably, in 2015, the Novor algorithm improved the state of the art by using a machine learning algorithm (a combination of two decision trees) as the score function for its dynamic programming algorithm.