Main Site ↗

string-protein-interaction-analysis-with-omicverse

by Starlitnightly93596GitHub

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.

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Target Audience

Bioinformatics researchers and data scientists working with gene expression data who need to analyze protein interaction networks

9/10Security

Low security risk, safe to use

8
Clarity
7
Practicality
8
Quality
7
Maintainability
6
Innovation
Data
bioinformaticsprotein-interactiondata-visualizationstring-db
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/
SKILL.md

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

  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


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()

Source: https://github.com/Starlitnightly/omicverse#.claude~skills~bulk-stringdb-ppi

Content curated from original sources, copyright belongs to authors

Grade A
7.5AI Score
Best Practices
Checking...
Try this Skill

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose