PTMProphet is designed to compute probabilities that variable mass modifications on the PSMs are correctly localized via Bayesian models. PTMProphet performs this task by reading the pepXML output of iProphet (or PeptideProphet) and the mzML files from which the identifications are derived, and then consider all the allowed permutations of mass modifications to assign a probability for each possible site. The most common use case is for phosphorylation-enriched datasets, where the location of one or more phosphate groups is permuted to all possibilities for each PSM and probabilities computed based on the spectral evidence. Probabilities that are all identical on a PSM (e.g., 0.5, 0.5 for two potential sites, 0.33, 0.33, 0.33 for three potential sites) indicate no discriminating evidence of location in the PSM, while probabilities near 0.0 indicate confidence that the PTM is not at a particular site, and probabilities near 1.0 indicate high confidence that the PTM is at that site. Use of decoy amino acids when searching and processing with PTMProphet is encouraged. PTMProphet is not limited to phosphorylation, but may be applied to any mass modifications (e.g., acetylation on n-termini or lysine, oxidation on M or W or H, or deamidation on N or Q) separately or in combination. As with iProphet, the PTMProphet model results are added to the pepXML in a cumulative manner.