Analyzing API Gateway Access Logs
mukul975/Anthropic-Cybersecurity-Skills
Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect BOLA/IDOR attacks, rate limit bypass, credential scanning, and injection attempts.
Query protein-protein and gene interaction databases (STRING, BioGRID, IntAct, SIGNOR, Reactome, HuRI, HuMAP, OmniPath, ConsensusPathDB, DIP).
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GPTomics/bioSkills bio-interaction-databases --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/database-access/interaction-databases .claude/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.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/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .claude/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databasesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GPTomics/bioSkills bio-interaction-databases --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/database-access/interaction-databases .agents/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .agents/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GPTomics/bioSkills bio-interaction-databases --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/database-access/interaction-databases .cursor/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .cursor/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GPTomics/bioSkills.git --path database-access/interaction-databases--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GPTomics/bioSkills bio-interaction-databases --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/database-access/interaction-databases .gemini/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .gemini/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GPTomics/bioSkills bio-interaction-databasesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/database-access/interaction-databases .github/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .github/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GPTomics/bioSkills bio-interaction-databases --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/database-access/interaction-databases .opencode/skills/bio-interaction-databases && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bio-interaction-databases" agent skill from https://github.com/GPTomics/bioSkills/tree/main/database-access/interaction-databases into .opencode/skills/bio-interaction-databases/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-interaction-databases", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bio-interaction-databasesQuery protein-protein and gene interaction databases (STRING, BioGRID, IntAct, SIGNOR, Reactome, HuRI, HuMAP, OmniPath, ConsensusPathDB, DIP).
Bio Interaction Databases is an agent skill from GPTomics/bioSkills. Query protein-protein and gene interaction databases (STRING, BioGRID, IntAct, SIGNOR, Reactome, HuRI, HuMAP, OmniPath, ConsensusPathDB, DIP). Use when building PPI networks, choosing between physical vs functional vs genetic interactions, signed/directed vs undirected, high-throughput vs curated, picking confidence thresholds, aggregating across resources, or navigating license constraints. Encodes the database decision matrix, STRING v12 channel semantics, OmniPath as meta-database, SIGNOR for signed signaling…
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `examples/interaction_query.py`, `examples/string_network.py` and `usage-guide.md`).
It sits in Research & Science, covering Rate limiting. It works with NetworkX and pandas. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.
Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.
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.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
webservice.thebiogrid.orgversion-12-0.string-db.orgstring-db.orgreactome.orginteractome-atlas.orgsignor.uniroma2.itomnipathdb.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bio Interaction Databases loads about 5.3k tokens when it runs. Until then it costs about 144 tokens; SKILL.md has 1,724 words of instructions outside code blocks.
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.
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.
The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,724 words, ~5,320 tokens.
.claude/skills/bio-interaction-databases/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Reference examples tested with: requests 2.31+, pandas 2.2+, networkx 3.2+; STRING v12.0, BioGRID 4.4+, IntAct (live), SIGNOR 3.0+, OmniPath (live)
Before using code patterns, verify installed versions match. If versions differ:
pip show requests pandas networkxSTRING URL is version-pinned (version-12-0 as of 2024); older URLs (version-11-5) were deprecated 2023. The Cytoscape/Cytoscape.js ecosystem uses different version semantics; check the docs for the targeted version.
"Get protein-protein interactions for these genes" -> The choice of database matters more than the choice of API. Different resources index different evidence (physical binding, functional association, genetic interaction, signed signaling), with different curation pipelines (manually curated vs high-throughput vs text-mined), different species coverage, and different licenses.
The decision matrix below is the postdoc-grade view: what question is being asked, and which resource answers it best?
requests.get() against REST endpoints; pandas for parsing; networkx for graphsSTRINGdb, OmnipathR (mature Bioconductor clients)import requests
import pandas as pd
import networkx as nx
from io import StringIO
CALLER = 'bioskills-2026' # STRING + OmniPath accept caller_identity for usage attributionAPI key requirements:
https://webservice.thebiogrid.org/)| Question | Best resource | Why |
|---|---|---|
| "Build a network around 10 genes" | STRING (medium confidence ~400) | Comprehensive; channels combinable; good viz integration |
| "Only physically interacting proteins" | IntAct or BioGRID physical | Curated physical interactions; PSI-MI standard |
| "Signed/directed signaling (phospho, ubiq, etc.)" | SIGNOR | Only major DB with mechanism types and direction |
| "Functional enrichment based on co-mentioned genes" | STRING functional (default) | Includes textmining channel |
| "Genetic interactions (synthetic lethality)" | BioGRID genetic | Largest curated genetic interaction set |
| "High-throughput Y2H interactome" | HuRI | Reference yeast-2-hybrid map of human |
| "Mass-spec-derived protein complexes" | HuMAP v2 or BioPlex | AP-MS complex maps |
| "Curated pathways with interactions" | Reactome | Pathway-organized; gold standard for signaling |
| "Meta-database aggregating 100+ sources" | OmniPath | The modern "one-stop"; pre-aggregated |
| "Cross-species or non-human" | STRING | Species coverage broadest |
| "Bacterial interactome" | STRING bacterial | Limited curated alternatives |
| "Phosphorylation site-specific" | PhosphoSitePlus (commercial license) or SIGNOR | PSP has best PTM coverage but requires license |
OmniPath (Türei et al. 2021 Mol Sys Biol 17:e9923) deserves special mention: it aggregates >100 sources into a unified API with provenance tracking. For "give me all available interactions for X" workflows, OmniPath is the modern default.
STRING (Szklarczyk et al. 2023 Nucleic Acids Res 51:D638) aggregates evidence into a combined confidence score. The seven evidence channels:
| Channel | What it captures |
|---|---|
experiments | Direct experimental evidence (BioGRID, IntAct, etc.) |
database | Curated database (Reactome, KEGG) |
textmining | Co-mention in PubMed |
coexpression | Co-expression across conditions |
neighborhood | Genomic neighborhood (prokaryotes mainly) |
fusion | Gene fusion across species |
cooccurrence | Phylogenetic profile co-occurrence |
The default score is the combined-evidence score (0-1000). Confidence tiers:
| Threshold | Tier | Use when |
|---|---|---|
| 150 | Low | Exploration; includes weak textmining |
| 400 | Medium | Default; balanced sensitivity/specificity |
| 700 | High | Publication-quality networks |
| 900 | Highest | Experimentally validated core only |
Version pinning: STRING URL is https://version-12-0.string-db.org/api/... as of 2024. Older version-11-5 URLs were deprecated 2023 — code using them silently fails. Use the unversioned https://string-db.org/api/... to follow the current release, or pin to a specific version for reproducibility.
caller_identity: STRING requests all programmatic users pass caller_identity=<app-name> for usage attribution. The parameter helps STRING identify and contact heavy automated callers.
BioGRID (Oughtred et al. 2021 Protein Sci 30:187) covers physical and genetic interactions across the broadest organism set of any major resource. Requires a free API key (https://webservice.thebiogrid.org/).
Key concepts:
EXPERIMENTAL_SYSTEM: e.g. "Two-hybrid", "Affinity Capture-MS", "Synthetic Growth Defect"THROUGHPUT: "Low Throughput" vs "High Throughput" — the most important quality flagEVIDENCE_TYPE: physical vs geneticFor high-confidence physical interactions, filter to physical systems + Low Throughput:
PHYSICAL_LT_SYSTEMS = {
'Affinity Capture-MS', 'Affinity Capture-Western', 'Affinity Capture-RNA',
'Co-fractionation', 'Co-purification', 'Reconstituted Complex',
'Co-crystal Structure', 'Two-hybrid', 'Far Western', 'FRET', 'PCA',
}IntAct (Del Toro et al. 2022 Nucleic Acids Res 50:D648) is the IMEx consortium reference for curated physical interactions in PSI-MI standard format. MINT was folded in ~2014; queries to MINT URLs now redirect to IntAct.
Direct REST API has changed multiple times; the most stable access is via OmniPath (which wraps IntAct) or via the PSICQUIC web services.
SIGNOR (Lo Surdo et al. 2023 Nucleic Acids Res 51:D631) is the only major curated database with signed, directed, mechanism-typed interactions. Each edge has:
direction: A->Beffect: up-regulates, down-regulates, unknownmechanism: phosphorylation, dephosphorylation, ubiquitination, binding, etc.Essential for any signaling pathway analysis or dynamic modeling. Coverage smaller than STRING/BioGRID but quality is high.
Reactome (Milacic et al. 2024 Nucleic Acids Res 52:D672) is gold-standard for human pathway curation with full interaction reactions. Species-specific (human is by far the most complete).
Reactome ContentService REST: https://reactome.org/ContentService/.
Both available for download; HuRI also has a web portal (http://www.interactome-atlas.org/).
OmniPath (Türei et al. 2021 Mol Syst Biol 17:e9923) aggregates 100+ sources with provenance. Key endpoints:
| Endpoint | Content |
|---|---|
/interactions | Signaling interactions (directed); the most useful for cross-DB consensus |
/enzsub | Enzyme-substrate (kinase-substrate, etc.) |
/complexes | Protein complexes |
/annotations | Functional annotations |
/intercell | Intercellular communication |
Each interaction includes sources (list of contributing databases) and references (PMIDs). For "give me everything anyone has said about A-B", OmniPath is the answer.
R users: OmnipathR (Bioconductor) is more ergonomic than raw HTTP.
| Resource | License | Notes |
|---|---|---|
| STRING | Free for all use | Permissive |
| BioGRID | Free, but registration required for bulk | Academic and commercial |
| IntAct | CC-BY (PSI-MI) | Permissive |
| SIGNOR | CC-BY-SA | Share-alike |
| Reactome | CC-BY | Permissive |
| HuRI / HuMAP | CC-BY | Permissive |
| OmniPath | Per-source (mostly permissive) | Check individual sources for commercial use |
| ConsensusPathDB | Academic only | Cannot use commercially |
| PhosphoSitePlus | Commercial license required | Best PTM coverage but costly |
| Pathway Commons | Per-source | Check sources |
For commercial pipelines, stick to STRING + BioGRID + IntAct + SIGNOR + Reactome + HuRI/HuMAP + OmniPath with appropriate source attribution. Avoid ConsensusPathDB and PhosphoSitePlus without legal review.
Goal: Build a network of interactions among a gene list at a stated confidence; surface which channels contribute.
Approach: REST /network endpoint; parse channel-specific scores from response columns.
Reference (STRING v12.0):
import requests
import pandas as pd
from io import StringIO
STRING = 'https://version-12-0.string-db.org/api'
def get_string_network(genes, species=9606, threshold=700):
'''threshold: 150 (low), 400 (medium), 700 (high), 900 (highest).'''
url = f'{STRING}/tsv/network'
params = {
'identifiers': '%0d'.join(genes),
'species': species,
'required_score': threshold,
'caller_identity': 'bioskills-2026',
}
r = requests.get(url, params=params); r.raise_for_status()
df = pd.read_csv(StringIO(r.text), sep='\t')
# Columns: stringId_A, stringId_B, preferredName_A, preferredName_B, ncbiTaxonId,
# score, nscore (neighborhood), fscore (fusion), pscore (cooccurrence),
# ascore (coexpression), escore (experiments), dscore (database), tscore (textmining)
return df
genes = ['TP53', 'BRCA1', 'MDM2', 'ATM', 'CHEK2', 'CDK2']
df = get_string_network(genes, threshold=700)
print(f'{len(df)} interactions at score >= 700')
print('Channel composition for first 5 edges:')
print(df[['preferredName_A', 'preferredName_B', 'score',
'escore', 'dscore', 'tscore', 'ascore']].head())Reference (BioGRID 4.4+):
BIOGRID = 'https://webservice.thebiogrid.org/interactions/'
# Use the PHYSICAL_LT_SYSTEMS set defined above (the full curated set).
# Importing or re-defining is equivalent; using the same constant keeps the filter consistent.
def biogrid_lt_physical(gene, api_key, taxon=9606):
params = {
'accesskey': api_key,
'format': 'json',
'searchNames': True,
'geneList': gene,
'taxId': taxon,
'includeInteractors': True,
'max': 10000,
}
r = requests.get(BIOGRID, params=params); r.raise_for_status()
data = r.json()
rows = []
for v in data.values():
if v['THROUGHPUT'] == 'Low Throughput' and v['EXPERIMENTAL_SYSTEM'] in PHYSICAL_LT_SYSTEMS:
rows.append({
'gene_a': v['OFFICIAL_SYMBOL_A'],
'gene_b': v['OFFICIAL_SYMBOL_B'],
'system': v['EXPERIMENTAL_SYSTEM'],
'pmid': v['PUBMED_ID'],
})
return pd.DataFrame(rows)SIGNOR = 'https://signor.uniroma2.it/getData.php'
def signor_for_gene(gene_symbol):
'''Return signed, directed signaling interactions involving the gene.'''
params = {'organism': 'human', 'entity': gene_symbol}
r = requests.get(SIGNOR, params=params); r.raise_for_status()
rows = []
for line in r.text.strip().split('\n')[1:]:
cols = line.split('\t')
if len(cols) >= 8:
rows.append({
'source': cols[0], 'target': cols[1], 'effect': cols[2],
'mechanism': cols[3], 'pmid': cols[7],
})
return pd.DataFrame(rows)OMNI = 'https://omnipathdb.org'
def omnipath_interactions(genes, types='post_translational'):
'''types: post_translational, transcriptional, mirna_target, lncrna_target.'''
params = {
'genesymbols': 1,
'fields': 'sources,references,curation_effort,n_resources',
'partners': ','.join(genes),
'types': types,
'license': 'academic', # or 'commercial' for permissive-only sources
}
r = requests.get(f'{OMNI}/interactions', params=params); r.raise_for_status()
df = pd.read_csv(StringIO(r.text), sep='\t')
return df
df = omnipath_interactions(['TP53', 'MDM2', 'BRCA1'])
# Rich metadata: directionality, sign, sources, references, curation effort
print(df[['source_genesymbol', 'target_genesymbol', 'is_directed', 'is_stimulation',
'is_inhibition', 'n_resources', 'n_references']].head())Goal: Build a union network of interactions from multiple resources; track provenance per edge.
Approach: Query each resource; normalize gene symbols; merge into a networkx Graph with sources attribute per edge.
Reference (requests 2.31+, networkx 3.2+):
import networkx as nx
def aggregate_networks(genes, biogrid_key=None):
g = nx.Graph()
# STRING (high confidence)
string_df = get_string_network(genes, threshold=700)
for _, row in string_df.iterrows():
a, b = sorted([row['preferredName_A'], row['preferredName_B']])
edge = g.get_edge_data(a, b, default={'sources': set(), 'max_score': 0})
edge['sources'].add('STRING')
edge['max_score'] = max(edge['max_score'], row['score'] / 1000.0)
g.add_edge(a, b, **edge)
# OmniPath
omni_df = omnipath_interactions(genes)
for _, row in omni_df.iterrows():
a, b = sorted([row['source_genesymbol'], row['target_genesymbol']])
edge = g.get_edge_data(a, b, default={'sources': set(), 'max_score': 0})
edge['sources'].add('OmniPath')
g.add_edge(a, b, **edge)
# BioGRID (if key available)
if biogrid_key:
for gene in genes:
biogrid_df = biogrid_lt_physical(gene, biogrid_key)
for _, row in biogrid_df.iterrows():
a, b = sorted([row['gene_a'], row['gene_b']])
edge = g.get_edge_data(a, b, default={'sources': set(), 'max_score': 0})
edge['sources'].add('BioGRID-LT-physical')
g.add_edge(a, b, **edge)
return gdef summary(g):
return {
'nodes': g.number_of_nodes(),
'edges': g.number_of_edges(),
'density': nx.density(g),
'components': nx.number_connected_components(g),
'mean_degree': sum(dict(g.degree()).values()) / max(g.number_of_nodes(), 1),
}
# Edges supported by multiple resources are higher-confidence
high_conf = [(a, b, d) for a, b, d in g.edges(data=True) if len(d['sources']) >= 2]
print(f'Multi-source edges: {len(high_conf)}/{g.number_of_edges()}')experiments channel only (escore > threshold); or use BioGRID/IntAct for strictly physical.THROUGHPUT = 'Low Throughput' in BioGRID; or use IntAct with curated MI scores.MARCH1 for a query; renamed to MARCHF1 in 2020.version-11-5.string-db.org.version-12-0 (pinned for reproducibility) or string-db.org (live).license=commercial parameter that filters to commercially-permissive sources.effect and mechanism attributes.caller_identity.caller_identity rules; for very large batches, use the bulk download.| Error / symptom | Cause | Solution |
|---|---|---|
| STRING 404 | Deprecated version-11-5 URL | Use version-12-0 or unversioned |
| BioGRID empty result | Missing API key or wrong taxId | Get key; use NCBI taxon ID |
| Symbol mismatch | HGNC renaming | Resolve via UniProt/Ensembl ID |
| HT interactions inflate network | No throughput filter | Filter THROUGHPUT = 'Low Throughput' |
| Functional vs physical confusion | Mixed STRING channels | Filter to escore for physical |
| Directional edges collapsed | Used Graph for directed source | Use DiGraph for SIGNOR/OmniPath |
| License violation in commercial pipeline | ConsensusPathDB or PhosphoSitePlus | Switch to permissive sources |
| OmniPath returns nothing | license=commercial filter too strict | Drop the filter for academic use |
© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in database-access/interaction-databases of GPTomics/bioSkills.
Open the folder on GitHubat commit d91ed3d
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.
Bio Interaction Databases 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bio Interaction Databases this skillGPTomics/bioSkills | 1.2k | 2 repos | ~5.3k | Automated safety check: Pass | MIT | |
| Analyzing API Gateway Access Logsmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~581 | Automated safety check: Pass | Apache-2.0 | |
| Goosetown Researcher GitHubaaif-goose/goosetown | 154 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| NetworkxzLanqing/codex-claude-academic-skills | 4.6k | 16 repos | ~3.2k | Automated safety check: Pass | BSD-3-Clause | |
| Querying Big Datasetsflyrank-bih/flyrank-ml-internship-starter | 140 | — | ~750 | Automated safety check: Pass | Custom licence | |
| PyDESeq2 Differential Expressiondavila7/claude-code-templates | 32k | 12 repos | ~4k | Automated safety check: Pass | MIT |
mukul975/Anthropic-Cybersecurity-Skills
Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect BOLA/IDOR attacks, rate limit bypass, credential scanning, and injection attempts.
aaif-goose/goosetown
Search GitHub issues, PRs, code, and discussions using the gh CLI.
zLanqing/codex-claude-academic-skills
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python.
flyrank-bih/flyrank-ml-internship-starter
Works with datasets far too big to download or load in pandas — SQL over remote Parquet with DuckDB, aggregate-then-model, iterate on samples.
davila7/claude-code-templates
Runs differential gene expression analysis on bulk RNA-seq counts with PyDESeq2: design formulas, Wald tests, FDR correction and volcano or MA plots.
TyrealQ/q-skills
Consolidates BERTopic, LDA or NMF topic output into a theory-driven classification framework and writes the final labels back to an Excel file.
GPTomics/bioSkills
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.
GPTomics/bioSkills
Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.
GPTomics/bioSkills
Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.
GPTomics/bioSkills
Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.
GPTomics/bioSkills
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.
GPTomics/bioSkills
Sort alignment files by coordinate or read name using samtools and pysam.
Categories
Query protein-protein and gene interaction databases (STRING, BioGRID, IntAct, SIGNOR, Reactome, HuRI, HuMAP, OmniPath, ConsensusPathDB, DIP). Bio Interaction Databases is an agent skill from GPTomics/bioSkills. Query protein-protein and gene interaction databases (STRING, BioGRID, IntAct, SIGNOR, Reactome, HuRI, HuMAP, OmniPath, ConsensusPathDB, DIP).
Bio Interaction Databases fits situations like: building PPI networks; choosing between physical vs functional vs genetic interactions; signed/directed vs undirected; high-throughput vs curated.
Run `npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a claude-code`. Or copy the skill folder (database-access/interaction-databases in GPTomics/bioSkills) into .claude/skills/bio-interaction-databases in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a codex`. Or copy the skill folder (database-access/interaction-databases in GPTomics/bioSkills) into .agents/skills/bio-interaction-databases in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-interaction-databases -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-interaction-databases, .gemini/skills/bio-interaction-databases, .github/skills/bio-interaction-databases and .opencode/skills/bio-interaction-databases in your project.
Going by SKILL.md and its folder, Bio Interaction Databases needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.
SKILL.md names 7 domains. In commands or code: webservice.thebiogrid.org, version-12-0.string-db.org, string-db.org, reactome.org, interactome-atlas.org, signor.uniroma2.it and omnipathdb.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
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.
Bio Interaction Databases is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bio Interaction Databases: Analyzing API Gateway Access Logs (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Goosetown Researcher GitHub (aaif-goose/goosetown, 154 stars), Networkx (zLanqing/codex-claude-academic-skills, 4.6k stars) and Querying Big Datasets (flyrank-bih/flyrank-ml-internship-starter, 140 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,215 GitHub stars. The repository holds 553 skills in this directory. The repository was last updated on August 15, 2026.
Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.