IUPHAR/BPS Guide to Pharmacology Skill

SkillDev tools

Query the IUPHAR/BPS Guide to Pharmacology REST API for drug targets, ligands (drugs/compounds), and their interactions. Use whenever the user asks about pharmacological targets, receptor, ligand relationships, drug mechanisms of action, or wants to look up any drug or target name in IUPHAR. Supports single entity or batch queries. No API key required.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the IUPHAR/BPS Guide to Pharmacology Skill skill

What this skill tells your AI

The instructions your AI receives, as published by qsong-github/drugclaw in skills/drug_knowledgebase/iuphar/SKILL.md and read by ahel’s review.

Query the expert-curated IUPHAR database for ligands (drugs/compounds), targets (receptors/enzymes/channels), and ligand–target interactions.

Entity auto-detection

query_entity(name) tries ligand search first; if no hits, falls back to target search.

Input exampleDetected asWhat you get
morphineligandligandId, type, approved status, INN …
5-HT1A receptortargettargetId, type, gene IDs, family IDs …
GABA receptortargettarget info + top 10 ligand–target interactions

API

FunctionInputReturns
query_entity(name)single entity stringdict with entity, type, results, interactions
query_entities(names)list of entity strings{name: result_dict}
summarize(result)output of query_entityconcise human-readable text
search_ligand(name)drug/compound namelist of ligand dicts
get_ligand(id)numeric ligand IDfull ligand detail dict
search_target(name)target namelist of target dicts
get_target(id)numeric target IDfull target detail dict
get_interactions(target_id)numeric target IDlist of interaction dicts

Usage

from importlib.util import spec_from_file_location, module_from_spec
spec = spec_from_file_location("iuphar", "<path>/13_IUPHAR_BPS_Guide_to_Pharmacology.py")
iuphar = module_from_spec(spec); spec.loader.exec_module(iuphar)

# Single query
r = iuphar.query_entity("morphine")
print(iuphar.summarize(r))

# Batch query
results = iuphar.query_entities(["aspirin", "5-HT1A receptor"])
for name, res in results.items():
    print(iuphar.summarize(res))

See if __name__ == "__main__" block in the .py file for more runnable examples (single ligand, single target, batch, direct ID lookup).

Key fields returned

Ligand: ligandId, name, type, approved, inn, species

Target: targetId, name, abbreviation, type, familyIds, geneIds

Interaction: ligandId, targetId, action, affinityRange, affinityType, endogenous, species

Signals

GitHub stars
116
Forks
3
Last commit
Aug 2026
Advanced
Item type
skill
Key
iuphar-pharmacology
Source
github.com/qsong-github/drugclaw