MSstatsPTM is an R/Bioconductor package for statistical relative quantification of post-translational modifications (PTMs) in mass spectrometry-based proteomics experiments. It supports label-free DDA, DIA, and SRM workflows as well as tandem mass tag (TMT) labeling. The analysis jointly models the abundance of modified peptides (PTM sites) and their corresponding unmodified proteins, then adjusts the PTM-level changes for changes in overall protein abundance so that detected differences reflect genuine changes in modification stoichiometry rather than changes in protein expression. MSstatsPTM provides functions for summarization, estimation of PTM-site abundance, and detection of changes in PTMs across experimental conditions.
MSstatsPTM is part of the MSstats family of packages, developed and maintained by the Vitek Lab at Northeastern University. The package and its documentation are also available at msstats.org.
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("MSstatsPTM")
The development version can be installed directly from this repository:
remotes::install_github("Vitek-Lab/MSstatsPTM")
library(MSstatsPTM)
# Example label-free PTM + unmodified-protein data
data(raw.input)
# Summarize PTM and protein data to run level
summary <- dataSummarizationPTM(raw.input, use_log_file = FALSE)
# Define the comparison of interest
comparison <- matrix(c(-1, 0, 1, 0), nrow = 1)
row.names(comparison) <- "CCCP-Ctrl"
colnames(comparison) <- c("CCCP", "Combo", "Ctrl", "USP30_OE")
# Model PTM and protein levels, adjusting PTMs for protein abundance
model <- groupComparisonPTM(summary,
ptm_label_type = "LF",
protein_label_type = "LF",
contrast.matrix = comparison,
use_log_file = FALSE)
head(model$ADJUSTED.Model)
Real experiments typically start by converting a search tool's output into
MSstatsPTM format with one of the *toMSstatsPTMFormat() converters below, then
proceed with dataSummarizationPTM() and groupComparisonPTM() as above. See
the vignettes for complete, tool-specific examples.
MSstatsPTM does not read raw search-tool output directly. Instead, a converter
translates each tool's PTM and protein reports into MSstatsPTM format before
dataSummarizationPTM() is called:
| Search tool / format | Converter function |
|---|---|
| Skyline | SkylinetoMSstatsPTMFormat() |
| MaxQuant | MaxQtoMSstatsPTMFormat() |
| Progenesis | ProgenesistoMSstatsPTMFormat() |
| Spectronaut | SpectronauttoMSstatsPTMFormat() |
| Proteome Discoverer | PDtoMSstatsPTMFormat() |
| DIA-NN | DIANNtoMSstatsPTMFormat() |
| FragPipe | FragPipetoMSstatsPTMFormat() |
| Metamorpheus | MetamorpheusToMSstatsPTMFormat() |
| Protein Prospector | ProteinProspectortoMSstatsPTMFormat() |
| Peak Studio | PStoMSstatsPTMFormat() |
See the label-free and TMT workflow vignettes for the required input files and options for each converter.
If you use MSstatsPTM, please cite:
MSstats development has been supported by the Chan Zuckerberg Initiative's Essential Open Source Software for Science.
MSstatsPTM is released under the Artistic-2.0 license.