agentsclimarketplace

Repurposing hub

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

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 repurposing_hub

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 Broad Institute Drug Repurposing Hub (~6,800 compounds). Look up drugs by name, gene target, MOA, disease area, Broad ID, or InChIKey. Returns clinical phase, mechanism of action, targets, disease area, indication, and chemical identifiers.

SKILL.md

2.6 KB, as published. Nobody here has run it

Drug Repurposing Hub Query Skill

Search the Broad Institute Drug Repurposing Hub by any entity. Auto-detects input type by pattern:

Input PatternDetected AsMatch Logic
BRD-A12345678Broad compound IDprefix on broad_id
ABCDEFGHIJKLMN-OPQRSTUVWX-YInChIKeyexact on InChIKey
EGFR, BRAF, TOP1Gene / targetexact token in target (pipe-separated)
anything elsefree textsubstring on pert_iname, moa, indication, disease_area

API

FunctionInputReturns
load_drugs(path)drug TSV pathlist[dict]
load_samples(path)sample TSV pathlist[dict]
load_merged()list[dict] (drugs + chemical IDs from samples)
search(entity)single entity stringlist[dict]
search_batch(entities)list of entity stringsdict[str, list[dict]]
summarize(hits, entity)hits + labelcompact LLM-readable text
to_json(hits)list[dict]list[dict] (JSON-serialisable)

Usage

See if __name__ == "__main__" block in 29_Drug_Repurposing_Hub.py for runnable examples covering: drug name, gene target, MOA keyword, disease area, batch search, and JSON output.

from importlib.machinery import SourceFileLoader
hub = SourceFileLoader("hub", "29_Drug_Repurposing_Hub.py").load_module()

# Single drug lookup
hits = hub.search("imatinib")
print(hub.summarize(hits, "imatinib"))

# Target-based search
hits = hub.search("EGFR")

# Batch
results = hub.search_batch(["metformin", "aspirin", "BRAF"])

Data

  • Source: Broad Institute Drug Repurposing Hub (https://repo-hub.broadinstitute.org/repurposing)
  • Drug file: repo-drug-annotation-20200324.txt — tab-delimited, !-prefixed comment lines
    • Columns: pert_iname, clinical_phase, moa, target, disease_area, indication
  • Sample file: repo-sample-annotation-20240610.txt — tab-delimited, !-prefixed comment lines
    • Columns include: broad_id, pert_iname, InChIKey, pubchem_cid, smiles, vendor, purity, etc.
  • Merge: on pert_iname; first sample with non-empty InChIKey is kept per drug
  • Path: DATA_DIR variable in 29_Drug_Repurposing_Hub.py
  • Citation: Corsello SM et al. Nature Medicine 23, 405–408 (2017). doi:10.1038/nm.4306

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.