MSstatsShiny

MSstatsShiny is an R-Shiny graphical user interface (GUI) that integrates the MSstats, MSstatsTMT, and MSstatsPTM packages into a point-and-click, end-to-end analysis pipeline. It is applicable to a wide variety of experimental designs, including label-free and TMT-based DDA, as well as DIA, SRM, and PRM acquisitions, and designs targeting post-translational modifications (PTMs). The application walks the user through data conversion, protein summarization, group comparison, visualization, and sample-size calculation. It automatically records the user's selections and builds an R script that reproduces the analysis, supporting fully reproducible data analysis without writing code.

MSstatsShiny is part of the MSstats family of packages, developed and maintained by the Vitek Lab at Northeastern University. A hosted version is available at msstatsshiny.com, and the package and its documentation are also available at msstats.org.

Installation

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("MSstatsShiny")

The development version can be installed directly from this repository:

remotes::install_github("Vitek-Lab/MSstatsShiny")

Note: R >= 4.4 is required. On Windows you must also install Rtools. See the step-by-step tutorial below for troubleshooting tips (e.g. lme4 or Bioconductor release issues).

Quick Start

library(MSstatsShiny)

# Launch the point-and-click app locally
launch_MSstatsShiny()

Alternatively, use the hosted app at msstatsshiny.com. The online version limits input files to 100 MB, so we recommend a local installation for large datasets.

Supported Tools and Experiment Types

MSstatsShiny drives the same converters and statistical models as the underlying MSstats family of packages, exposed through the GUI:

See the step-by-step tutorial for a worked FragPipe DIA example, and the vignettes for the full list of options.

Documentation

Getting Help / Reporting Bugs


Step-by-step GUI Tutorial

This tutorial will walk through the steps on MSstatsShiny for performing differential abundance analysis for a dataset from Fragpipe. We use a case study of a DIA experiment that was analyzed using the FragPipe computational tool. The dataset originates from a clear cell renal cell carcinoma (ccRCC) study described in this paper. In the original study, researchers from the CPTAC profiled tumor (T) samples, together with normal adjacent tissue (NAT) samples from each cancer patient, indicating a paired design.

Step 1: Installation

All datasets for this tutorial can be found at this link

Install MSstatsShiny using the instructions below:

if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("MSstatsShiny")
BiocManager::install(version = '3.20', force = TRUE)
BiocManager::install('MSstatsShiny', version = '3.20', force = TRUE)
install.packages("lme4", type = "source")
devtools::install_github("Vitek-Lab/MSstatsShiny", build_vignettes = TRUE)

Online

The online application is located at http://www.msstatsshiny.com/. The online version is constrained to processing only input files smaller than 100 MB; therefore, we recommend processing large datasets using a local installation.

Load Package

library(MSstatsShiny)

Launch MSstatsShiny

MSstatsShiny::launch_MSstatsShiny()

Step1A

Click the Run MSstats Pipeline button to move to the data upload step.

Step 2: Data Upload

Biological Question & Data Type

For this dataset, keep the default setting of Protein for the biological question and Label-Free for the label type.

Step2A

Type of File

This is where you select the tool that you used to produce ID/quant. For this case study, select Fragpipe for the type of file.

Step2B

Attach Quantification Dataset

Each tool produces a quantification report that can be uploaded to MSstatsShiny to begin data conversion. For example, Fragpipe has this tutorial where you can export your quantifications in the format of MSstats.

Upload msstats.csv from this link as the quantification dataset. Keep the default setting of comma for column separator.

Step2C

Upload Annotation File

The annotation file defines the experimental design, notably which BioReplicate and Condition are associated with a particular MS run. You can see annotation.csv from this link as an example of an annotation file.

Because the experiment is paired, assign the same BioReplicate ID to the tumour and NAT runs originating from the same patient. This signals the paired design to MSstats. The image below illustrates how the annotation file is set up for paired designs.

Step2D

Select the options for pre-processing

After attaching the dataset, the upload button should be enabled.

Step2E

Output

You should see a summary of your dataset and the top 6 rows of your dataset. Click Next step to proceed to data processing.

Step 3: Data Processing

Step3A

Log Transformation

Because MS data is naturally left skewed, we log transform our intensities to bring intensities closer to a normal distribution. Although the distribution of our data may not be perfectly normally distributed after this transformation, the Central Limit Theorem guarantees that our statistical methods should perform adequately with any distribution given a large enough sample size.

