Pharmacogenetics From Your Own Genome: What It Tells You, What It Misses
“Genetic pharmacy” usually refers to pharmacogenomics delivered at the pharmacy counter: a cheek swab, a panel of drug-metabolism genes, and a report telling the pharmacist that you are, say, a CYP2C19 intermediate metabolizer. The useful answer for someone with sequencing data is that you do not need the swab. If you have a 30x whole-genome BAM or CRAM, you already contain everything a $350 pharmacogenetic panel measures, plus the variants those panels leave off. You can produce a CPIC-conformant diplotype call yourself with open-source tools in about an hour of compute. What you cannot do yourself is act on it. Dose selection, drug choice, and interpretation in the context of everything else you take belong to a prescribing clinician. This page does not attempt them.
The gene set that carries most of the signal
Pharmacogenomics is unusual among genomic applications in that the evidence concentrates in a small, stable set of loci. The Clinical Pharmacogenetics Implementation Consortium (CPIC) publishes prescribing guidelines covering roughly two dozen genes and well over a hundred drugs, and each guideline assigns an evidence level, with level A meaning that genetic information should change prescribing. That list has grown slowly and predictably since the field’s first clinical translations two decades ago 1.
The genes doing most of the work are listed below.
- the cytochrome P450 enzymes CYP2D6, CYP2C19, CYP2C9, CYP3A5, and CYP4F2
- the transporter SLCO1B1
- the thiopurine-handling enzymes TPMT and NUDT15
- the fluoropyrimidine enzyme DPYD
- the glucuronidation enzyme UGT1A1
- VKORC1 in the vitamin K cycle
- G6PD on the X chromosome
- several HLA class I alleles that predict immune-mediated hypersensitivity, notably HLA-B*57:01, HLA-B*15:02, and HLA-A*31:01
Most of these are described not by single variants but by star alleles: haplotypes, numbered by convention, that bundle several positions together. CYP2D6*4 is a splice-disrupting haplotype, CYP2C19*17 is a promoter variant that raises expression, and a diplotype like CYP2C19 *1/*17 is what maps to a metabolizer phenotype.
Note also what is absent. Variation in drug targets, as opposed to drug metabolism, remains thinly evidenced outside oncology. Much of the interesting biology of drug response involves structural interactions and pathway context rather than single enzymes 2. Broader genotype-to-drug-response inference from exomes and genomes is still an active research problem rather than a clinical product 3.
Calling star alleles from sequencing data
The reference implementation is PharmCAT. It takes a VCF aligned to GRCh38 and emits diplotypes, CPIC phenotypes, and a report. PharmCAT is strict about input, and the strictness is the point: it requires that the pharmacogene positions be present with explicit reference calls rather than absent, because a missing row is ambiguous between “reference” and “not sequenced.” Run the bundled preprocessor first.
pharmcat_vcf_preprocessor \
-vcf sample.g.vcf.gz \
-refFna GRCh38_full_analysis_set_plus_decoy_hla.fa \
-o pgx/
The preprocessor normalizes indel representation with bcftools norm, splits multiallelic sites, and restricts to the PharmCAT position list. Then run the pipeline itself, which chains the named allele matcher, the phenotyper, and the reporter:
pharmcat -vcf pgx/sample.preprocessed.vcf.bgz \
-reporterHtml -matcherHtml -o results/
CYP2D6 is the exception that will cost you the most time. The gene sits next to two near-identical pseudogenes, CYP2D7 and CYP2D8. Real haplotypes include whole-gene deletions, duplications and multiplications up to thirteen copies, and CYP2D6-CYP2D7 hybrid genes. A VCF cannot represent any of that. PharmCAT expects you to call CYP2D6 with a dedicated caller and hand the result in as an outside call file via -po. We use Cyrius, which operates on the aligned CRAM directly and was built for exactly this locus, and cross-check against Aldy 4 or StellarPGx when the two disagree. Disagreements cluster on the hybrid alleles and on samples with three or more functional copies, and they are informative: a discordant call means you should treat CYP2D6 as unresolved rather than pick the answer you like.
HLA needs its own path as well. Class I typing at two-field resolution from short reads is reliable with OptiType or HLA-HD on 30x data, and if the alignment used an HLA-aware reference such as the GRCh38 analysis set with alt contigs, you should extract reads by locus rather than trusting the primary alignment.
Two library-prep details determine whether any of this works. PCR-free libraries matter because CYP2D6 and the UGT1A1 promoter are GC-rich and PCR amplification depletes coverage there. And 30x mean coverage is a floor, not a target, if you care about copy number: local dropout in the CYP2D6 region on a 25x genome will produce a confident and wrong deletion call.
Why array-based and consumer panels miss things
Most pharmacy-delivered and direct-to-consumer tests genotype a fixed set of positions, typically between 30 and 150 variants across 10 to 25 genes. They report only what they interrogate, and everything not interrogated is silently assumed to be reference. The practical failure mode is that a rare loss-of-function allele gets called as *1, and the report reads “normal metabolizer” with no indication of uncertainty. This is a known and documented weakness of consumer pharmacogenomic reports, and pharmacists receiving them are often given no way to see which alleles were tested 4.
Three concrete gaps recur. DPYD HapB3 is defined by an intronic variant, c.1129-5923C>G, that many panels omit entirely. It is nonetheless one of the more common decreased-function alleles in European-ancestry populations. UGT1A1*28 is a TA dinucleotide repeat expansion in the promoter, which short-read callers handle poorly and array platforms usually skip in favor of a tagging SNP that does not tag well across ancestries. And star allele definitions are ancestry-skewed by history: alleles common in African and East Asian populations, such as CYP2D6*17 and *29, or NUDT15*3, appear on some panels and not others, so the same person can receive different phenotype assignments from two vendors. Evaluating a pharmacogenomic test therefore means evaluating its allele definition table and its interpretation software as well as its gene list. The gene list alone is not enough 5.
Genotype is not phenotype
A diplotype predicts enzyme activity in the absence of anything else acting on that enzyme. In real life, other drugs inhibit or induce the same enzymes, and a genotypic normal metabolizer taking a strong CYP2D6 inhibitor behaves like a poor metabolizer. This phenomenon is called phenoconversion. It is why a static genetic report is an input to prescribing rather than a decision, and why implementation programs put the result in the electronic record with active decision support rather than handing the patient a PDF 6. Large-scale implementation efforts have concluded that the delivery infrastructure, not the assay, is the binding constraint 7.
This is also where longitudinal molecular data earns its place. Genotype is fixed, but expression of the same genes is not. RNA sequencing of whole blood gives CYP and transporter transcript levels at a point in time. Plasma proteomics plus standard chemistry panels give you liver and kidney function, which shifts clearance far more than most common variants do. Genetic variation sets the baseline and the rest of the profile tells you where you are relative to it 8.
What we would do
Sequence once at 30x PCR-free, keep the CRAM, and run PharmCAT with a Cyrius outside call for CYP2D6 and OptiType for HLA class I. Store the diplotype table as structured data rather than a report, because CPIC guidelines are revised and allele definitions are added, and a re-run against next year’s definitions costs nothing when you kept the alignment. Then take the diplotypes, along with the list of genes that came back as uncalled or discordant, to a clinician or a pharmacist with pharmacogenomics training before any prescribing decision is made. The uncalled list matters as much as the calls.
Questions people also ask
Which companies offer the best pharmacogenetic testing services? For a clinical-grade panel with a report a prescriber will accept, the established CLIA options include OneOme RightMed, Myriad GeneSight, Genomind, and the large reference labs. They differ mainly in allele coverage per gene and in whether the interpretation engine follows CPIC or a proprietary algorithm, and we would choose on those two criteria rather than on brand. If you already have whole-genome data, a panel adds a signed clinical report and little new information, with the exception of loci your sequencing failed to cover.
What is the cost of pharmacogenetic testing? Cash prices for multi-gene panels generally fall in the low hundreds of dollars, with consumer genotyping products that include a limited set of FDA-authorized pharmacogenetic reports costing less. Insurance coverage is inconsistent and usually tied to a specific drug indication rather than to preemptive testing. A 30x whole genome costs more up front and covers the same loci plus everything else.
Does Labcorp offer pharmacogenetic testing? Yes. Labcorp and Quest both offer individual gene tests as well as bundled panels, ordered through a physician. The individual gene tests include the following.
- CYP2C19
- CYP2D6
- TPMT
- NUDT15
- DPYD
- HLA-B*57:01
Ask for the allele definition table before ordering, since the per-gene allele coverage is what determines whether a “normal” result means anything.
Can my pharmacist use a report I generated myself? A pharmacist can read it, but most will not act on results from a non-CLIA source, and they are right to be cautious given how variable consumer report quality has been 4. Treat a self-run PharmCAT report as a research result that tells you which confirmatory clinical test to order.
Footnotes
-
Jaekyu Shin, Steven R. Kayser, Taimour Y. Langaee. Pharmacogenetics: from discovery to patient care. American Journal of Health-System Pharmacy, 2009. https://doi.org/10.2146/ajhp080170 ↩
-
Lei Xie, Xiaoxia Ge, Hepan Tan, et al. Towards Structural Systems Pharmacology to Study Complex Diseases and Personalized Medicine. PLoS Computational Biology, 2014. https://doi.org/10.1371/journal.pcbi.1003554 ↩
-
Safa A Abdalla, Azza Saeed, Lamees Ahmed, et al. Whole-Exome and Whole-Genome Sequencing of Candidate Pharmacogenomic and Schizophrenia-Related Genes in Sudanese Families with Schizophrenia. Pharmacogenomics and Personalized Medicine, 2026. https://doi.org/10.2147/pgpm.s616976 ↩
-
Roseann S. Gammal, Jason Mayes, Kelly E. Caudle. Ready or not, here it comes: Direct-to-consumer pharmacogenomic testing and its implications for community pharmacists. Journal of the American Pharmacists Association, 2019. https://doi.org/10.1016/j.japh.2019.06.008 ↩ ↩2
-
Gouri Mukerjee, Andrea Huston, Boyko Kabakchiev, et al. User considerations in assessing pharmacogenomic tests and their clinical support tools. npj Genomic Medicine, 2018. https://doi.org/10.1038/s41525-018-0065-4 ↩
-
Susanne B. Haga. Challenges of development and implementation of point of care pharmacogenetic testing. Expert Review of Molecular Diagnostics, 2016. https://doi.org/10.1080/14737159.2016.1211934 ↩
-
Richard M Turner, William G Newman, Elvira Bramon, et al. Pharmacogenomics in the Uk National Health Service: Opportunities and Challenges. Pharmacogenomics, 2020. https://doi.org/10.2217/pgs-2020-0091 ↩
-
Fathiah O. Oladele, Gloria E. Ebimo-Moko, Jochebed D. Joel, et al. GENETIC VARIATION AND ITS ROLE IN HEALTH AND PHARMACOLOGY: A NARRATIVE REVIEW. Universal Journal of Pharmaceutical Research, 2026. https://doi.org/10.22270/ujpr.v11i3.1580 ↩
Woolf Software builds longitudinal molecular profiles of individuals: whole-genome sequencing, blood RNA sequencing, and plasma proteomics, delivered as a detailed report plus every data file. Build your profile.