67 · CPIC
SkillProductivityThe pair and recommendation tables use drugid (e.g. RxNorm:32968), not drug name. This script resolves drug names automatically via the /v1/drug table before querying.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
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 67 · CPIC skill
About this skill
🦀 Agentic RAG for drug intelligence · 57 skills · 15 task categories · DTI · ADR · DDI · PGx · Repurposing · Powered by LangGraph
What this skill tells your AI
The instructions your AI receives, as published by qsong-github/drugclaw in skills/drug_knowledgebase/cpic/SKILL.md and read by ahel’s review.
Clinical Pharmacogenomics Implementation Consortium — gene-based prescribing guidelines Category: Drug-centric | Type: DB | Subcategory: Drug Knowledgebase API:
https://api.cpicpgx.org/v1(PostgREST, free, no key required)
| Resource | URL |
|---|---|
| Homepage | https://cpicpgx.org/ |
| API / Data | https://cpicpgx.org/cpic-data/ |
| Paper | https://pubmed.ncbi.nlm.nih.gov/33479744/ |
What it provides
- Drug metadata: drugid (RxNorm), DrugBank ID, ATC codes, flowchart links
- Guidelines: peer-reviewed pharmacogenomics prescribing guidelines (drug + gene → dosing advice)
- Gene-drug pairs: curated pairs with CPIC level, PharmGKB level, PGx testing status
- Dosing recommendations: phenotype-specific dosing adjustments per drug-gene combination
API schema note
The pair and recommendation tables use drugid (e.g. RxNorm:32968), not drug name.
This script resolves drug names automatically via the /v1/drug table before querying.
Guideline lookup uses two strategies: (1) name substring match, (2) guidelineid from the drug table.
This is necessary because some guidelines use class names (e.g. simvastatin → "SLCO1B1, ABCG2, CYP2C9, and Statins", codeine → "CYP2D6, OPRM1, COMT, and Opioids").
Quick start
from 67_CPIC import query
# Single drug
results = query("clopidogrel")
# Multiple drugs
results = query(["warfarin", "codeine"])
# Query by gene symbol
results = query("CYP2D6", fields="pairs")
# Specific fields only
results = query("codeine", fields="guidelines")
results = query("codeine", fields="recommendations")
query() interface
query(entities, fields="all") -> list[dict]
| Parameter | Type | Description |
|---|---|---|
entities | str | list[str] | Drug name(s) or gene symbol(s) |
fields | str | "all" — everything; "guidelines" / "pairs" / "recommendations" |
Return structure (fields="all")
[
{
"query": "clopidogrel",
"drug_info": [
{"drugid": "RxNorm:32968", "name": "clopidogrel",
"drugbankid": "DB00758", "atcid": ["B01AC04"], "flowchart": "..."}
],
"guidelines": [
{"name": "CYP2C19 and Clopidogrel", "url": "...", "version": 66}
],
"gene_drug_pairs": [
{"genesymbol": "CYP2C19", "drugid": "RxNorm:32968",
"cpiclevel": "A", "clinpgxlevel": "1A",
"pgxtesting": "Actionable PGx", "citations": ["21716271", ...]}
],
"recommendations": [
{"drugid": "RxNorm:32968",
"phenotypes": {"CYP2C19": "Ultrarapid Metabolizer"},
"implications": {"CYP2C19": "Increased active metabolite ..."},
"recommendation": "Use at standard dose (75 mg/day)",
"classification": "Strong",
"population": "CVI ACS PCI"}
]
}
]
On error: {"query": "xxx", "error": "..."}.
Lower-level functions
| Function | Input | Output | Description |
|---|---|---|---|
get_drug_info(drug_name) | drug name | list[dict] | Drug table lookup (fuzzy) |
get_guidelines(drug_name=None) | optional drug name | list[dict] | All or filtered guidelines |
get_gene_drug_pairs(drug_name=None, gene=None) | optional filters | list[dict] | Gene-drug pairs (name auto-resolved to drugid) |
get_recommendations(drug_name) | drug name | list[dict] | Dosing recommendations (name auto-resolved) |
Notes
- CPIC levels: A = guideline published, B = in progress, C/D = lower evidence.
- Gene symbols are auto-detected (uppercase, ≤12 chars) and routed to
genesymbolfilter. - Drug names are fuzzy-matched via
ilikeon the/v1/drugtable. - No rate limit documented, but keep requests reasonable.
Signals
- GitHub stars
- 116
- Forks
- 3
- Last commit
- Aug 2026
Advanced
- Item type
- skill
- Key
cpic- Source
- github.com/qsong-github/drugclaw
github.com/qsong-github/drugclaw
Related picks
Skill · wshobson
The pick for Pythonpython-pro
Skill · jeffallan
The pick for Pythonsocial
Skill · coreyhaines31
More in Productivitygws-calendar
Skill · googleworkspace
More in Productivitylark-minutes
Skill · larksuite
More in Productivitylark-workflow-standup-report
Skill · larksuite
More in Productivity