STRING Network Analysis
After functional enrichment input preparation, the next step is STRING network analysis.
Functional enrichment summarizes proteins into biological functions. STRING network analysis adds another layer by asking whether the proteins are connected through known or predicted protein-protein associations.
In this results-first proteomics workflow, STRING analysis begins from cleaned identifiers and ranked differentially abundant proteins.
Starting Point
This chapter uses the STRING input created in Chapter 07:
results/string-network-input.tsv
This file was generated by:
Rscript scripts/R/07-clean-protein-identifiers.R \
results/ranked-significant-proteins.tsv \
resultsIt contains a practical identifier column:
string_identifier
along with supporting columns such as:
primary_protein_id
gene_symbol_clean
protein_id_original
identifier_status
regulation
Why STRING Analysis Matters
A protein list can be biologically meaningful even before network analysis, but network analysis helps answer an additional question:
Are these proteins functionally connected?
STRING can help reveal:
protein-protein association clusters
functional modules
hub proteins
pathway-level organization
shared biological processes
This is useful after differential abundance filtering and functional enrichment.
What STRING Adds
GO enrichment asks:
Which functions are overrepresented?
STRING analysis asks:
Do the proteins form a connected network?
Together, they support stronger biological interpretation.
For example:
GO enrichment may suggest mitochondrial translation.
STRING may show that several ribosomal or mitochondrial proteins form a connected module.
Expected Input
The expected input is:
results/string-network-input.tsv
This table should contain:
string_identifier
The script also preserves useful columns when available:
rank
primary_protein_id
gene_symbol_clean
regulation
Output Files
The STRING preparation script creates:
results/
├── string-input-all.tsv
├── string-input-upregulated.tsv
├── string-input-downregulated.tsv
├── string-upload-list-all.txt
├── string-upload-list-upregulated.txt
├── string-upload-list-downregulated.txt
└── string-network-summary.tsv
These outputs can be used for manual upload to STRING or as structured inputs for later automated API-based workflows.
STRING Preparation Script
The executable script is saved as:
scripts/R/09-prepare-string-network-input.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/09-prepare-string-network-input.R \
results/string-network-input.tsv \
resultsThe arguments are:
1st argument → STRING network input table
2nd argument → output directory
Output 1: All STRING Input
The all-protein STRING table is:
results/string-input-all.tsv
This file contains all usable STRING identifiers from the significant protein set.
It preserves ranking and regulation columns when available.
Output 2: Upregulated STRING Input
The upregulated STRING table is:
results/string-input-upregulated.tsv
This file contains identifiers for proteins classified as upregulated.
For the running example:
upregulated → higher abundance in treated
Output 3: Downregulated STRING Input
The downregulated STRING table is:
results/string-input-downregulated.tsv
This file contains identifiers for proteins classified as downregulated.
For the running example:
downregulated → lower abundance in treated
Output 4: Upload Lists
The plain-text upload lists are:
results/string-upload-list-all.txt
results/string-upload-list-upregulated.txt
results/string-upload-list-downregulated.txt
These files contain one identifier per line.
They are useful for manual upload to STRING or other network tools.
Output 5: STRING Network Summary
The summary file is:
results/string-network-summary.tsv
It records:
total identifiers
upregulated identifiers
downregulated identifiers
unique identifiers
missing identifiers removed
This summary is a checkpoint before network interpretation.
Manual STRING Workflow
A simple manual workflow is:
Open STRING
↓
Choose Multiple Proteins
↓
Paste identifiers from string-upload-list-all.txt
↓
Select organism
↓
Run network search
↓
Export network image and interaction table
The organism selection is important. The same gene symbol may mean different things in different organisms.
Recommended STRING Settings to Record
For reproducibility, record:
organism
identifier type
minimum interaction score
network edge meaning
active interaction sources
date accessed
STRING version if available
A reproducible project should not only save the final image. It should also save the parameters used to generate the network.
Interpreting STRING Networks
When reviewing a STRING network, consider:
Are proteins connected more than expected?
Are there visible clusters?
Are upregulated and downregulated proteins separated?
Are hub proteins present?
Do clusters match GO enrichment themes?
Are there isolated proteins?
Network patterns should be interpreted together with differential abundance and enrichment results.
Hub Proteins
Highly connected proteins can be biologically interesting, but they should be interpreted carefully.
A hub protein may represent:
a true central biological regulator
a well-studied protein with many known interactions
a large protein complex component
a database bias
Network centrality is useful, but it is not proof of mechanism.
Upregulated and Downregulated Networks
It can be useful to analyze:
all significant proteins
upregulated proteins only
downregulated proteins only
Separate networks may reveal direction-specific biology.
For example:
upregulated network → stress response module
downregulated network → metabolic module
Relationship to Visualization
STRING network images can be included later in the visualization and final report chapters.
The outputs from this chapter support:
network tables
network upload lists
network screenshots
network interpretation summaries
Looking Ahead
The next chapter focuses on visualizing proteomics results.
STRING-ready identifiers
↓
STRING network input files
↓
Network analysis
↓
Visualization
↓
Biological interpretation