PharmGKB pharmacogenomics lookup is annotation, not a dose
PharmGKB pharmacogenomics lookup means reading curated variant-drug and gene-drug annotations from the literature. Evidence levels describe how strong that literature is. None of that is a prescription.
CPIC and other groups publish related guidelines. genome.sh does not implement those guidelines as a dosing engine. It looks up bundled PharmGKB annotations for identifiers you already have.
A clinician who has the right assay and the rest of the medication list is the person who doses. A CLI row is a public pointer into PharmGKB, not a change to a pill.
- PharmGKB: curated variant-drug and gene-drug annotations
- CPIC: clinical guidelines that genome.sh does not compute
- genome.sh: local lookup of bundled tables for an rsID or gene
What PharmGKB curates
Variant annotations attach an rsID or haplotype to a drug phenotype with an evidence level. Gene annotations collect pathway and drug relationships even when no single SNP is the whole story.
Star alleles such as CYP2C19*2 are haplotype names. They are often tagged by one famous rsID in consumer files, then under-called relative to a clinical PGx panel. rs4244285 is the usual CYP2C19*2 tag people type.
Coverage on consumer arrays is incomplete. Many guideline SNPs are absent. If the rsID is missing from the export, write not called. Do not infer *1 from silence.
Warfarin-related CYP2C9 tags such as rs1799853 and rs1057910 show up in the same searches. They are still not a dose. A missing tag SNP is not *1. Write not called and leave the prescription alone.
Query a PharmGKB rsID with genome.sh
Install a database tier that includes PharmGKB, then query the rsID as usual. JSON is the right form for scripts. Human output is for one site in a terminal.
lite may omit PharmGKB. standard and full are the tiers that usually ship it. Confirm with genome db stats or GET /v1/sources.
The HTTP API accepts the rsID without a key and rejects genome files. Match the annotation to a local export yourself.
cargo install genome-sh genome db install standard genome query rs4244285 --format json | jq . curl -s https://api.genome.sh/v1/query/rs4244285 | jq . curl -s https://api.genome.sh/v1/sources | jq .
Evidence levels and neighboring CPIC guidelines
PharmGKB evidence levels run from 1A down. 1A usually means a variant-drug pair that also has a CPIC or equivalent guideline. Lower levels are literature with less consensus.
Seeing 1A in JSON is not a license to change a dose from a 23andMe file. Clinical PGx uses validated assays, star-allele calling, and the medication list. genome.sh prints the public annotation.
ClinVar also stores some drug-response assertions. They are not the same object as a PharmGKB annotation. Read both if both appear, and do not flatten them into Pathogenic.
If both PharmGKB and ClinVar drug-response labels appear, keep both source names in JSON. Merging them into one severity rank is how a pipeline starts pretending it is CPIC.
- 1A / 1B: strongest PharmGKB variant-drug evidence
- 2 and below: supporting literature, not a dosing rule
- ClinVar drug response: a separate submitted label
Consumer chips miss many PGx sites
A typical consumer export has on the order of 600,000 rows. Clinical pharmacogenomic panels still miss haplotypes. A chip misses more.
CYP2C19, CYP2D6, CYP2C9, SLCO1B1, and TPMT are the gene names people search. Each has star alleles defined by combinations of variants, some of which are not on the array, some of which are copy-number events a chip cannot see.
If you annotate a VCF, you still only see sites the caller emitted. Missing rows are not wild type. genome annotate file.vcf.gz --format json will not invent *1.
genome query rs4244285 genome query rs1799853 --format json genome annotate sample.vcf.gz --format json grep -w rs4244285 23andme.txt || echo not called
Star alleles are a different pipeline
Star-allele calling from a VCF is a specialized pipeline (Aldy, PyPGx, Stargazer, and clinical lab software). genome.sh does not assign CYP2C19*2/*17 from a chip row.
You can look up the tag SNPs that appear in PharmGKB. You cannot reconstruct a full diplotype from one rsID. Do not print a star name in a PDF unless a dedicated caller produced it.
That limit is the honest product. Identifier lookup is local and fast. Clinical PGx remains a lab test.
Keep genotypes local and skip self-prescription
Query the rsID over HTTPS if you want. Match it to the file on disk. Do not paste a 23andMe export into a chatbot to ask what warfarin dose you should take.
The in-browser importer at /import parses supported files in the tab. The API still only accepts identifiers. genome.sh is informational software, not a medical device.
If a coding agent helps, give it the local CLI prompt and forbid upload. Print public annotations. Leave dosing to a clinician.
Worked rsIDs and a local file match
rs4244285 is the CYP2C19*2 tag people type. Query it, then grep the export. If you are building a report, list the evidence level and the drug names from the annotation, not a homemade dose.
The same pattern works for any PharmGKB rsID in the snapshot. genome query does not need the gene symbol if you already have the rsID. Gene query is a catalog, and it will include variants that are not pharmacogenomic.
Keep the file local. cargo install genome-sh, genome db install standard, then query. The API at https://api.genome.sh/v1/query/rs4244285 is the hosted identifier form with no key.
genome query rs4244285 --format json | jq '{rsid, pharmgkb, clinvar}'
genome query rs1799853 --format json | jq .
grep -w rs4244285 23andme.txt || echo not calledQuestions
How do I do a PharmGKB pharmacogenomics lookup?
Install a genome.sh database tier that includes PharmGKB, then genome query rs4244285 --format json. Or GET https://api.genome.sh/v1/query/rs4244285. Match the rsID to a local file yourself. A missing chip row is not called, not a default star allele.
Is genome.sh a CPIC implementation?
No. It looks up bundled PharmGKB annotations. It does not compute a clinical dosing recommendation.
Which CYP2C19 star alleles are supported?
Only what is in the local annotation tables for the rsIDs you query. Star-allele calling from a VCF is a different pipeline. rs4244285 tags CYP2C19*2; it is not the whole gene.
Can I look up PharmGKB without uploading genotypes?
Yes. Query the rsID. Match it to your local file. The HTTP API rejects genome uploads.
Is rs4244285 on 23andMe?
Often, not always. Check the file. If the row is missing, it was not called. Missing is not *1.
Does PharmGKB tell me my warfarin dose?
No. PharmGKB curates literature. Dosing belongs with a clinician and an appropriate assay. genome.sh will not prescribe, and a consumer chip is not a clinical PGx panel.
Do I need an API key for PharmGKB lookup?
Not for genome.sh identifier lookup. cargo install genome-sh and a local database, or curl https://api.genome.sh/v1/query/rs4244285.
Is a PharmGKB lookup medical advice?
No. It is a public annotation. Clinical pharmacogenomics is a lab and a clinician.