After predicting the charge state for a cluster (Figure , step 1), the next step is to check that the predicted charge matches the data. First, a theoretical isotope distribution for the predicted charge state is generated using a Fourier transform-based algorithm and an averagine model. Note, the averagine model could present problems for non-protein analytes, as discussed below. The predicted m/z peaks are then matched against the experimental data. The cosine similarity score is calculated for the match. If the cosine similar score is above 70% and meets other criteria, the peak is considered a match. However, this cutoff can be adjusted by the user. Step 3) Peaks matched to the theoretical distribution at the optimal shift from step 2 are removed from the spectrum. The process, steps 1 through 3, is then repeated on the spectrum with matched peaks removed. This loop is repeated until the maximum number of knockdown rounds has been reached, no peaks were accepted, or insufficient peaks remain.