Other aspects integral for correct data interpretation, such as MS polarity, charge state, and precursor m/z are automatically extracted from mzML files and used to build a neutral mass list that is searched, enabling direct comparisons to other platforms that require a glycan mass list as input (Fig ). A comprehensive feature comparison to GlycoMod is described in Supp Table . As brute-force combinatorial analysis lacks throughput for applications such as these (like the classic computer science coin change problem 29 ), dynamic programming was implemented as the solution to calculate monosaccharide combinations to match a given neutral mass. As the combinations are recursively expanded, memoization is performed to eliminate redundant calculations (simplified examples are provided in Supp Figs and).