AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Clinpgx Database

skill-foryourhealth111-pixel-vibe-skills-clinpgx-database · by foryourhealth111-pixel

Access ClinPGx pharmacogenomics data (successor to PharmGKB). Query gene-drug interactions, CPIC guidelines, allele functions, for precision medicine and genotype-guided dosing decisions.

— No reviews yet
0 installs
23 views
0.0% view→install

Install

$ agentstack add skill-foryourhealth111-pixel-vibe-skills-clinpgx-database

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ● Network access Used
  • ● Filesystem access Used
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-foryourhealth111-pixel-vibe-skills-clinpgx-database)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
○ 4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Clinpgx Database? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ClinPGx Database

Overview

ClinPGx (Clinical Pharmacogenomics Database) is a comprehensive resource for clinical pharmacogenomics information, successor to PharmGKB. It consolidates data from PharmGKB, CPIC, and PharmCAT, providing curated information on how genetic variation affects medication response. Access gene-drug pairs, clinical guidelines, allele functions, and drug labels for precision medicine applications.

When to Use This Skill

This skill should be used when:

  • Gene-drug interactions: Querying how genetic variants affect drug metabolism, efficacy, or toxicity
  • CPIC guidelines: Accessing evidence-based clinical practice guidelines for pharmacogenetics
  • Allele information: Retrieving allele function, frequency, and phenotype data
  • Drug labels: Exploring FDA and other regulatory pharmacogenomic drug labeling
  • Pharmacogenomic annotations: Accessing curated literature on gene-drug-disease relationships
  • Clinical decision support: Using PharmDOG tool for phenoconversion and custom genotype interpretation
  • Precision medicine: Implementing pharmacogenomic testing in clinical practice
  • Drug metabolism: Understanding CYP450 and other pharmacogene functions
  • Personalized dosing: Finding genotype-guided dosing recommendations
  • Adverse drug reactions: Identifying genetic risk factors for drug toxicity

Installation and Setup

Python API Access

The ClinPGx REST API provides programmatic access to all database resources. Basic setup:

uv pip install requests

API Endpoint

BASE_URL = "https://api.clinpgx.org/v1/"

Rate Limits:

  • 2 requests per second maximum
  • Excessive requests will result in HTTP 429 (Too Many Requests) response

Authentication: Not required for basic access

Data License: Creative Commons Attribution-ShareAlike 4.0 International License

For substantial API use, notify the ClinPGx team at api@clinpgx.org

Core Capabilities

1. Gene Queries

Retrieve gene information including function, clinical annotations, and pharmacogenomic significance:

import requests

# Get gene details
response = requests.get("https://api.clinpgx.org/v1/gene/CYP2D6")
gene_data = response.json()

# Search for genes by name
response = requests.get("https://api.clinpgx.org/v1/gene",
                       params={"q": "CYP"})
genes = response.json()

Key pharmacogenes:

  • CYP450 enzymes: CYP2D6, CYP2C19, CYP2C9, CYP3A4, CYP3A5
  • Transporters: SLCO1B1, ABCB1, ABCG2
  • Other metabolizers: TPMT, DPYD, NUDT15, UGT1A1
  • Receptors: OPRM1, HTR2A, ADRB1
  • HLA genes: HLA-B, HLA-A

2. Drug and Chemical Queries

Retrieve drug information including pharmacogenomic annotations and mechanisms:

# Get drug details
response = requests.get("https://api.clinpgx.org/v1/chemical/PA448515")  # Warfarin
drug_data = response.json()

# Search drugs by name
response = requests.get("https://api.clinpgx.org/v1/chemical",
                       params={"name": "warfarin"})
drugs = response.json()

Drug categories with pharmacogenomic significance:

  • Anticoagulants (warfarin, clopidogrel)
  • Antidepressants (SSRIs, TCAs)
  • Immunosuppressants (tacrolimus, azathioprine)
  • Oncology drugs (5-fluorouracil, irinotecan, tamoxifen)
  • Cardiovascular drugs (statins, beta-blockers)
  • Pain medications (codeine, tramadol)
  • Antivirals (abacavir)

3. Gene-Drug Pair Queries

Access curated gene-drug relationships with clinical annotations:

# Get gene-drug pair information
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
                       params={"gene": "CYP2D6", "drug": "codeine"})
pair_data = response.json()

# Get all pairs for a gene
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
                       params={"gene": "CYP2C19"})
all_pairs = response.json()

Clinical annotation sources:

  • CPIC (Clinical Pharmacogenetics Implementation Consortium)
  • DPWG (Dutch Pharmacogenetics Working Group)
  • FDA (Food and Drug Administration) labels
  • Peer-reviewed literature summary annotations

4. CPIC Guidelines

Access evidence-based clinical practice guidelines:

# Get CPIC guideline
response = requests.get("https://api.clinpgx.org/v1/guideline/PA166104939")
guideline = response.json()

# List all CPIC guidelines
response = requests.get("https://api.clinpgx.org/v1/guideline",
                       params={"source": "CPIC"})
guidelines = response.json()

