Visualizing Proteomics Results

Published

Jun 2026

After filtering, ranking, identifier cleaning, enrichment input preparation, and STRING input preparation, the next step is visualization.

Visualization helps communicate the main proteomics results clearly.

In this results-first workflow, the goal is not to create every possible plot. The goal is to create a small set of reproducible figures that support interpretation and reporting.

Starting Point

This chapter uses outputs created in earlier chapters:

results/differential-proteins.tsv
results/ranked-significant-proteins.tsv
results/differential-summary.tsv

The main input is:

results/differential-proteins.tsv

This file was generated by Chapter 05:

Rscript scripts/R/05-filter-differential-proteins.R \
  data/example/example-proteomics-results.csv \
  results \
  1 \
  0.05

Why Visualization Matters

Tables are important, but figures make patterns easier to see.

Visualization helps answer:

How many proteins changed?
        ↓
How strong were the changes?
        ↓
Which proteins are most significant?
        ↓
Are changes mostly upregulated or downregulated?
        ↓
Which proteins should be highlighted in the report?

Visualization also helps detect unexpected patterns before final interpretation.

Core Plots

This chapter creates three practical visualization outputs:

volcano plot
top significant proteins plot
regulation summary plot

These are common, easy to explain, and useful for reports.

Expected Input

The expected input file is:

results/differential-proteins.tsv

This table should contain:

log2fc_numeric
adjusted_p_value_numeric
is_significant
regulation

The script can also detect common alternative column names when needed.

Output Files

The visualization script creates:

results/figures/
├── volcano-plot.png
├── top-significant-proteins.png
└── regulation-summary.png

It also creates plot-ready tables:

results/
├── volcano-plot-data.tsv
├── top-significant-proteins-for-plot.tsv
└── visualization-summary.tsv

Visualization Script

The executable script is saved as:

scripts/R/10-visualize-proteomics-results.R

The guide shows how to run the script. The full executable code is maintained in scripts/R/.

Running the Script

From the project root, run:

Rscript scripts/R/10-visualize-proteomics-results.R \
  results/differential-proteins.tsv \
  results \
  10

The arguments are:

1st argument → differential proteins table
2nd argument → output directory
3rd argument → number of top proteins to label or display

In this example:

top_n = 10

Volcano Plot

The volcano plot is saved as:

results/figures/volcano-plot.png

A volcano plot shows:

x-axis → log2 fold change
y-axis → -log10 adjusted p-value

Proteins with large fold changes and small adjusted p-values appear farther from the origin.

The plot helps show whether the result contains:

strong upregulated proteins
strong downregulated proteins
many weak changes
few strong changes

Volcano Plot Data

The volcano plot data is saved as:

results/volcano-plot-data.tsv

This file includes:

log2fc_numeric
adjusted_p_value_numeric
minus_log10_adjusted_p_value
regulation
is_significant

Saving plot-ready data improves reproducibility because the figure can be regenerated or reviewed later.

Top Significant Proteins Plot

The top protein plot is saved as:

results/figures/top-significant-proteins.png

This figure shows the highest-priority significant proteins based on adjusted p-value and absolute fold change.

It is useful for quick biological review.

The associated table is:

results/top-significant-proteins-for-plot.tsv

Regulation Summary Plot

The regulation summary plot is saved as:

results/figures/regulation-summary.png

This plot summarizes the number of proteins classified as:

upregulated
downregulated
not_significant

It provides a simple overview of the filtering outcome.

Labeling Proteins

Protein labels are useful, but too many labels can make a plot unreadable.

This workflow uses a simple approach:

label only the top N significant proteins

The default is:

top_n = 10

For larger datasets, the number can be adjusted.

Visualization Is Not Interpretation

Figures help communicate results, but they do not replace biological interpretation.

For example, a volcano plot can show that a protein changed strongly.

It cannot explain:

why the protein changed
which pathway is affected
whether the change is mechanistic
whether the protein is part of a network

Those questions are addressed in the biological interpretation chapter.

Suggested Manual Review

After generating figures, inspect:

Are the axes correct?
Are p-values transformed correctly?
Are labels readable?
Are upregulated and downregulated proteins clear?
Are there unexpected outliers?
Are there too few or too many significant proteins?

A figure should be biologically useful, not just visually attractive.

Figure Use in Reports

The figures from this chapter can be used in:

summary reports
client reports
manuscript drafts
presentations
internal QC notes

The recommended report-ready figure set is:

volcano-plot.png
top-significant-proteins.png
regulation-summary.png

Relationship to Final Interpretation

Visualization supports the final interpretation system by making key results visible.

Differential results
        ↓
Filtered and ranked proteins
        ↓
Visual summaries
        ↓
Biological interpretation
        ↓
Reproducible report

Looking Ahead

The next chapter focuses on biological interpretation.

After visualization, the workflow brings together:

significant proteins
ranked proteins
cleaned identifiers
enrichment inputs
STRING inputs
figures

into an interpretation-ready structure.