Agent skill

String Database Ppi

by jaechang-hits in jaechang-hits/SciAgent-Skills

Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species).

CC-BY-4.0Auto-check passedBackend & APIs

Install String Database Ppi

skills CLI
$ npx skills add jaechang-hits/SciAgent-Skills --skill string-database-ppi -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jaechang-hits/SciAgent-Skills string-database-ppi --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/systems-biology-multiomics/string-database-ppi .claude/skills/string-database-ppi && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
string-database-ppi
GitHub stars
370
Used in
1 other repo
Token cost
~4.2k tokens
SKILL.md length
960 words
Files
2 (incl. references)
Skills in repo
163
Repo updated
First seen
Licence
CC-BY-4.0

At a glance

Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species).

  • Works in 7 steps: Identifier Mapping → Network Retrieval → Network Visualization → …
  • Tasks that involve REST APIs
  • SKILL.md covers Overview, When to Use, Prerequisites and Quick Start, plus 7 more sections
  • Calls uv; reaches string-db.org

What it does

String Database Ppi is an agent skill from jaechang-hits/SciAgent-Skills. Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species). Retrieve networks, run GO/KEGG enrichment, find partners, test PPI significance, visualize networks, analyze homology. For chemical interactions use chembl-database-bioactivity; pathways use kegg-database.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/api_advanced.md`).

It sits in Backend & APIs, covering REST APIs. The repository describes itself as: 197 bioinformatics & life science skills for Claude Code and AI agents — BixBench 92.0% accuracy. RNA-seq, single-cell, drug discovery, proteomics, and more. Powers OmicsHorizon. The licence is CC-BY-4.0.

When your agent uses it

  • Tasks that involve REST APIs

Example prompts

  • “/string-database-ppi”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Identifier Mapping
  2. Network Retrieval
  3. Network Visualization
  4. Interaction Partners
  5. Functional Enrichment
  6. PPI Enrichment Testing
  7. Homology Scores

What it can do on your machine

Read from SKILL.md and the folder at commit 82c862c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • string-db.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

String Database Ppi loads about 4.2k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 76 tokens; SKILL.md has 960 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jaechang-hits/SciAgent-Skills at commit 82c862c, republished under its CC-BY-4.0 licence (© jaechang-hits). 960 words, ~4,199 tokens.

Download SKILL.mdSave it as .claude/skills/string-database-ppi/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
string-database-ppi
description
Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species). Retrieve networks, run GO/KEGG enrichment, find partners, test PPI significance, visualize networks, analyze homology. For chemical interactions use chembl-database-bioactivity; pathways use kegg-database.
license
CC-BY-4.0

STRING Database — Protein-Protein Interactions

Overview

Query the STRING protein-protein interaction database (59M proteins, 20B+ interactions, 5000+ species) via REST API. Covers network retrieval, functional enrichment (GO, KEGG, Pfam), interaction partner discovery, PPI enrichment testing, network visualization, and homology analysis.

When to Use

  • Retrieving protein-protein interaction networks for one or multiple proteins
  • Performing functional enrichment analysis (GO, KEGG, Pfam, InterPro) on protein lists
  • Discovering interaction partners and expanding protein networks from seed proteins
  • Testing whether a set of proteins forms a significantly enriched functional module
  • Generating network visualizations with evidence-based coloring
  • Analyzing homology and protein family relationships across species
  • Identifying hub proteins and network connectivity patterns
  • For chemical compound interactions use chembl-database-bioactivity instead; for pathway-centric queries use kegg-database

Prerequisites

bash
uv pip install requests pandas

Rate limiting: No strict rate limit, but wait ~1 second between API calls. For proteome-scale analyses, use bulk downloads from https://string-db.org/cgi/download instead of the API.

Quick Start

python
import requests
import time

STRING_API = "https://string-db.org/api"

def string_query(endpoint, params, fmt="tsv"):
    """Reusable helper for all STRING API calls."""
    url = f"{STRING_API}/{fmt}/{endpoint}"
    params.setdefault("caller_identity", "python_script")
    response = requests.get(url, params=params)
    response.raise_for_status()
    return response.text

# Map gene names to STRING IDs (always do this first)
result = string_query("get_string_ids", {
    "identifiers": "TP53\nBRCA1\nEGFR",
    "species": 9606
})
print(result)

# Get interaction network
time.sleep(1)
network = string_query("network", {
    "identifiers": "TP53%0dBRCA1%0dMDM2",
    "species": 9606,
    "required_score": 400
})
print(network[:500])

Key Concepts

Common Species NCBI Taxon IDs
OrganismCommon NameTaxon ID
Homo sapiensHuman9606
Mus musculusMouse10090
Rattus norvegicusRat10116
Drosophila melanogasterFruit fly7227
Caenorhabditis elegansC. elegans6239
Saccharomyces cerevisiaeYeast4932
Arabidopsis thalianaThale cress3702
Escherichia coli K-12E. coli511145
Danio rerioZebrafish7955
Gallus gallusChicken9031

Full species list: https://string-db.org/cgi/input?input_page_active_form=organisms

STRING Identifier Format

STRING uses Ensembl protein IDs with taxon prefix: {taxonId}.{ensemblProteinId} (e.g., 9606.ENSP00000269305 for human TP53). Always map gene names to STRING IDs first via get_string_ids for faster subsequent queries.

Interaction Confidence Scores

Combined scores (0-1000) integrating 7 evidence channels:

ChannelCodeSource
NeighborhoodnscoreConserved genomic neighborhood
FusionfscoreGene fusion events
Phylogenetic profilepscoreCo-occurrence across species
CoexpressionascoreCorrelated RNA expression
ExperimentalescoreBiochemical/genetic experiments
DatabasedscoreCurated pathway/complex databases
Text-miningtscoreLiterature co-occurrence and NLP

Recommended thresholds:

  • 150: Low confidence (exploratory, hypothesis generation)
  • 400: Medium confidence (standard analysis, default)
  • 700: High confidence (conservative, fewer false positives)
  • 900: Highest confidence (very stringent, experimental evidence preferred)
Network Types
  • Functional (default): All evidence types — proteins functionally associated even without direct binding. Use for pathway analysis, enrichment, systems biology
  • Physical: Direct binding evidence only — experimental data and curated physical interactions. Use for structural studies, complex analysis
Output Formats

Replace /tsv/ in the URL with the desired format:

  • TSV: Tab-separated (default, best for data processing)
  • JSON: Structured data (/json/)
  • PNG/SVG: Network images (/image/)
  • PSI-MI/PSI-MITAB: Proteomics standard formats

Core API

1. Identifier Mapping
python
# Map gene names to STRING IDs
result = string_query("get_string_ids", {
    "identifiers": "TP53\nBRCA1\nEGFR",
    "species": 9606,
    "limit": 1,        # matches per identifier
    "echo_query": 1    # include query term in output
})

# Parse the mapping
import pandas as pd
import io
df = pd.read_csv(io.StringIO(result), sep='\t')
id_map = dict(zip(df['queryItem'], df['stringId']))
print(id_map)
# {'TP53': '9606.ENSP00000269305', 'BRCA1': '9606.ENSP00000...', ...}
2. Network Retrieval
python
# Get PPI network with confidence scores
network = string_query("network", {
    "identifiers": "TP53%0dBRCA1%0dMDM2%0dATM%0dCHEK2",
    "species": 9606,
    "required_score": 400,
    "network_type": "functional"  # or "physical"
})

# Parse network edges
time.sleep(1)
df = pd.read_csv(io.StringIO(network), sep='\t')
print(f"Found {len(df)} interactions")
print(df[['preferredName_A', 'preferredName_B', 'score']].head())

# Expand network with additional interactors
expanded = string_query("network", {
    "identifiers": "TP53",
    "species": 9606,
    "add_nodes": 10,  # add 10 most connected proteins
    "required_score": 700
})
3. Network Visualization
python
# Get PNG network image
url = f"{STRING_API}/image/network"
params = {
    "identifiers": "TP53%0dMDM2%0dATM%0dCHEK2%0dBRCA1",
    "species": 9606,
    "required_score": 700,
    "network_flavor": "evidence",  # "evidence", "confidence", or "actions"
    "caller_identity": "python_script"
}
response = requests.get(url, params=params)
with open("network.png", "wb") as f:
    f.write(response.content)
4. Interaction Partners
python
# Discover top interaction partners
partners = string_query("interaction_partners", {
    "identifiers": "TP53",
    "species": 9606,
    "limit": 20,
    "required_score": 700
})

df = pd.read_csv(io.StringIO(partners), sep='\t')
print(f"Top 20 TP53 interactors:")
print(df[['preferredName_B', 'score']].head(10))
5. Functional Enrichment
python
# GO, KEGG, Pfam, InterPro, SMART, UniProt Keywords enrichment
# Statistical method: Fisher's exact test with Benjamini-Hochberg FDR correction
enrichment = string_query("enrichment", {
    "identifiers": "TP53%0dMDM2%0dATM%0dCHEK2%0dBRCA1%0dATR%0dTP73",
    "species": 9606
})

df = pd.read_csv(io.StringIO(enrichment), sep='\t')
significant = df[df['fdr'] < 0.05]
print(f"Significant terms: {len(significant)}")

# Group by annotation category
for cat, group in significant.groupby('category'):
    print(f"\n{cat}: {len(group)} terms")
    for _, row in group.head(3).iterrows():
        print(f"  {row['description']} (FDR={row['fdr']:.2e})")
6. PPI Enrichment Testing
python
import json

# Test if proteins form a significant functional module
result = string_query("ppi_enrichment", {
    "identifiers": "TP53%0dMDM2%0dATM%0dCHEK2%0dBRCA1",
    "species": 9606,
    "required_score": 400
}, fmt="json")

data = json.loads(result)
print(f"Observed edges: {data['number_of_edges']}")
print(f"Expected edges: {data['expected_number_of_edges']}")
print(f"P-value: {data['p_value']}")
# p < 0.05 → proteins form a significantly enriched network
7. Homology Scores
python
# Get homology/similarity between proteins
homology = string_query("homology", {
    "identifiers": "TP53%0dTP63%0dTP73",
    "species": 9606
})
print(homology)

Common Workflows

Workflow 1: Protein List Analysis (Standard)
python
import requests, pandas as pd, io, json, time

STRING_API = "https://string-db.org/api"
def string_query(endpoint, params, fmt="tsv"):
    url = f"{STRING_API}/{fmt}/{endpoint}"
    params.setdefault("caller_identity", "python_script")
    response = requests.get(url, params=params)
    response.raise_for_status()
    time.sleep(1)
    return response.text

genes = "TP53%0dBRCA1%0dATM%0dCHEK2%0dMDM2%0dATR%0dBRCA2"

# Step 1: Map identifiers
mapping = string_query("get_string_ids", {"identifiers": genes.replace("%0d", "\n"), "species": 9606})

# Step 2: Get interaction network
network = string_query("network", {"identifiers": genes, "species": 9606, "required_score": 400})
net_df = pd.read_csv(io.StringIO(network), sep='\t')
print(f"Network: {len(net_df)} interactions")

# Step 3: Test PPI enrichment
ppi = json.loads(string_query("ppi_enrichment", {"identifiers": genes, "species": 9606}, fmt="json"))
print(f"PPI enrichment p-value: {ppi['p_value']}")

# Step 4: Functional enrichment
enrich = string_query("enrichment", {"identifiers": genes, "species": 9606})
enrich_df = pd.read_csv(io.StringIO(enrich), sep='\t')
sig = enrich_df[enrich_df['fdr'] < 0.05]
print(f"Significant GO/KEGG terms: {len(sig)}")

# Step 5: Save network image
img_resp = requests.get(f"{STRING_API}/image/network", params={
    "identifiers": genes, "species": 9606, "required_score": 400,
    "network_flavor": "evidence", "caller_identity": "python_script"
})
with open("protein_network.png", "wb") as f:
    f.write(img_resp.content)
Workflow 2: Network Expansion from Seed Proteins
python
# Start with seed proteins, discover connected functional modules
seed = "TP53"

# Step 1: Get high-confidence interaction partners
partners = string_query("interaction_partners", {
    "identifiers": seed, "species": 9606, "limit": 30, "required_score": 700
})
df = pd.read_csv(io.StringIO(partners), sep='\t')
all_proteins = list(set(df['preferredName_A'].tolist() + df['preferredName_B'].tolist()))
print(f"Expanded network: {len(all_proteins)} proteins")

# Step 2: Enrichment on expanded set
expanded_ids = "%0d".join(all_proteins[:50])
enrichment = string_query("enrichment", {"identifiers": expanded_ids, "species": 9606})
enrich_df = pd.read_csv(io.StringIO(enrichment), sep='\t')
modules = enrich_df[enrich_df['fdr'] < 0.001]
print(f"Highly significant terms: {len(modules)}")
Workflow 3: Cross-Species Comparison
python
# Compare protein interactions across species
for species, name, gene in [(9606, "Human", "TP53"), (10090, "Mouse", "Trp53")]:
    network = string_query("network", {
        "identifiers": gene, "species": species,
        "required_score": 700, "add_nodes": 5
    })
    df = pd.read_csv(io.StringIO(network), sep='\t')
    print(f"{name} ({gene}): {len(df)} interactions at score >= 700")

Common Recipes

Recipe: Parse Enrichment Results to DataFrame
python
import pandas as pd, io

enrichment_tsv = string_query("enrichment", {
    "identifiers": "TP53%0dBRCA1%0dATM", "species": 9606
})
df = pd.read_csv(io.StringIO(enrichment_tsv), sep='\t')
# Columns: category, term, description, number_of_genes, p_value, fdr
kegg = df[df['category'] == 'KEGG'].sort_values('fdr')
print(kegg[['description', 'fdr']].head(5))
Recipe: Batch Protein Queries with Rate Limiting
python
import time

protein_lists = [["TP53", "MDM2"], ["EGFR", "ERBB2"], ["BRCA1", "BRCA2"]]
results = []
for proteins in protein_lists:
    ids = "%0d".join(proteins)
    network = string_query("network", {"identifiers": ids, "species": 9606})
    results.append(network)
    time.sleep(1)  # respect rate limits
Recipe: Version Check for Reproducibility
python
version = string_query("version", {})
print(f"STRING version: {version.strip()}")
# Include in methods section: "STRING v{version}, accessed {date}"

Key Parameters

ParameterEndpointDefaultDescription
identifiersAll—Protein IDs, %0d-separated for URL or \n-separated for POST
speciesAll—NCBI taxon ID (9606=human, 10090=mouse)
required_scorenetwork, partners, ppi_enrichment400Confidence threshold 0-1000
network_typenetworkfunctionalfunctional (all evidence) or physical (direct binding)
add_nodesnetwork, image0Additional connected proteins to include (0-10)
limitget_string_ids, partners1/10Max results per query
network_flavorimageevidenceevidence, confidence, or actions

Troubleshooting

ProblemCauseSolution
No proteins foundWrong species or identifier typoVerify species taxon ID; use get_string_ids to check identifier mapping
Empty networkToo strict confidence thresholdLower required_score; verify proteins actually interact in STRING
Timeout on large queriesToo many proteins in single requestSplit into batches of 50-100; use bulk downloads for proteome-scale
"Species required" errorMissing species for >10 protein networksAlways include species parameter
Unexpected resultsWrong network type or STRING versionCheck network_type (functional vs physical); verify version with /version
400 Bad RequestMalformed identifiersUse %0d separator in URL or \n in POST body; URL-encode special characters
Enrichment returns no termsToo few input proteinsEnrichment needs 5+ proteins for meaningful results
Show full SKILL.md (328 more words)Show less

Best Practices

  • Always map identifiers first — use get_string_ids() before other operations; STRING IDs (e.g., 9606.ENSP00000269305) are faster than gene names
  • Rate-limit all requests — add time.sleep(1) between API calls
  • Choose appropriate thresholds — 400 for exploratory analysis, 700 for publications, 900 for high-confidence only
  • Specify species explicitly — required for networks >10 proteins, recommended always
  • Use functional networks for pathway analysis and enrichment; physical networks for structural biology and direct binding
  • Include version in methods — check string_version() for reproducibility
  • networkx-graph-analysis — Graph analysis and visualization of STRING interaction networks
  • kegg-database — Pathway-centric queries complementary to STRING enrichment
  • bioservices-multi-database — Alternative access to STRING via the PSICQUIC interface

References

Bundled Resources

Main SKILL.md + 1 reference file. Original total: 990 lines (SKILL.md 534 + string_reference.md 456). Scripts: 370 lines (string_api.py).

references/api_advanced.md: Advanced API features (values/ranks enrichment, bulk upload, R/Cytoscape integration), output format details, HTTP error codes, data license — content from original string_reference.md that exceeds Core API scope.

Original file disposition:

  • SKILL.md (534 lines) → Core API modules 1-7, Workflows 1-3, Quick Start helper function, Key Concepts (species table, score thresholds, network types). "Common Use Cases" per-operation subsections consolidated into Core API module descriptions (rule 7b): each operation's "When to use" and "Use cases" → Core API intro text. "Detailed Reference" stub section → removed, content consolidated inline
  • references/string_reference.md (456 lines) → Partially consolidated inline: API endpoints → Core API modules with code blocks; species table → Key Concepts; confidence scores → Key Concepts; identifier format → Key Concepts. Advanced features (values/ranks enrichment, bulk upload), integration examples (R STRINGdb, Cytoscape), output format details, HTTP error codes, data license → migrated to references/api_advanced.md
  • scripts/string_api.py (370 lines) → Helper function pattern absorbed into Quick Start (string_query reusable function). Per-function disposition: string_map_ids → Core API Module 1; string_network → Module 2; string_network_image → Module 3; string_interaction_partners → Module 4; string_enrichment → Module 5; string_ppi_enrichment → Module 6; string_homology → Module 7; string_version → Recipe. All were thin wrappers around urllib; replaced with requests-based string_query helper

Retention: ~460 lines (SKILL.md) + ~180 lines (reference) = ~640 / 990 original = ~65%.

© jaechang-hits, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/systems-biology-multiomics/string-database-ppi of jaechang-hits/SciAgent-Skills.

  • SKILL.md
  • references/api_advanced.md

Open the folder on GitHubat commit 82c862c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in jaechang-hits/SciAgent-Skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

String Database Ppi next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

String Database Ppi compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
String Database Ppi this skilljaechang-hits/SciAgent-Skills3701 repos~4.2kAutomated safety check: PassCC-BY-4.0
Pdbe APIpemsley/coot168—~7.5kAutomated safety check: PassGPL-3.0
Uniprot Databaseaipoch/medical-research-skills2k—~1.3kAutomated safety check: PassMIT
Bio Clinical Databases Clinvar LookupFreedomIntelligence/OpenClaw-Medical-Skills3.1k—~1.4kAutomated safety check: PassNone
Ena Databaseaipoch/medical-research-skills2k—~1.9kAutomated safety check: PassMIT
Pride Databasemajiayu000/claude-skill-registry6662 repos~8.2kAutomated safety check: PassApache-2.0

Similar skills

  • Pdbe API

    pemsley/coot

    Query the PDBe (Protein Data Bank in Europe) REST API and Solr search API from within Coot to access structure metadata, validation data, revision history, search capabilities, and download…

    168 GitHub stars~7.5k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Uniprot Database

    aipoch/medical-research-skills

    Direct REST API access to UniProt for protein search, entry retrieval, and identifier mapping; use when you need programmatic UniProtKB queries or cross-database ID conversion.

    2k GitHub stars~1.3k tokensUpdated 21 days ago
    Backend & APIsAuto-check passed
  • Bio Clinical Databases Clinvar Lookup

    FreedomIntelligence/OpenClaw-Medical-Skills

    Query ClinVar for variant pathogenicity classifications, review status, and disease associations via REST API or local VCF.

    3.1k GitHub stars~1.4k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Ena Database

    aipoch/medical-research-skills

    Access the European Nucleotide Archive (ENA) via REST APIs and FTP/Aspera to search and retrieve sequences, raw reads (FASTQ), assemblies, and metadata when you have accession IDs or need…

    2k GitHub stars~1.9k tokensUpdated 21 days ago
    Backend & APIsAuto-check passed
  • Pride Database

    majiayu000/claude-skill-registry

    Search the PRIDE Archive v3 REST API for proteomics datasets: discover projects by keyword + faceted filters (organism, instrument, disease, software), fetch project metadata, list and download…

    666 GitHub starsUsed in 2 repos~8.2k tokens
    Backend & APIsAuto-check passed
  • Claude To Medrixflow

    Citrus-bit/Anaxa

    Interact with MedrixFlow AI agent platform via its HTTP API.

    120 GitHub stars~1.7k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed

More from jaechang-hits/SciAgent-Skills

All 163 skills in this repo
  • Molecular Visualization 3dmol

    jaechang-hits/SciAgent-Skills

    3Dmol.js WebGL molecular visualization emitted as self-contained HTML.

    370 GitHub stars~3.2k tokensUpdated 9 days ago
    Auto-check passed
  • Cobrapy Metabolic Modeling

    jaechang-hits/SciAgent-Skills

    Constraint-based (COBRA) analysis of genome-scale metabolic models: FBA, FVA, knockouts, flux sampling, production envelopes, gapfilling, media optimization.

    370 GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed
  • Rdkit Chemdraw Cdxml

    jaechang-hits/SciAgent-Skills

    Read, write, and edit ChemDraw CDX/CDXML files with RDKit's rdkit.Chem.rdChemDraw plus direct XML editing, always paired with a rendered PNG.

    370 GitHub stars~6.9k tokensUpdated 9 days ago
    Auto-check passed
  • Pubmed Database

    jaechang-hits/SciAgent-Skills

    Programmatic PubMed access via NCBI E-utilities REST API. An agent skill from jaechang-hits/SciAgent-Skills.

    370 GitHub starsUsed in 1 repo~4.4k tokens
    Auto-check passed
  • Sciagent Skill Creator

    jaechang-hits/SciAgent-Skills

    Scaffold a new SciAgent-Skills entry. An agent skill from jaechang-hits/SciAgent-Skills.

    370 GitHub stars~2.3k tokensUpdated 9 days ago
    Auto-check passed
  • Anndata Data Structure

    jaechang-hits/SciAgent-Skills

    Annotated matrices for single-cell genomics. An agent skill from jaechang-hits/SciAgent-Skills.

    370 GitHub starsUsed in 2 repos~5.8k tokens
    Auto-check passed

Questions about String Database Ppi

What does String Database Ppi do?

Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species). String Database Ppi is an agent skill from jaechang-hits/SciAgent-Skills. Query STRING REST API for PPIs (59M proteins, 20B interactions, 5000+ species).

When should I use String Database Ppi?

String Database Ppi fits situations like: tasks that involve REST APIs.

How do I install String Database Ppi in Claude Code?

Run `npx skills add jaechang-hits/SciAgent-Skills --skill string-database-ppi -a claude-code`. Or copy the skill folder (skills/systems-biology-multiomics/string-database-ppi in jaechang-hits/SciAgent-Skills) into .claude/skills/string-database-ppi in your project. Claude Code loads it when a task matches its description.

How do I install String Database Ppi in Codex?

Run `npx skills add jaechang-hits/SciAgent-Skills --skill string-database-ppi -a codex`. Or copy the skill folder (skills/systems-biology-multiomics/string-database-ppi in jaechang-hits/SciAgent-Skills) into .agents/skills/string-database-ppi in your project. Codex loads it when a task matches its description.

Can I use String Database Ppi in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jaechang-hits/SciAgent-Skills --skill string-database-ppi -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/string-database-ppi, .gemini/skills/string-database-ppi, .github/skills/string-database-ppi and .opencode/skills/string-database-ppi in your project.

What does String Database Ppi need to run?

Going by SKILL.md and its folder, String Database Ppi needs the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does String Database Ppi access the network?

SKILL.md names 1 domain. In commands or code: string-db.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is String Database Ppi safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does String Database Ppi use?

String Database Ppi is published under the CC-BY-4.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does String Database Ppi use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.

What are the alternatives to String Database Ppi?

Skills that share tags, products or a category with String Database Ppi: Pdbe API (pemsley/coot, 168 stars), Uniprot Database (aipoch/medical-research-skills, 2k stars), Bio Clinical Databases Clinvar Lookup (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars) and Ena Database (aipoch/medical-research-skills, 2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains String Database Ppi?

jaechang-hits (a GitHub user) maintains it in jaechang-hits/SciAgent-Skills, which has 370 GitHub stars. The repository holds 163 skills in this directory. The repository was last updated on September 29, 2026.

Source: jaechang-hits/SciAgent-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.