agentsclimarketplace

Drugmechdb

Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/drugmechdb

A curated collection of AI agent skills for biomedical research, covering genomics, proteomics, single-cell analysis, clinical AI, and protein design.

Install
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill drugmechdb

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Query the DrugMechDB drug mechanism-of-action database. Use whenever the user asks about drug mechanisms, drug-to-disease paths, biological targets of a drug, or wants to look up any biomedical entity (drug name, protein, disease, DrugBank ID, MESH ID, UniProt ID, GO term, etc.) in DrugMechDB.

SKILL.md

2.9 KB, as published. Nobody here has run it

DrugMechDB Query Skill

Search drug mechanism-of-action paths by entity name or ID. Each path is a directed graph: Drug → (intermediates) → Disease, with typed nodes and labeled edges.

Data

  • Source: indication_paths.json
  • Path: resources_metadata/drug_mechanism/DRUGMECHDB/indication_paths.json
  • Records: ~4846 mechanism paths, ~32k relationships

Entity auto-detection

Input patternDetected asExample
DB:DB00619DrugBank IDexact on node/graph IDs
MESH:D015464MESH IDexact on node/graph IDs
UniProt:P00519UniProt proteinexact on node IDs
GO:0006915GO termexact on node IDs
CHEBI:*, HP:*, UBERON:*, CL:*, reactome:*, InterPro:*, PR:*, taxonomy:*respective typesexact on node IDs
anything elsefree textsubstring match on drug/disease/node names

API

FunctionSignatureReturns
load(path)path to JSONlist[dict] — full database
build_index(db)loaded db(by_id, by_name, by_drug, by_disease) dicts for O(1) lookup
search(db, entity, index=None)single query stringlist[dict] — matching paths
search_batch(db, entities, index=None)list of query stringsdict[str, list[dict]]
summarize(paths, entity)search resultscompact multi-line text
to_json(paths)search resultslist of flat dicts (id, drug, disease, nodes, links)

Node types (14)

BiologicalProcess, Cell, CellularComponent, ChemicalSubstance, Disease, Drug, GeneFamily, GrossAnatomicalStructure, MacromolecularComplex, MolecularActivity, OrganismTaxon, Pathway, PhenotypicFeature, Protein

Quick usage

import drugmechdb_query as dq

db = dq.load()  # uses default DATA_PATH
idx = dq.build_index(db)  # optional, recommended for repeated queries

# Single query — by name or ID
paths = dq.search(db, "imatinib", idx)
paths = dq.search(db, "UniProt:P00519", idx)
paths = dq.search(db, "MESH:D003920", idx)
print(dq.summarize(paths, "imatinib"))

# Batch query
results = dq.search_batch(db, ["metformin", "MESH:D003920", "asthma"], idx)
for entity, paths in results.items():
    print(dq.summarize(paths, entity))

# JSON export
print(dq.to_json(paths))

Output structure per path

graph:  { _id, drug, disease, drugbank, drug_mesh, disease_mesh }
nodes:  [{ id, label, name }, ...]
links:  [{ source, target, key }, ...]

key examples: decreases activity of, causes, positively regulates, treats, increases expression of, etc. (66 relation types total).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.