string-protein-interaction-analysis-with-omicverse
Help Claude query STRING for protein interactions, build PPI graphs with pyPPI, and render styled network figures for bulk gene lists.
$ Installer
git clone https://github.com/Starlitnightly/omicverse /tmp/omicverse && cp -r /tmp/omicverse/.claude/skills/bulk-stringdb-ppi ~/.claude/skills/omicverse// tip: Run this command in your terminal to install the skill
SKILL.md
name: string-protein-interaction-analysis-with-omicverse title: STRING protein interaction analysis with omicverse description: Help Claude query STRING for protein interactions, build PPI graphs with pyPPI, and render styled network figures for bulk gene lists.
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 ovand callov.utils.ov_plot_set()(orov.plot_set()) to match omicverse aesthetics.
- Import
- 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.
- Accept a curated list of gene symbols (
- 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 ))andgene_color_dict = {...}. - Remind users that consistent group labels improve legend readability.
- Build dictionaries mapping genes to types and colours, e.g.
- Query STRING interactions
- Call
ov.bulk.string_interaction(gene_list, species_id)wherespecies_idis the NCBI taxonomy ID (e.g. 4932 for yeast). - Inspect the resulting DataFrame for combined scores and evidence channels to verify coverage.
- Call
- 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.
- Initialise
- 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_networkkeyword arguments if the user requests adjustments.
- Generate a default plot with
- 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
- Tutorial notebook:
t_network.ipynb - STRING background: string-db.org
- Quick copy/paste commands:
reference.md
Repository

Starlitnightly
Author
Starlitnightly/omicverse/.claude/skills/bulk-stringdb-ppi
783
Stars
95
Forks
Updated4d ago
Added5d ago