Pharmacogenetic DNA Testing: What It Measures and How to Run It on Your Own Genome
A pharmacogenetic DNA test (“pharma DNA” in the consumer marketing) genotypes roughly a dozen to two dozen genes whose products metabolize or transport drugs. It then converts those genotypes into named haplotypes, the star alleles written like CYP2C19*2. It combines the two inherited haplotypes into a diplotype and maps that diplotype onto a metabolizer phenotype. The phenotype is a label such as poor, intermediate, normal, rapid, or ultrarapid. That is the entire output. It is a measurement of your germline sequence at a handful of loci with well-characterized drug consequences, and nothing about your current physiology, liver function, drug interactions, or adherence. If you already have whole-genome sequencing, you can produce the same report yourself from your own BAM and VCF files, and for most genes it will be as good as or better than the commercial panel.
What the genes cover
The clinically interpreted set is small and stable. The Clinical Pharmacogenetics Implementation Consortium (CPIC) publishes guidelines for a few dozen genes covering more than a hundred drug-gene pairs. The high-evidence core is narrower still.
CYP2C19(clopidogrel, several proton pump inhibitors, some antidepressants)CYP2D6(codeine, tamoxifen, many psychiatric drugs)CYP2C9andVKORC1(warfarin dosing algorithms)DPYD(fluoropyrimidine toxicity)TPMTandNUDT15(thiopurine toxicity)SLCO1B1(statin-associated myopathy risk)UGT1A1(irinotecan)- the HLA alleles
HLA-B*57:01,HLA-B*15:02, andHLA-A*31:01(severe hypersensitivity reactions)
The chemotherapy-related genes carry the largest effect sizes, because a loss-of-function DPYD or TPMT genotype changes systemic exposure by a large multiple rather than a few percent 1.
Star-allele nomenclature is curated by PharmVar, and the diplotype-to-phenotype translation tables are maintained by CPIC. The American College of Medical Genetics and Genomics has published a technical standard covering allele nomenclature, minimum variant content, and how results should be reported, which is the document to read if you want to know what a clinical-grade report is required to contain 2. Two labs testing the same sample can report different phenotypes simply because they interrogated different variant sets, which is why the ACMG standard emphasizes explicit reporting of which alleles were tested.
Why sequencing beats a fixed genotyping panel
Array-based and targeted genotyping assays test a predefined list of positions. If you carry a rare or novel loss-of-function variant in CYP2C9 that is not on the probe list, the assay returns the reference allele by construction and you are reported as a normal metabolizer. The central limitation of consumer pharmacogenetic products lies here.
Direct comparisons of genome sequencing against clinical genotyping platforms across pharmacogenes find that sequencing recovers variants the panels are blind to, including rare coding variants of predicted functional consequence 3. Exome-scale population data makes the reason obvious: the overwhelming majority of protein-altering variation is rare, and most individuals carry rare functional variants somewhere in the pharmacogene set 4. Next-generation sequencing also lets you re-interpret the same data when PharmVar adds an allele definition, without re-collecting a sample 5.
The tradeoff is that sequencing introduces its own failure modes, mostly in read mapping and copy-number calling, and it produces variants of uncertain function that no translation table covers. Clinical laboratories have been working through exactly these problems as they move pharmacogenomics onto sequencing platforms 6.
Running the pipeline on your own data
We would use PharmCAT as the backbone. It takes a VCF aligned to GRCh38, matches named alleles, assigns phenotypes from the CPIC and DPWG tables, and emits an HTML report plus a machine-readable JSON.
Prepare the input first. PharmCAT expects a bgzipped, indexed VCF with biallelic records and positions expressed against GRCh38:
bcftools norm -m -any -f GRCh38.fa sample.vcf.gz \
| bcftools norm -d exact -Oz -o sample.norm.vcf.gz
bcftools index -t sample.norm.vcf.gz
pharmcat_pipeline sample.norm.vcf.gz -o pgx_out/
Two details matter more than they look. First, PharmCAT needs reference calls as well as variant calls. Variant calls alone are not enough. A position absent from your VCF is ambiguous between homozygous reference and no coverage, and the preprocessor will flag it. If your VCF came from a joint-genotyping pipeline that dropped non-variant sites, regenerate a gVCF or run bcftools mpileup restricted to the PharmCAT positions file. Second, phase matters. With unphased data, PharmCAT reports all diplotypes consistent with the observed genotypes. A gene like CYP2C19 has a common gain-of-function allele (*17) and common loss-of-function alleles, so an unphased heterozygote can be genuinely ambiguous. If you have long reads or a phased VCF from a read-backed phasing step such as WhatsHap, pass it through and the ambiguity collapses.
CYP2D6 needs a dedicated caller
CYP2D6 is the gene that breaks naive pipelines, and it is also the gene with the most drug associations. It sits next to two highly similar pseudogenes, CYP2D7 and CYP2D8, it has whole-gene deletions (*5), duplications and multiplications that produce ultrarapid metabolism, and hybrid alleles formed by unequal crossover between CYP2D6 and CYP2D7. Short reads mismap between the gene and the pseudogene, so a standard GATK VCF over that region is unreliable for both SNVs and copy number.
Use a specialized caller on the aligned reads rather than the VCF. Cyrius is designed for exactly this and calls CYP2D6 diplotypes including copy number and common hybrids from a 30x whole-genome BAM:
python star_caller.py --manifest manifest.txt --genome 38 \
--prefix sample --outDir cyp2d6_out/ --threads 4
Aldy and PyPGx are reasonable alternatives, and Aldy extends to other structurally complex genes. Whichever you choose, feed the result back into PharmCAT as an outside call: a small TSV of gene and diplotype that the phenotyper consumes in place of its own matcher output. Do not accept a CYP2D6 result from a pipeline that does not explicitly model copy number, and do not accept one from exome data at all unless coverage across the region is uniform, which it usually is not.
HLA alleles are the other special case. HLA-B*57:01 and its relatives require HLA-specific typing, using a tool such as HLA-LA or OptiType on the BAM, because the region’s polymorphism defeats reference-based variant calling. If a report claims HLA results from an array, ask whether it typed the allele or used a tag SNP in linkage disequilibrium with it, since tag-SNP imputation has ancestry-dependent accuracy.
How reliable the result is, and what it cannot tell you
For the genotyping step, modern sequencing is highly accurate at well-mapped single-nucleotide sites, and concordance between platforms is high for common star alleles. The uncertainty sits downstream. Diplotype-to-phenotype translation is a discretization of a continuous enzyme activity distribution, and the activity-score cutoffs that separate intermediate from normal metabolizers are consensus conventions rather than measurements of your enzyme. The genes explain part of the variance in drug response, alongside age, hepatic and renal function, co-administered inhibitors and inducers, and the pharmacodynamic target, which is often not genotyped at all. The field’s long history is a repeated lesson that single-gene predictors underperform the expectations set for them 7.
Coverage is the other practical limit. A pharmacogenetic report covers the drugs whose gene associations reached guideline-level evidence, which is a small slice of any formulary. Claims that a test covers “150+ medications” generally count every drug with a label mention or a low-evidence PharmGKB annotation. The count is not limited to drugs with actionable CPIC guidance.
Everything here is measurement. Interpreting a DPYD or TPMT result before chemotherapy is a clinical decision, and so is changing any medication on the basis of a metabolizer phenotype. That decision belongs with your prescribing physician or a clinical pharmacist, working from a report issued by a CLIA-certified laboratory. A research-grade pipeline run on your own BAM is excellent for understanding your data and for knowing what to ask, and it is not a clinical result.
Questions people also ask
How reliable is pharmacogenetic testing? Genotyping accuracy is high for well-characterized alleles at well-mapped positions, and lower for structurally complex genes such as CYP2D6 and for HLA typing done by imputation rather than direct typing. The larger source of error is coverage: a panel reports normal metabolizer status for any variant it did not test, and sequencing-based approaches detect functional variants that targeted genotyping misses 3.
Does insurance cover pharmacogenomic testing? Coverage in the United States is inconsistent and generally tied to a specific clinical indication, most commonly DPYD or TPMT/NUDT15 testing before particular chemotherapy regimens, or testing ordered in response to a documented treatment problem. Broad preemptive panels ordered without an indication are frequently denied. Ask your insurer for the policy by test code before ordering.
What is a pharmacological DNA test used for? Two things: avoiding drugs likely to cause a severe reaction in carriers of specific alleles, and informing dose selection where exposure depends strongly on a single enzyme. The same variant data also has value on the research side, where genotype-stratified response has long been used to interpret trial results and understand differential efficacy 8.
Can I get this from whole-genome sequencing I already have? Yes, provided the data is aligned to GRCh38 at around 30x with the BAM retained. Run PharmCAT for the SNV-defined genes, a dedicated caller for CYP2D6, and an HLA typer for the hypersensitivity alleles, and you will reproduce most of a commercial panel with better rare-variant sensitivity 5.
Footnotes
-
Aneesha Choudary Gummadi, Achuta Kumar Guddati. Genetic Polymorphisms in Pharmaceuticals and Chemotherapy. World Journal of Oncology, 2021. https://doi.org/10.14740/wjon1405 ↩
-
Marwan K. Tayeh, Andrea Gaedigk, Matthew P. Goetz, et al. Clinical pharmacogenomic testing and reporting: A technical standard of the American College of Medical Genetics and Genomics (ACMG). Genetics in Medicine, 2022. https://doi.org/10.1016/j.gim.2021.12.009 ↩
-
W Yang, G Wu, U Broeckel, et al. Comparison of genome sequencing and clinical genotyping for pharmacogenes. Clinical Pharmacology & Therapeutics, 2016. https://doi.org/10.1002/cpt.411 ↩ ↩2
-
Joseph D. Szustakowski, Suganthi Balasubramanian, Ariella Sasson, et al. Advancing Human Genetics Research and Drug Discovery through Exome Sequencing of the UK Biobank. 2020. https://doi.org/10.1101/2020.11.02.20222232 ↩
-
Ute I. Schwarz, Markus Gulilat, Richard B. Kim. The Role of Next-Generation Sequencing in Pharmacogenetics and Pharmacogenomics. Cold Spring Harbor Perspectives in Medicine, 2018. https://doi.org/10.1101/cshperspect.a033027 ↩ ↩2
-
Yuan Ji, Yue Si, Gwendolyn A. McMillin, et al. Clinical pharmacogenomics testing in the era of next generation sequencing: challenges and opportunities for precision medicine. Expert Review of Molecular Diagnostics, 2018. https://doi.org/10.1080/14737159.2018.1461561 ↩
-
Daniel W. Nebert, Ge Zhang, Elliot S. Vesell. From Human Genetics and Genomics to Pharmacogenetics and Pharmacogenomics: Past Lessons, Future Directions. Drug Metabolism Reviews, 2008. https://doi.org/10.1080/03602530801952864 ↩
-
Allen D. Roses. Genome-based pharmacogenetics and the pharmaceutical industry. Nature Reviews Drug Discovery, 2002. https://doi.org/10.1038/nrd840 ↩
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.