Cpic
Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/cpic
A curated collection of AI agent skills for biomedical research, covering genomics, proteomics, single-cell analysis, clinical AI, and protein design.From the repository description
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill cpicAssembled 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.
SKILL.md
3.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
67 · CPIC
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.
What ships with it: 5 files
21.0 KB alongside SKILL.md, 4 of them executable
- cpic_skill.pyruns10.1 KB
- example.pyruns8.6 KB
- __init__.pyruns122 B
- README.md955 B
- retrieve.pyruns1.2 KB