DrugCentral Query Skill

SkillDatabases & data

Query the DrugCentral drug pharmacology database. Use whenever the user asks about approved drug structures, drug targets, pharmacological actions, or wants to look up any entity (drug name, DrugCentral ID, CAS number, InChIKey) in DrugCentral.

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 DrugCentral Query Skill skill

What this skill tells your AI

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

Search local DrugCentral flat files by any entity. Auto-detects query type:

Input PatternDetected AsMatch Logic
860 (numeric)DrugCentral IDexact on ID
50-78-2 (NNN-NN-N)CAS Numberexact on CAS_RN
BSYNRYMUTXBXSQ or full keyInChIKey (prefix or full)prefix match on InChIKey
anything elsefree textsubstring on INN (drug name)

Data

Download from https://drugcentral.org/download:

FileDescriptionRequired
structures.smiles.tsvSMILES, InChI, InChIKey, ID, INN, CAS_RNYes
drug.target.interaction.tsvDrug-target interaction profiles (gene, action, potency)Recommended
FDA+EMA+PMDA_Approved.csvApproval status (ID, drug_name)Optional

Place files in DATA_DIR (default: resources_metadata/drug_knowledgebase/DrugCentral, or set env DRUGCENTRAL_DIR).

API

FunctionInputReturns
search(entity)single entity stringdict with structures, targets, approved
search_batch(entities)list or comma-separated stringdict[str, dict]
summarize(result, entity)search result dict + labelcompact text
to_json(result)search result dictJSON string

Key Fields

structures: ID, INN (drug name), CAS_RN, SMILES, InChI, InChIKey

targets (from DTI file): GENE, TARGET_NAME, TARGET_CLASS, ACTION_TYPE, ACT_VALUE, ACT_TYPE, ACT_UNIT, ACCESSION (UniProt), TDL, ORGANISM

approved: id, name, approved (bool)

Usage

from 18_DrugCentral import search, search_batch, summarize, to_json

# Single query — drug name
result = search("aspirin")
print(summarize(result))

# Single query — DrugCentral ID
result = search("860")
print(summarize(result))

# Single query — CAS number
result = search("50-78-2")
print(summarize(result))

# Batch query
results = search_batch(["metformin", "ibuprofen", "50-78-2"])
for entity, res in results.items():
    print(summarize(res, entity))

# JSON export
print(to_json(result))

See if __name__ == "__main__" block in 18_DrugCentral.py for runnable examples covering: drug name, DrugCentral ID, CAS number, InChIKey prefix, batch search, and JSON output.

Source

Signals

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