STRING protein interaction analysis with omicverse
Overview
Invoke this skill when the user has a list of genes and wants to explore STRING protein–protein interactions via omicverse. The
workflow mirrors t_network.ipynb, covering species selection, S
TRING API queries, and quick visualisation of the resulting network.
Instructions
- Set up libraries
- Import
omicverse as ov and call ov.utils.ov_plot_set() (or ov.plot_set()) to match omicverse aesthetics.
- Collect gene inputs
- Accept a curated list of gene symbols (
gene_list = [...]).
- Encourage the user to flag priority genes or categories so you can colour-code groups in the plot.
- Assign metadata for plotting
- Build dictionaries mapping genes to types and colours, e.g.
gene_type_dict = dict(zip(gene_list, ['Type1']*5 + ['Type2']*6 )) and gene_color_dict = {...}.
- Remind users that consistent group labels improve legend readability.
- Query STRING interactions
- Call
ov.bulk.string_interaction(gene_list, species_id) where species_id is the NCBI taxonomy ID (e.g. 4932 for yeast).
- Inspect the resulting DataFrame for combined scores and evidence channels to verify coverage.
- Construct the network object
- Initialise
ppi = ov.bulk.pyPPI(gene=gene_list, gene_type_dict=..., gene_color_dict=..., species=species_id).
- Run
ppi.interaction_analysis() to fetch and cache STRING edges.
- Visualise the network
- Generate a default plot with
ppi.plot_network() to reproduce the notebook figure.
- Mention that advanced styling (layout, node size, legends) can be tuned through
ov.utils.plot_network keyword arguments if
the user requests adjustments.
- Troubleshooting
- Ensure gene symbols match the species—STRING expects case-sensitive identifiers; suggest mapping Ensembl IDs to symbols when
queries fail.
- If the API rate-limits, instruct the user to wait or provide a cached interaction table.
- For missing interactions, recommend enabling STRING's "add_nodes" option via
ppi.interaction_analysis(add_nodes=...) to exp
and the network.
Examples
- "Retrieve STRING interactions for FAA4 and plot the network highlighting two gene classes."
- "Download the STRING edge table for my Saccharomyces cerevisiae gene panel and colour nodes by module."
- "Extend the network by adding the top five predicted partners before plotting."
References
Referenced Files
The following files are referenced in this skill and included for context.
reference.md
# STRING PPI quick commands
```python
import omicverse as ov
ov.utils.ov_plot_set()
gene_list = ['FAA4', 'POX1', 'FAT1', 'FAS2', 'FAS1', 'FAA1', 'OLE1', 'YJU3', 'TGL3', 'INA1', 'TGL5']
gene_type_dict = dict(zip(gene_list, ['Type1'] * 5 + ['Type2'] * 6))
gene_color_dict = dict(zip(gene_list, ['#F7828A'] * 5 + ['#9CCCA4'] * 6))
G_res = ov.bulk.string_interaction(gene_list, 4932)
print(G_res.head())
ppi = ov.bulk.pyPPI(gene=gene_list,
gene_type_dict=gene_type_dict,
gene_color_dict=gene_color_dict,
species=4932)
ppi.interaction_analysis()
ppi.plot_network()