CPIC guideline components:

  • Gene-drug pairs covered
  • Clinical recommendations by phenotype
  • Evidence levels and strength ratings
  • Supporting literature
  • Downloadable PDFs and supplementary materials
  • Implementation considerations

Example guidelines:

  • CYP2D6-codeine (avoid in ultra-rapid metabolizers)
  • CYP2C19-clopidogrel (alternative therapy for poor metabolizers)
  • TPMT-azathioprine (dose reduction for intermediate/poor metabolizers)
  • DPYD-fluoropyrimidines (dose adjustment based on activity)
  • HLA-B*57:01-abacavir (avoid if positive)

5. Allele and Variant Information

Query allele function and frequency data:

# Get allele information
response = requests.get("https://api.clinpgx.org/v1/allele/CYP2D6*4")
allele_data = response.json()

# Get all alleles for a gene
response = requests.get("https://api.clinpgx.org/v1/allele",
                       params={"gene": "CYP2D6"})
alleles = response.json()

Allele information includes:

  • Functional status (normal, decreased, no function, increased, uncertain)
  • Population frequencies across ethnic groups
  • Defining variants (SNPs, indels, CNVs)
  • Phenotype assignment
  • References to PharmVar and other nomenclature systems

Phenotype categories:

  • Ultra-rapid metabolizer (UM): Increased enzyme activity
  • Normal metabolizer (NM): Normal enzyme activity
  • Intermediate metabolizer (IM): Reduced enzyme activity
  • Poor metabolizer (PM): Little to no enzyme activity

6. Variant Annotations

Access clinical annotations for specific genetic variants:

# Get variant information
response = requests.get("https://api.clinpgx.org/v1/variant/rs4244285")
variant_data = response.json()

# Search variants by position (if supported)
response = requests.get("https://api.clinpgx.org/v1/variant",
                       params={"chromosome": "10", "position": "94781859"})
variants = response.json()

Variant data includes:

  • rsID and genomic coordinates
  • Gene and functional consequence
  • Allele associations
  • Clinical significance
  • Population frequencies
  • Literature references

7. Clinical Annotations

Retrieve curated literature annotations (formerly PharmGKB clinical annotations):

# Get clinical annotations
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation",
                       params={"gene": "CYP2D6"})
annotations = response.json()

# Filter by evidence level
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation",
                       params={"evidenceLevel": "1A"})
high_evidence = response.json()

Evidence levels (from highest to lowest):

  • Level 1A: High-quality evidence, CPIC/FDA/DPWG guidelines
  • Level 1B: High-quality evidence, not yet guideline
  • Level 2A: Moderate evidence from well-designed studies
  • Level 2B: Moderate evidence with some limitations
  • Level 3: Limited or conflicting evidence
  • Level 4: Case reports or weak evidence

8. Drug Labels

Access pharmacogenomic information from drug labels:

# Get drug labels with PGx information
response = requests.get("https://api.clinpgx.org/v1/drugLabel",
                       params={"drug": "warfarin"})
labels = response.json()

# Filter by regulatory source
response = requests.get("https://api.clinpgx.org/v1/drugLabel",
                       params={"source": "FDA"})
fda_labels = response.json()

Label information includes:

  • Testing recommendations
  • Dosing guidance by genotype
  • Warnings and precautions
  • Biomarker information
  • Regulatory source (FDA, EMA, PMDA, etc.)

9. Pathways

Explore pharmacokinetic and pharmacodynamic pathways:

# Get pathway information
response = requests.get("https://api.clinpgx.org/v1/pathway/PA146123006")  # Warfarin pathway
pathway_data = response.json()

# Search pathways by drug
response = requests.get("https://api.clinpgx.org/v1/pathway",
                       params={"drug": "warfarin"})
pathways = response.json()

Pathway diagrams show:

  • Drug metabolism steps
  • Enzymes and transporters involved
  • Gene variants affecting each step
  • Downstream effects on efficacy/toxicity
  • Interactions with other pathways

Query Workflow

Workflow 1: Clinical Decision Support for Drug Prescription

  1. Identify patient genotype for relevant pharmacogenes:

``python # Example: Patient is CYP2C19 *1/*2 (intermediate metabolizer) response = requests.get("https://api.clinpgx.org/v1/allele/CYP2C19*2") allele_function = response.json() ``

  1. Query gene-drug pairs for medication of interest:

``python response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": "CYP2C19", "drug": "clopidogrel"}) pair_info = response.json() ``

  1. Retrieve CPIC guideline for dosing recommendations:

``python response = requests.get("https://api.clinpgx.org/v1/guideline", params={"gene": "CYP2C19", "drug": "clopidogrel"}) guideline = response.json() # Recommendation: Alternative antiplatelet therapy for IM/PM ``

  1. Check drug label for regulatory guidance:

``python response = requests.get("https://api.clinpgx.org/v1/drugLabel", params={"drug": "clopidogrel"}) label = response.json() ``

Workflow 2: Gene Panel Analysis

  1. Get list of pharmacogenes in clinical panel:

``python pgx_panel = ["CYP2C19", "CYP2D6", "CYP2C9", "TPMT", "DPYD", "SLCO1B1"] ``

  1. For each gene, retrieve all drug interactions:

