OpenClaw-Medical-Skills 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.
install
source · Clone the upstream repo
git clone https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bulk-stringdb-ppi" ~/.claude/skills/freedomintelligence-openclaw-medical-skills-string-protein-interaction-analysis- && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bulk-stringdb-ppi" ~/.openclaw/skills/freedomintelligence-openclaw-medical-skills-string-protein-interaction-analysis- && rm -rf "$T"
manifest:
skills/bulk-stringdb-ppi/SKILL.mdsource content
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
, covering species selection, S
TRING API queries, and quick visualisation of the resulting network.t_network.ipynb
Instructions
- Set up libraries
- Import
and callomicverse as ov
(orov.utils.ov_plot_set()
) to match omicverse aesthetics.ov.plot_set()
- 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.
andgene_type_dict = dict(zip(gene_list, ['Type1']*5 + ['Type2']*6 ))
.gene_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
whereov.bulk.string_interaction(gene_list, species_id)
is the NCBI taxonomy ID (e.g. 4932 for yeast).species_id - 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
to fetch and cache STRING edges.ppi.interaction_analysis()
- Initialise
- Visualise the network
- Generate a default plot with
to reproduce the notebook figure.ppi.plot_network() - Mention that advanced styling (layout, node size, legends) can be tuned through
keyword arguments if the user requests adjustments.ov.utils.plot_network
- 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
to exp and the network.ppi.interaction_analysis(add_nodes=...)
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