tiangzlab/omicsclaw/bulkrna-ppi-network
Claude Code and agent skill by tiangzlab/omicsclaw
- community
Checking that the SKILL.md file is still in the repository.
Load when querying STRING for the protein-protein interaction neighborhood of a bulk
Install
npx vskill@latest install tiangzlab/omicsclaw/bulkrna-ppi-networkSKILL.md
bulkrna-ppi-network
When to use
Analyze a PPI subgraph and rank hub genes from explicit interaction tables. Use bulkrna-coexpression for expression-derived networks and bulkrna-enrichment for pathways.
Use from a step
examples/example_step.py runs offline and supports fresh-kernel replay. Pure computations return objects; CLI and steps own writes.
API
<!-- api:begin generated from _api.py; regenerate with run.py api <skill dir> --write -->
analyze(data, *, genes=None, induced=False)
Rank query nodes using the CLI's unweighted neighborhood convention.
:param data: Interaction DataFrame with gene_a, gene_b and score columns; scores do not weight centrality. :param genes: Optional gene list including isolates; None uses all edge endpoints. :param induced: Default False preserves external neighbors in degree/closeness; True restricts edges to genes. :returns: A node-centrality DataFrame with degree, betweenness, closeness and hub_score. :raises ValueError: Edge columns or the node list are invalid.
fetch_interactions(data, *, species=9606, score_threshold=400)
Query STRING explicitly; unavailable or malformed responses raise.
:param data: Gene identifiers sent to the public STRING service. :param species: CLI default 9606 (human); NCBI taxonomy identifier. :param score_threshold: CLI default 400; integer confidence cutoff from 0 to 1000. :returns: A DataFrame with gene_a, gene_b and scores on STRING's 0 to 1 scale. :raises ImportError: Install requests with install_skill_deps if unavailable. :raises ValueError: Parameters or response columns are invalid. :raises Exception: Network and HTTP failures propagate without demo fallback.
run_info(data, *, keep=True)
Read topology diagnostics attached to the node table.
:param data: Centrality DataFrame returned by analyze. :param keep: Default True; the CLI removes diagnostics with False. :returns: An independent summary dictionary. :raises TypeError: data is not a DataFrame.
network_figure(data, *, genes=None, random_state=42)
Draw a seeded spring layout without changing numpy's global random state.
:param data: Edge DataFrame accepted by analyze. :param genes: Optional gene list including isolates; None uses edge endpoints. :param random_state: CLI default 42; spring-layout initialization seed. :returns: A matplotlib Figure. :raises ValueError: Edges or node list are invalid.
hubs_figure(data, *, top_n=20)
Plot the highest-ranked hub scores.
:param data: Centrality table returned by analyze. :param top_n: CLI default 20; maximum number of nodes shown. :returns: A matplotlib Figure. :raises KeyError: gene or hub_score is absent.
<!-- api:end -->
Methods and parameters
fetch_interactions explicitly queries STRING with a 0 to 1000 confidence threshold and returns 0 to 1 scores. analyze uses an unweighted graph and includes provided isolates. Hub scores combine normalized degree and betweenness. The CLI demo reads the fixed 364-edge STRING table described in data/README.md; it does not contact STRING.
Gotchas
--demoaccepts only species 9606 becausedata/demo_string_edges.csvcontains human interactions; other species require a real query.fetch_interactionspropagates HTTP/network errors and never substitutes demo edges.analyzedefaults to the CLI neighborhood convention: degree includes external neighbors, closeness visits them, and betweenness is restricted to query nodes. Use induced=True to restrict all edges to the query set.network_figuredraws query nodes only and uses seed 42 without changing the global random generator.
Inputs and outputs
tables/hub_genes.csv, tables/interaction_edges.csv, tables/node_centrality.csv, figures/hub_genes_barplot.png, figures/ppi_network.png, report.md, result.json and reproducibility/commands.sh.
CLI
See also
Dependencies
numpy, pandas, matplotlib, requests
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/bulkrna/bulkrna-ppi-network/SKILL.md
Popularity
- 7-day trend score
- 0
Refreshed 13 Oct 2026, 23 days ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tiangzlab/omicsclaw/bulkrna-ppi-network)