``python all_interactions = {} for gene in pgx_panel: response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": gene}) all_interactions[gene] = response.json() ``

  1. Filter for CPIC guideline-level evidence:

``python for gene, pairs in all_interactions.items(): for pair in pairs: if pair.get('cpicLevel'): # Has CPIC guideline print(f"{gene} - {pair['drug']}: {pair['cpicLevel']}") ``

  1. Generate patient report with actionable pharmacogenomic findings.

Workflow 3: Drug Safety Assessment

  1. Query drug for PGx associations:

``python response = requests.get("https://api.clinpgx.org/v1/chemical", params={"name": "abacavir"}) drug_id = response.json()[0]['id'] ``

  1. Get clinical annotations:

``python response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation", params={"drug": drug_id}) annotations = response.json() ``

  1. Check for HLA associations and toxicity risk:

``python for annotation in annotations: if 'HLA' in annotation.get('genes', []): print(f"Toxicity risk: {annotation['phenotype']}") print(f"Evidence level: {annotation['evidenceLevel']}") ``

  1. Retrieve screening recommendations from guidelines and labels.

Workflow 4: Research Analysis - Population Pharmacogenomics

  1. Get allele frequencies for population comparison:

``python response = requests.get("https://api.clinpgx.org/v1/allele", params={"gene": "CYP2D6"}) alleles = response.json() ``

  1. Extract population-specific frequencies:

``python populations = ['European', 'African', 'East Asian', 'Latino'] frequency_data = {} for allele in alleles: allele_name = allele['name'] frequency_data[allele_name] = { pop: allele.get(f'{pop}_frequency', 'N/A') for pop in populations } ``

  1. Calculate phenotype distributions by population:

``python # Combine allele frequencies with function to predict phenotypes phenotype_dist = calculate_phenotype_frequencies(frequency_data) ``

  1. Analyze implications for drug dosing in diverse populations.

Workflow 5: Literature Evidence Review

  1. Search for gene-drug pair:

``python response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": "TPMT", "drug": "azathioprine"}) pair = response.json() ``

  1. Retrieve all clinical annotations:

``python response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation", params={"gene": "TPMT", "drug": "azathioprine"}) annotations = response.json() ``

  1. Filter by evidence level and publication date:

``python high_quality = [a for a in annotations if a['evidenceLevel'] in ['1A', '1B', '2A']] ``

  1. Extract PMIDs and retrieve full references:

``python pmids = [a['pmid'] for a in high_quality if 'pmid' in a] # Use PubMed skill to retrieve full citations ``

Rate Limiting and Best Practices

Rate Limit Compliance

import time

def rate_limited_request(url, params=None, delay=0.5):
    """Make API request with rate limiting (2 req/sec max)"""
    response = requests.get(url, params=params)
    time.sleep(delay)  # Wait 0.5 seconds between requests
    return response

# Use in loops
genes = ["CYP2D6", "CYP2C19", "CYP2C9"]
for gene in genes:
    response = rate_limited_request(
        "https://api.clinpgx.org/v1/gene/" + gene
    )
    data = response.json()

Error Handling

def safe_api_call(url, params=None, max_retries=3):
    """API call with error handling and retries"""
    for attempt in range(max_retries):
        try:
            response = requests.get(url, params=params, timeout=10)

            if response.status_code == 200:
                return response.json()
            elif response.status_code == 429:
                # Rate limit exceeded
                wait_time = 2 ** attempt  # Exponential backoff
                print(f"Rate limit hit. Waiting {wait_time}s...")
                time.sleep(wait_time)
            else:
                response.raise_for_status()

        except requests.exceptions.RequestException as e:
            print(f"Attempt {attempt + 1} failed: {e}")
            if attempt == max_retries - 1:
                raise
            time.sleep(1)

Caching Results

import json
from pathlib import Path

def cached_query(cache_file, api_func, *args, **kwargs):
    """Cache API results to avoid repeated queries"""
    cache_path = Path(cache_file)

    if cache_path.exists():
        with open(cache_path) as f:
            return json.load(f)

    result = api_func(*args, **kwargs)

    with open(cache_path, 'w') as f:
        json.dump(result, f, indent=2)

    return result

# Usage
gene_data = cached_query(
    'cyp2d6_cache.json',
    rate_limited_request,
    "https://api.clinpgx.org/v1/gene/CYP2D6"
)

PharmDOG Tool

PharmDOG (formerly DDRx) is ClinPGx's clinical decision support tool for interpreting pharmacogenomic test results:

Key features:

  • Phenoconversion calculator: Adjusts phenotype predictions for drug-drug interactions affecting CYP2D6
  • Custom genotypes: Input patient genotypes to get phenotype predictions
  • QR code sharing: Generate shareable patient reports
  • Flexible guidance sources: Select which guidelines to apply (CPIC, DPWG, FDA)
  • Multi-drug analysis: Assess multiple medications simultaneously

Access: Available at https://www.clinpgx.org/pharmacogenomic-decisio

…

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.