Early work from Senko et al. used Fourier transforms and Patterson charge maps to assign the charge of isotope clusters. Horn et al. incorporated this approach into a sequential algorithm that automatically assigned peaks and then removed assigned clusters from the spectrum. This algorithm, THRASH, has been adapted in many commercial and non-commercial offspring. For example, Hardklör used a similar overall approach but developed a simpler algorithm, called QuickCharge, based on inverse m/z differences to speed up charge assignment. Another approach to charge assignment is with pattern matching. For example, ProMex scans theoretical isotopic envelopes for each possible charge across a spectrum to identify and assign isotopic envelopes in m/z space. Other tools use a targeted approach and generate a set of theoretical isotope distributions for predicted fragments, which are then compared against the data. In contrast, rather than assigning a charge to isotope clusters, FLASHDeconv implements log-transformation and pattern scanning to identify groups of isotope peaks with the same mass but different charges. One common problem with tools for isotopic charge state assignment has been low accuracy. Tabb et al. found that different charge assignment algorithms gave significant heterogeneity in top-down proteomics searches. Examining manually annotated data with different algorithms and settings, McIlwain et al. found that there were significant tradeoffs between precision and recall, and some peaks were never assigned correctly. These studies demonstrate the need for new approaches for charge assignment in complex mass spectrometry data.