string-protein-interaction-analysis-with-omicverse
This skill enables Claude to query STRING database for protein-protein interactions, build network graphs with pyPPI, and generate styled visualizations for gene lists. It provides step-by-step instructions for species selection, metadata assignment, and troubleshooting common issues like API rate limits.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install starlitnightly-omicverse-bulk-stringdb-ppi
Repository
Skill path: .claude/skills/bulk-stringdb-ppi
This skill enables Claude to query STRING database for protein-protein interactions, build network graphs with pyPPI, and generate styled visualizations for gene lists. It provides step-by-step instructions for species selection, metadata assignment, and troubleshooting common issues like API rate limits.
Open repositoryBest for
Primary workflow: Analyze Data & AI.
Technical facets: Data / AI, Backend.
Target audience: Bioinformatics researchers and data scientists working with gene expression data who need to analyze protein interaction networks.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: Starlitnightly.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install string-protein-interaction-analysis-with-omicverse into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/Starlitnightly/omicverse before adding string-protein-interaction-analysis-with-omicverse to shared team environments
- Use string-protein-interaction-analysis-with-omicverse for data workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw 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`](../../omicverse_guide/docs/Tutorials-bulk/t_network.ipynb), covering species selection, S
TRING API queries, and quick visualisation of the resulting network.
## Instructions
1. **Set up libraries**
- Import `omicverse as ov` and call `ov.utils.ov_plot_set()` (or `ov.plot_set()`) to match omicverse aesthetics.
2. **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.
3. **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.
4. **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.
5. **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.
6. **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.
7. **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`](../../omicverse_guide/docs/Tutorials-bulk/t_network.ipynb)
- STRING background: [string-db.org](https://string-db.org/)
- Quick copy/paste commands: [`reference.md`](reference.md)
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### reference.md
```markdown
# 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()
```
```