758 lines
17 KiB
Markdown
758 lines
17 KiB
Markdown
# ClinPGx API Reference
|
|
|
|
Complete reference documentation for the ClinPGx REST API.
|
|
|
|
## Base URL
|
|
|
|
```
|
|
https://api.clinpgx.org/v1/
|
|
```
|
|
|
|
## Rate Limiting
|
|
|
|
- **Maximum rate**: 2 requests per second
|
|
- **Enforcement**: Requests exceeding the limit will receive HTTP 429 (Too Many Requests)
|
|
- **Best practice**: Implement 500ms delay between requests (0.5 seconds)
|
|
- **Recommendation**: For substantial API use, contact api@clinpgx.org
|
|
|
|
## Authentication
|
|
|
|
No authentication is required for basic API access. All endpoints are publicly accessible.
|
|
|
|
## Data License
|
|
|
|
All data accessed through the API is subject to:
|
|
- Creative Commons Attribution-ShareAlike 4.0 International License
|
|
- ClinPGx Data Usage Policy
|
|
|
|
## Response Format
|
|
|
|
All successful responses return JSON with appropriate HTTP status codes:
|
|
- `200 OK`: Successful request
|
|
- `404 Not Found`: Resource does not exist
|
|
- `429 Too Many Requests`: Rate limit exceeded
|
|
- `500 Internal Server Error`: Server error
|
|
|
|
## Core Endpoints
|
|
|
|
### 1. Gene Endpoint
|
|
|
|
Retrieve pharmacogene information including function, variants, and clinical significance.
|
|
|
|
#### Get Gene by Symbol
|
|
|
|
```http
|
|
GET /v1/gene/{gene_symbol}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `gene_symbol` (path, required): Gene symbol (e.g., CYP2D6, TPMT, DPYD)
|
|
|
|
**Example Request:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/gene/CYP2D6"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
{
|
|
"id": "PA126",
|
|
"symbol": "CYP2D6",
|
|
"name": "cytochrome P450 family 2 subfamily D member 6",
|
|
"chromosome": "22",
|
|
"chromosomeLocation": "22q13.2",
|
|
"function": "Drug metabolism",
|
|
"description": "Highly polymorphic gene encoding enzyme...",
|
|
"clinicalAnnotations": [...],
|
|
"relatedDrugs": [...]
|
|
}
|
|
```
|
|
|
|
#### Search Genes
|
|
|
|
```http
|
|
GET /v1/gene?q={search_term}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `q` (query, optional): Search term for gene name or symbol
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/gene?q=CYP"
|
|
```
|
|
|
|
### 2. Chemical/Drug Endpoint
|
|
|
|
Access drug and chemical compound information including pharmacogenomic annotations.
|
|
|
|
#### Get Drug by ID
|
|
|
|
```http
|
|
GET /v1/chemical/{drug_id}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `drug_id` (path, required): ClinPGx drug identifier (e.g., PA448515)
|
|
|
|
**Example Request:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/chemical/PA448515"
|
|
```
|
|
|
|
#### Search Drugs by Name
|
|
|
|
```http
|
|
GET /v1/chemical?name={drug_name}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `name` (query, optional): Drug name or synonym
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/chemical?name=warfarin"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
[
|
|
{
|
|
"id": "PA448515",
|
|
"name": "warfarin",
|
|
"genericNames": ["warfarin sodium"],
|
|
"tradeNames": ["Coumadin", "Jantoven"],
|
|
"drugClasses": ["Anticoagulants"],
|
|
"indication": "Prevention of thrombosis",
|
|
"relatedGenes": ["CYP2C9", "VKORC1", "CYP4F2"]
|
|
}
|
|
]
|
|
```
|
|
|
|
### 3. Gene-Drug Pair Endpoint
|
|
|
|
Query curated gene-drug interaction relationships with clinical annotations.
|
|
|
|
#### Get Gene-Drug Pairs
|
|
|
|
```http
|
|
GET /v1/geneDrugPair?gene={gene}&drug={drug}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `gene` (query, optional): Gene symbol
|
|
- `drug` (query, optional): Drug name
|
|
- `cpicLevel` (query, optional): Filter by CPIC recommendation level (A, B, C, D)
|
|
|
|
**Example Requests:**
|
|
```bash
|
|
# Get all pairs for a gene
|
|
curl "https://api.clinpgx.org/v1/geneDrugPair?gene=CYP2D6"
|
|
|
|
# Get specific gene-drug pair
|
|
curl "https://api.clinpgx.org/v1/geneDrugPair?gene=CYP2D6&drug=codeine"
|
|
|
|
# Get all CPIC Level A pairs
|
|
curl "https://api.clinpgx.org/v1/geneDrugPair?cpicLevel=A"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
[
|
|
{
|
|
"gene": "CYP2D6",
|
|
"drug": "codeine",
|
|
"sources": ["CPIC", "FDA", "DPWG"],
|
|
"cpicLevel": "A",
|
|
"evidenceLevel": "1A",
|
|
"clinicalAnnotationCount": 45,
|
|
"hasGuideline": true,
|
|
"guidelineUrl": "https://www.clinpgx.org/guideline/..."
|
|
}
|
|
]
|
|
```
|
|
|
|
### 4. Guideline Endpoint
|
|
|
|
Access clinical practice guidelines from CPIC, DPWG, and other sources.
|
|
|
|
#### Get Guidelines
|
|
|
|
```http
|
|
GET /v1/guideline?source={source}&gene={gene}&drug={drug}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `source` (query, optional): Guideline source (CPIC, DPWG, FDA)
|
|
- `gene` (query, optional): Gene symbol
|
|
- `drug` (query, optional): Drug name
|
|
|
|
**Example Requests:**
|
|
```bash
|
|
# Get all CPIC guidelines
|
|
curl "https://api.clinpgx.org/v1/guideline?source=CPIC"
|
|
|
|
# Get guideline for specific gene-drug
|
|
curl "https://api.clinpgx.org/v1/guideline?gene=CYP2C19&drug=clopidogrel"
|
|
```
|
|
|
|
#### Get Guideline by ID
|
|
|
|
```http
|
|
GET /v1/guideline/{guideline_id}
|
|
```
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/guideline/PA166104939"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
{
|
|
"id": "PA166104939",
|
|
"name": "CPIC Guideline for CYP2C19 and Clopidogrel",
|
|
"source": "CPIC",
|
|
"genes": ["CYP2C19"],
|
|
"drugs": ["clopidogrel"],
|
|
"recommendationLevel": "A",
|
|
"lastUpdated": "2023-08-01",
|
|
"summary": "Alternative antiplatelet therapy recommended for...",
|
|
"recommendations": [...],
|
|
"pdfUrl": "https://www.clinpgx.org/...",
|
|
"pmid": "23400754"
|
|
}
|
|
```
|
|
|
|
### 5. Allele Endpoint
|
|
|
|
Query allele definitions, functions, and population frequencies.
|
|
|
|
#### Get All Alleles for a Gene
|
|
|
|
```http
|
|
GET /v1/allele?gene={gene_symbol}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `gene` (query, required): Gene symbol
|
|
|
|
**Example Request:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/allele?gene=CYP2D6"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
[
|
|
{
|
|
"name": "CYP2D6*1",
|
|
"gene": "CYP2D6",
|
|
"function": "Normal function",
|
|
"activityScore": 1.0,
|
|
"frequencies": {
|
|
"European": 0.42,
|
|
"African": 0.37,
|
|
"East Asian": 0.50,
|
|
"Latino": 0.44
|
|
},
|
|
"definingVariants": ["Reference allele"],
|
|
"pharmVarId": "PV00001"
|
|
},
|
|
{
|
|
"name": "CYP2D6*4",
|
|
"gene": "CYP2D6",
|
|
"function": "No function",
|
|
"activityScore": 0.0,
|
|
"frequencies": {
|
|
"European": 0.20,
|
|
"African": 0.05,
|
|
"East Asian": 0.01,
|
|
"Latino": 0.10
|
|
},
|
|
"definingVariants": ["rs3892097"],
|
|
"pharmVarId": "PV00004"
|
|
}
|
|
]
|
|
```
|
|
|
|
#### Get Specific Allele
|
|
|
|
```http
|
|
GET /v1/allele/{allele_name}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `allele_name` (path, required): Allele name with star nomenclature (e.g., CYP2D6*4)
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/allele/CYP2D6*4"
|
|
```
|
|
|
|
### 6. Variant Endpoint
|
|
|
|
Search for genetic variants and their pharmacogenomic annotations.
|
|
|
|
#### Get Variant by rsID
|
|
|
|
```http
|
|
GET /v1/variant/{rsid}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `rsid` (path, required): dbSNP reference SNP ID
|
|
|
|
**Example Request:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/variant/rs4244285"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
{
|
|
"rsid": "rs4244285",
|
|
"chromosome": "10",
|
|
"position": 94781859,
|
|
"gene": "CYP2C19",
|
|
"alleles": ["CYP2C19*2"],
|
|
"consequence": "Splice site variant",
|
|
"clinicalSignificance": "Pathogenic - reduced enzyme activity",
|
|
"frequencies": {
|
|
"European": 0.15,
|
|
"African": 0.18,
|
|
"East Asian": 0.29,
|
|
"Latino": 0.12
|
|
},
|
|
"references": [...]
|
|
}
|
|
```
|
|
|
|
#### Search Variants by Position
|
|
|
|
```http
|
|
GET /v1/variant?chromosome={chr}&position={pos}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `chromosome` (query, optional): Chromosome number (1-22, X, Y)
|
|
- `position` (query, optional): Genomic position (GRCh38)
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/variant?chromosome=10&position=94781859"
|
|
```
|
|
|
|
### 7. Clinical Annotation Endpoint
|
|
|
|
Access curated literature annotations for gene-drug-phenotype relationships.
|
|
|
|
#### Get Clinical Annotations
|
|
|
|
```http
|
|
GET /v1/clinicalAnnotation?gene={gene}&drug={drug}&evidenceLevel={level}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `gene` (query, optional): Gene symbol
|
|
- `drug` (query, optional): Drug name
|
|
- `evidenceLevel` (query, optional): Evidence level (1A, 1B, 2A, 2B, 3, 4)
|
|
- `phenotype` (query, optional): Phenotype or outcome
|
|
|
|
**Example Requests:**
|
|
```bash
|
|
# Get all annotations for a gene
|
|
curl "https://api.clinpgx.org/v1/clinicalAnnotation?gene=CYP2D6"
|
|
|
|
# Get high-quality evidence only
|
|
curl "https://api.clinpgx.org/v1/clinicalAnnotation?evidenceLevel=1A"
|
|
|
|
# Get annotations for specific gene-drug pair
|
|
curl "https://api.clinpgx.org/v1/clinicalAnnotation?gene=TPMT&drug=azathioprine"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
[
|
|
{
|
|
"id": "PA166153683",
|
|
"gene": "CYP2D6",
|
|
"drug": "codeine",
|
|
"phenotype": "Reduced analgesic effect",
|
|
"evidenceLevel": "1A",
|
|
"annotation": "Poor metabolizers have reduced conversion...",
|
|
"pmid": "24618998",
|
|
"studyType": "Clinical trial",
|
|
"population": "European",
|
|
"sources": ["CPIC"]
|
|
}
|
|
]
|
|
```
|
|
|
|
**Evidence Levels:**
|
|
- **1A**: High-quality evidence from guidelines (CPIC, FDA, DPWG)
|
|
- **1B**: High-quality evidence not yet guideline
|
|
- **2A**: Moderate evidence from well-designed studies
|
|
- **2B**: Moderate evidence with some limitations
|
|
- **3**: Limited or conflicting evidence
|
|
- **4**: Case reports or weak evidence
|
|
|
|
### 8. Drug Label Endpoint
|
|
|
|
Retrieve regulatory drug label information with pharmacogenomic content.
|
|
|
|
#### Get Drug Labels
|
|
|
|
```http
|
|
GET /v1/drugLabel?drug={drug_name}&source={source}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `drug` (query, required): Drug name
|
|
- `source` (query, optional): Regulatory source (FDA, EMA, PMDA, Health Canada)
|
|
|
|
**Example Requests:**
|
|
```bash
|
|
# Get all labels for warfarin
|
|
curl "https://api.clinpgx.org/v1/drugLabel?drug=warfarin"
|
|
|
|
# Get only FDA labels
|
|
curl "https://api.clinpgx.org/v1/drugLabel?drug=warfarin&source=FDA"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
[
|
|
{
|
|
"id": "DL001234",
|
|
"drug": "warfarin",
|
|
"source": "FDA",
|
|
"sections": {
|
|
"testing": "Consider CYP2C9 and VKORC1 genotyping...",
|
|
"dosing": "Dose adjustment based on genotype...",
|
|
"warnings": "Risk of bleeding in certain genotypes"
|
|
},
|
|
"biomarkers": ["CYP2C9", "VKORC1"],
|
|
"testingRecommended": true,
|
|
"labelUrl": "https://dailymed.nlm.nih.gov/...",
|
|
"lastUpdated": "2024-01-15"
|
|
}
|
|
]
|
|
```
|
|
|
|
### 9. Pathway Endpoint
|
|
|
|
Access pharmacokinetic and pharmacodynamic pathway diagrams and information.
|
|
|
|
#### Get Pathway by ID
|
|
|
|
```http
|
|
GET /v1/pathway/{pathway_id}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `pathway_id` (path, required): ClinPGx pathway identifier
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/pathway/PA146123006"
|
|
```
|
|
|
|
#### Search Pathways
|
|
|
|
```http
|
|
GET /v1/pathway?drug={drug_name}&gene={gene}
|
|
```
|
|
|
|
**Parameters:**
|
|
- `drug` (query, optional): Drug name
|
|
- `gene` (query, optional): Gene symbol
|
|
|
|
**Example:**
|
|
```bash
|
|
curl "https://api.clinpgx.org/v1/pathway?drug=warfarin"
|
|
```
|
|
|
|
**Example Response:**
|
|
```json
|
|
{
|
|
"id": "PA146123006",
|
|
"name": "Warfarin Pharmacokinetics and Pharmacodynamics",
|
|
"drugs": ["warfarin"],
|
|
"genes": ["CYP2C9", "VKORC1", "CYP4F2", "GGCX"],
|
|
"description": "Warfarin is metabolized primarily by CYP2C9...",
|
|
"diagramUrl": "https://www.clinpgx.org/pathway/...",
|
|
"steps": [
|
|
{
|
|
"step": 1,
|
|
"process": "Absorption",
|
|
"genes": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"process": "Metabolism",
|
|
"genes": ["CYP2C9", "CYP2C19"]
|
|
},
|
|
{
|
|
"step": 3,
|
|
"process": "Target interaction",
|
|
"genes": ["VKORC1"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Query Patterns and Examples
|
|
|
|
### Common Query Patterns
|
|
|
|
#### 1. Patient Medication Review
|
|
|
|
Query all gene-drug pairs for a patient's medications:
|
|
|
|
```python
|
|
import requests
|
|
|
|
patient_meds = ["clopidogrel", "simvastatin", "codeine"]
|
|
patient_genes = {"CYP2C19": "*1/*2", "CYP2D6": "*1/*1", "SLCO1B1": "*1/*5"}
|
|
|
|
for med in patient_meds:
|
|
for gene in patient_genes:
|
|
response = requests.get(
|
|
"https://api.clinpgx.org/v1/geneDrugPair",
|
|
params={"gene": gene, "drug": med}
|
|
)
|
|
pairs = response.json()
|
|
# Check for interactions
|
|
```
|
|
|
|
#### 2. Actionable Gene Panel
|
|
|
|
Find all genes with CPIC Level A recommendations:
|
|
|
|
```python
|
|
response = requests.get(
|
|
"https://api.clinpgx.org/v1/geneDrugPair",
|
|
params={"cpicLevel": "A"}
|
|
)
|
|
actionable_pairs = response.json()
|
|
|
|
genes = set(pair['gene'] for pair in actionable_pairs)
|
|
print(f"Panel should include: {sorted(genes)}")
|
|
```
|
|
|
|
#### 3. Population Frequency Analysis
|
|
|
|
Compare allele frequencies across populations:
|
|
|
|
```python
|
|
alleles = requests.get(
|
|
"https://api.clinpgx.org/v1/allele",
|
|
params={"gene": "CYP2D6"}
|
|
).json()
|
|
|
|
# Calculate phenotype frequencies
|
|
pm_freq = {} # Poor metabolizer frequencies
|
|
for allele in alleles:
|
|
if allele['function'] == 'No function':
|
|
for pop, freq in allele['frequencies'].items():
|
|
pm_freq[pop] = pm_freq.get(pop, 0) + freq
|
|
```
|
|
|
|
#### 4. Drug Safety Screen
|
|
|
|
Check for high-risk gene-drug associations:
|
|
|
|
```python
|
|
# Screen for HLA-B*57:01 before abacavir
|
|
response = requests.get(
|
|
"https://api.clinpgx.org/v1/geneDrugPair",
|
|
params={"gene": "HLA-B", "drug": "abacavir"}
|
|
)
|
|
pair = response.json()[0]
|
|
|
|
if pair['cpicLevel'] == 'A':
|
|
print("CRITICAL: Do not use if HLA-B*57:01 positive")
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
### Common Error Responses
|
|
|
|
#### 404 Not Found
|
|
```json
|
|
{
|
|
"error": "Resource not found",
|
|
"message": "Gene 'INVALID' does not exist"
|
|
}
|
|
```
|
|
|
|
#### 429 Too Many Requests
|
|
```json
|
|
{
|
|
"error": "Rate limit exceeded",
|
|
"message": "Maximum 2 requests per second allowed"
|
|
}
|
|
```
|
|
|
|
### Recommended Error Handling Pattern
|
|
|
|
```python
|
|
import requests
|
|
import time
|
|
|
|
def safe_query(url, params=None, max_retries=3):
|
|
for attempt in range(max_retries):
|
|
try:
|
|
response = requests.get(url, params=params, timeout=10)
|
|
|
|
if response.status_code == 200:
|
|
time.sleep(0.5) # Rate limiting
|
|
return response.json()
|
|
elif response.status_code == 429:
|
|
wait = 2 ** attempt
|
|
print(f"Rate limited. Waiting {wait}s...")
|
|
time.sleep(wait)
|
|
elif response.status_code == 404:
|
|
print("Resource not found")
|
|
return None
|
|
else:
|
|
response.raise_for_status()
|
|
|
|
except requests.RequestException as e:
|
|
print(f"Attempt {attempt + 1} failed: {e}")
|
|
if attempt == max_retries - 1:
|
|
raise
|
|
|
|
return None
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
### Rate Limiting
|
|
- Implement 500ms delay between requests (2 requests/second maximum)
|
|
- Use exponential backoff for rate limit errors
|
|
- Consider caching results for frequently accessed data
|
|
- For bulk operations, contact api@clinpgx.org
|
|
|
|
### Caching Strategy
|
|
```python
|
|
import json
|
|
from pathlib import Path
|
|
|
|
def cached_query(cache_file, query_func, *args, **kwargs):
|
|
cache_path = Path(cache_file)
|
|
|
|
if cache_path.exists():
|
|
with open(cache_path) as f:
|
|
return json.load(f)
|
|
|
|
result = query_func(*args, **kwargs)
|
|
|
|
if result:
|
|
with open(cache_path, 'w') as f:
|
|
json.dump(result, f)
|
|
|
|
return result
|
|
```
|
|
|
|
### Batch Processing
|
|
```python
|
|
import time
|
|
|
|
def batch_gene_query(genes, delay=0.5):
|
|
results = {}
|
|
for gene in genes:
|
|
response = requests.get(f"https://api.clinpgx.org/v1/gene/{gene}")
|
|
if response.status_code == 200:
|
|
results[gene] = response.json()
|
|
time.sleep(delay)
|
|
return results
|
|
```
|
|
|
|
## Data Schema Definitions
|
|
|
|
### Gene Object
|
|
```typescript
|
|
{
|
|
id: string; // ClinPGx gene ID
|
|
symbol: string; // HGNC gene symbol
|
|
name: string; // Full gene name
|
|
chromosome: string; // Chromosome location
|
|
function: string; // Pharmacogenomic function
|
|
clinicalAnnotations: number; // Count of annotations
|
|
relatedDrugs: string[]; // Associated drugs
|
|
}
|
|
```
|
|
|
|
### Drug Object
|
|
```typescript
|
|
{
|
|
id: string; // ClinPGx drug ID
|
|
name: string; // Generic name
|
|
tradeNames: string[]; // Brand names
|
|
drugClasses: string[]; // Therapeutic classes
|
|
indication: string; // Primary indication
|
|
relatedGenes: string[]; // Pharmacogenes
|
|
}
|
|
```
|
|
|
|
### Gene-Drug Pair Object
|
|
```typescript
|
|
{
|
|
gene: string; // Gene symbol
|
|
drug: string; // Drug name
|
|
sources: string[]; // CPIC, FDA, DPWG, etc.
|
|
cpicLevel: string; // A, B, C, D
|
|
evidenceLevel: string; // 1A, 1B, 2A, 2B, 3, 4
|
|
hasGuideline: boolean; // Has clinical guideline
|
|
}
|
|
```
|
|
|
|
### Allele Object
|
|
```typescript
|
|
{
|
|
name: string; // Allele name (e.g., CYP2D6*4)
|
|
gene: string; // Gene symbol
|
|
function: string; // Normal/decreased/no/increased/uncertain
|
|
activityScore: number; // 0.0 to 2.0+
|
|
frequencies: { // Population frequencies
|
|
[population: string]: number;
|
|
};
|
|
definingVariants: string[]; // rsIDs or descriptions
|
|
}
|
|
```
|
|
|
|
## API Stability and Versioning
|
|
|
|
### Current Status
|
|
- API version: v1
|
|
- Stability: Beta - endpoints stable, parameters may change
|
|
- Monitor: https://blog.clinpgx.org/ for updates
|
|
|
|
### Migration from PharmGKB
|
|
As of July 2025, PharmGKB URLs redirect to ClinPGx. Update references:
|
|
- Old: `https://api.pharmgkb.org/`
|
|
- New: `https://api.clinpgx.org/`
|
|
|
|
### Future Changes
|
|
- Watch for API v2 announcements
|
|
- Breaking changes will be announced on ClinPGx Blog
|
|
- Consider version pinning for production applications
|
|
|
|
## Support and Contact
|
|
|
|
- **API Issues**: api@clinpgx.org
|
|
- **Documentation**: https://api.clinpgx.org/
|
|
- **General Questions**: https://www.clinpgx.org/page/faqs
|
|
- **Blog**: https://blog.clinpgx.org/
|
|
- **CPIC Guidelines**: https://cpicpgx.org/
|
|
|
|
## Related Resources
|
|
|
|
- **PharmCAT**: Pharmacogenomic variant calling and annotation tool
|
|
- **PharmVar**: Pharmacogene allele nomenclature database
|
|
- **CPIC**: Clinical Pharmacogenetics Implementation Consortium
|
|
- **DPWG**: Dutch Pharmacogenetics Working Group
|
|
- **ClinGen**: Clinical Genome Resource
|