About string-database
string-database is a skill with a Python CLI wrapper for querying the STRING database. It supports protein identifier mapping, interaction and network queries, functional enrichment, and rank-based analysis.
Key features
- 01Maps common protein names to STRING IDs
- 02Finds protein interactions and network properties
- 03Queries homology and network images
- 04Runs pathway and functional enrichment
- 05Supports rank-based enrichment of datasets
Use cases
- 01Mapping gene names before querying STRING
- 02Exploring a protein interaction network
- 03Testing a dataset for pathway enrichment
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill string-databaseAfter installing, type/string-databasein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/citation.bibenrichment.mdinteractions.mdmapping.mdvaluesranks.mdscripts/string_cli.pyDetails
From the project READMESTRING Database Skill
This skill allows you to query the STRING database programmatically using a bundled Python CLI wrapper.
Prerequisites
uv: Read theuvskill and follow its Setup instructions to ensureuvis installed and on PATH.- User Notification: If .licenses/string_database_LICENSE.txt does not already exist in the workspace root directory then (1) prominently notify the user to check the terms at https://string-db.org/cgi/access, then (2) create the file recording the notification text and timestamp.
Core Rules
- MANDATORY: Ask for Species First: The STRING API requires NCBI Taxon IDs. You MUST NOT guess or assume a species. If the user does not explicitly state a species or Taxon ID, you MUST stop and ask: "Which species are you interested in? I need the NCBI Taxon ID to proceed." Even for well-known proteins like TP53, BRCA1, or MDM2 that are commonly associated with human studies, you MUST still ask — do not default to Human.
- Never print output to stdout: The
--output <file.tsv>is required. Never read large outputs into context. Instead use jq, python or file operations (grep,head) to process large output. - Map Identifiers first: If you only have common gene names (e.g.,
'TP53'), map them to STRING IDs first as this guarantees much faster server
responses. Use the
mapcommand for this. - Notification: If this skill is used, ensure this is mentioned in the output.
Tool Execution
The CLI is at scripts/string_cli.py and should be run using uv run:
uv run scripts/string_cli.py <command> [options] --output /tmp/out.tsv
Feature Domains (Progressive Disclosure)
Read the following reference files based on the user's request:
- Mapping Identifiers - Map common protein names to STRING IDs.
- Interactions & Network - Find interacting proteins, network topologies, mediators, homology, and visual network images.
- Enrichment & Functional Annotations - Analyze pathway enrichment (GO, KEGG, Pfam), PPI significance, or find all proteins associated with a specific term (e.g. Melanoma).
- Values/Ranks Enrichment - Submit full experimental datasets (e.g., logFC, p-values) for rank-based enrichment analysis using the async background API.
To begin, read the reference file most appropriate to the current task to discover the correct CLI command.
Comments
Markdown supported