MSstatsResponse is an R/Bioconductor package for semi-parametric protein response modeling of mass spectrometry-based proteomics experiments. It is designed for dose-response chemoproteomics — detecting drug-protein interactions and estimating IC50 values — using isotonic regression, F-tests, and bootstrap-based confidence intervals rather than assuming a fixed parametric curve shape. The same framework applies to protein turnover kinetics (synthesis/degradation curves and half-life estimation) and, more generally, to any assay whose response follows a monotonic trend with a dose, concentration, time, or temperature. MSstatsResponse is applicable to DIA, DDA, TMT, and targeted SRM workflows.
MSstatsResponse 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("MSstatsResponse")
The development version can be installed directly from this repository:
remotes::install_github("Vitek-Lab/MSstatsResponse")
library(MSstatsResponse)
# Example DIA data, already summarized to protein level and normalized
data("DIA_MSstats_Normalized")
# Standardize the data for dose-response modeling
prepared <- MSstatsPrepareDoseResponseFit(
data = DIA_MSstats_Normalized$ProteinLevelData,
dose_column = "dose_nM",
drug_column = "drug",
protein_column = "Protein",
log_abundance_column = "LogIntensities",
transform_nM_to_M = TRUE
)
# Detect drug-protein interactions via isotonic regression + F-test
results <- doseResponseFit(prepared, increasing = FALSE, transform_dose = TRUE)
# Estimate IC50 values with bootstrap confidence intervals
ic50 <- predictIC50(prepared,
increasing = FALSE,
transform_dose = TRUE,
ratio_response = TRUE,
bootstrap = TRUE,
n_samples = 1000)
MSstatsResponse works on summarized protein-level data, not raw search-tool output. It is compatible with the output of the standard MSstats and MSstatsTMT summarization steps:
| Upstream package | Summarization function | Field used |
|---|---|---|
| MSstats | dataProcess() |
$ProteinLevelData |
| MSstatsTMT | proteinSummarization() |
$ProteinLevelData |
MSstatsPrepareDoseResponseFit() accepts any data frame with columns for the
dose/concentration/time (x-axis), a protein/gene/peptide identifier, the
log-abundance response (y-axis), and — for multi-drug experiments — a drug
identifier. This makes the workflow extensible to other assays with a monotonic
response, including protein turnover kinetics. See the vignette for details on
each required column.
If you use MSstatsResponse, please cite:
MSstats development has been supported by the Chan Zuckerberg Initiative's Essential Open Source Software for Science.
MSstatsResponse is released under the Artistic-2.0 license.