Normalization

Reference: Kohler et al, Nature Protocols, 2024

For this case study, we will use the equalize medians option because we assume most proteins will not change in abundance across conditions.

Feature Subset

Recall that a feature is a transition in SRM/PRM, a fragment in DIA, and a precursor in DDA for a particular peptide.

For this case study, we will use all features, but later, we can use Remove uninformative features & outliers and assess profile plots & differences in differential abundance analysis results.

Missing Values

Assumptions for missing values

Different data processing tools have different ways of reporting missing values.

For our dataset, select Assume all NA as censored. Fragpipe only reports NAs, which we will assume are values missing at low abundance.

Max quantile for censored

Reference: Figure 3 in Kohler et al, JPR, 2023.

For this study, we will leave this unchecked and keep the default threshold.

Imputation

For this study, we will apply imputation. But we can also observe how intensities increase if we do not apply imputation.

Summarization

Other Parameters

Click Run protein summarization to start processing your data. You should see a progress bar upon clicking.

Data Processing Results

After data processing is complete, click Update Summarized Results to see a table of summarized protein log intensity values.

Step4A

You can download protein and feature level intensity values at the Download Data tab.

Step4E

Step 4: Data Processing Plots

On the Summarization Plots tab, there are two types of plots:

We first assess QC plots. Under the Select plot type dropdown, click Quality Control Plots. Under the Show plot for dropdown, click the ALL PROTEINS option. We should expect to see the medians of these boxplots to be equal.

Step4B

We next assess profile plots. Under the Select plot type dropdown, click Profile Plots.

Under the Feature legend dropdown, click the option Transition level. Under the Show plot for dropdown, click the protein O43242.

Lower-abundance features show greater variation and contain more imputed values, indicated by the open circles.

Step4C

Click the checkbox show plot with summary. This will show the summarized value based on Tukey’s median polish for each run.

Step4D

Step 5: Group Comparison

For now, we will use Create custom pairwise comparisons to directly compare the control condition with the tumor condition. Click the Add button to confirm the contrast.

Step5A

Note: You will also see a button at the top Download analysis code. After performing statistical analysis, you can click this button to download the R code that was used to perform the whole analysis. This is useful for reproducibility and for users who want to run the analysis outside the Shiny app.

The significance level toggle acts as a filter to only proteins with an adjusted pvalue below a user-defined threshold. Next, click the Start button to begin the statistical analysis. This should trigger a progress bar.

Step5B

You should see a table to the right displaying the statistical results. There are the following columns:

Step 6: Comparison Plots

For this tutorial, we will plot a volcano plot. Select Volcano plot as your plot type. Then select T vs NAT for the Select comparison to plot dropdown. Click View plot in browser to generate graphs.

Step6A

Going back to the data processing step, take a look at the profile plots for protein Q16795.

Rerun Data Processing - Feature Selection

Process the data again but with the Remove uninformative features & outliers option selected. Repeat steps 2-6 and observe what happens to protein Q5HYK3.

What do you notice about the differences in the profile plots? How does this affect the differential abundance analysis results?

Step 7: Sample Size Calculation

In the 4. Future Experiments tab, to illustrate the relationship of desired fold change and the calculated minimal number sample size to reproduce the desired fold change in a new experiment, we can consider 2 factors:

Tune the parameters of FDR and power. You will notice:

Step7A

Switching to the power parameter, you can determine the power for a desired fold change given a predetermined sample size. This is especially useful if you're an experimentalist with a fixed number of samples and you want to know the power of your experiment to expect to detect a certain fold change.

Step7B


References

If you use MSstatsShiny, please cite:

  1. Kohler D, Kaza M, Pasi C, Huang T, Staniak M, Mohandas D, Sabido E, Choi M, Vitek O. MSstatsShiny: A GUI for Versatile, Scalable, and Reproducible Statistical Analyses of Quantitative Proteomic Experiments. J Proteome Res. 2023;22(2):551-556. DOI: 10.1021/acs.jproteome.2c00603

Funding

MSstats development has been supported by the Chan Zuckerberg Initiative's Essential Open Source Software for Science.

License

MSstatsShiny is released under the Artistic-2.0 license.