Pharmacogenomic Star Allele
A star allele is a named haplotype of a drug-metabolism gene, defined by a specific set of variants on one chromosome copy, used to translate genotype into a metabolizer phenotype.
A star allele is a named haplotype of a pharmacogene: a defined set of variants that travel together on a single chromosome copy, written as the gene symbol plus an asterisk and a number, like CYP2C19*17 or NUDT15*3. You have two copies of each pharmacogene, so you have two star alleles. The pair is a diplotype, written CYP2C19*1/*17. Each allele carries a function assignment (normal, decreased, no function, increased), and the pair maps to a metabolizer phenotype.
The four phenotype categories most reports use are poor metabolizer (two no-function alleles), intermediate metabolizer (one no-function or two decreased), normal metabolizer, and ultrarapid metabolizer (extra functional copies or increased-function alleles). The idea that inherited variation in drug-metabolizing enzymes explains large differences in drug exposure between people goes back decades and predates sequencing entirely, built from family studies of isoniazid acetylation and debrisoquine hydroxylation.12
How it works
Star alleles exist because single variants are not the useful unit here. Function comes from the combination on one chromosome. CYP2D6*4 is defined by rs3892097 (the 1846G>A splice defect) plus a set of linked upstream and coding variants. If you see rs3892097 as heterozygous in a VCF, you know one chromosome is likely *4, but you do not know what the other chromosome carries until you resolve the full haplotype.
Definitions live at PharmVar, which publishes per-gene tables mapping each numbered allele to variants in HGVS notation relative to a reference sequence. HGVS is the grammar: NM_000106.6:c.100C>T means “in this RefSeq transcript, position 100 of the coding sequence, C becomes T,” and p.(Pro34Ser) is the protein-level consequence. Coordinates differ between genomic (g.), coding (c.), and protein (p.) contexts, which is the most common source of confusion when comparing a PharmVar table to a GRCh38 VCF. PharmVar entries also distinguish core alleles from suballeles: *2 versus *2.001, *2.002, which share the function-defining variants but differ elsewhere.3
Function assignment is a separate, curated step. CPIC expert panels review in vitro and clinical evidence and assign each allele a function label, and those labels get revised. NAT2 was recently recurated into a consolidated set of clinical function assignments after decades of inconsistent slow/rapid acetylator definitions.4
In your own data
From a 30x WGS BAM or CRAM, the practical path is a dedicated caller rather than reading the VCF by hand. PyPGx (the successor to Stargazer) handles the hard genes, and the hard genes are the point: CYP2D6 sits next to two pseudogenes, CYP2D7 and CYP2D8, with which it recombines, producing hybrid alleles like *36 and *68 and whole-gene deletions (*5) and duplications. Stargazer showed that calling these requires reading depth-of-coverage alongside variant calls, not variants alone.5 A caller that only reads a VCF will silently miss *5 and report you as a normal metabolizer.
Concretely, what to check:
- Run the caller on the aligned reads, not on a joint-called VCF:
pypgx run-ngs-pipeline CYP2D6 out-dir --variants your.vcf.gz --depth-of-coverage doc.zip --control-statistics control.zip. The control statistics come from a copy-number-stable region and normalize for library depth. - Record the PharmVar version in your output. Allele definitions change, and a reanalysis of the same samples across definition versions changed diplotype calls and downstream phenotype assignments for a meaningful fraction of individuals, including SLCO1B1 calls relevant to statin guidance.6
- Check phasing. If your pipeline used statistical phasing (Beagle, SHAPEIT) rather than read-backed phasing, heterozygous variants more than a read length apart were assigned by population reference, not observed. For a rare compound heterozygote this fails quietly.
- Check coverage over the gene body. CYP2D6 exon 9 and the GC-rich promoter frequently drop below 10x on PCR-based library preps.
- Do not compare a consumer array report to a WGS call and assume agreement. Arrays genotype a fixed probe set and default everything else to *1, so *1 means “no tested variant found,” not “reference haplotype confirmed.”
Limitations
Star alleles are gene-by-gene and enzyme-centric. They describe metabolism, not drug response, and drug response also depends on transporters, targets, liver and kidney function, other drugs, and diet. Ultrarapid and poor metabolizer phenotypes predict exposure; they do not predict outcome on their own.7
Coverage of allele diversity is uneven across ancestries because the definition tables were built largely from European and East Asian cohorts. Novel haplotypes in underrepresented populations get called *1 by default.8 NUDT15 is the counterexample worth knowing: the clinically important no-function alleles were characterized largely through East Asian and Hispanic cohorts.3
Finally, a diplotype is a measurement, not a prescription. Translating one into any decision about a medication is a clinician’s job, and the call should be confirmed in a clinical laboratory before anyone acts on it.
Woolf Software builds longitudinal molecular profiles of individuals: whole-genome sequencing, RNA sequencing, proteomics, blood biomarkers, and continuous glucose data, integrated into one model of you. Build your profile.
Your VCF holds unphased variant calls; star allele calling is the step that assembles them into two haplotypes and assigns a diplotype, and it depends on phasing, copy number, and the version of the allele definition table you used.
Related Terms
References
- Richard M. Weinshilboum, Liewei Wang. Pharmacogenetics and Pharmacogenomics: Development, Science, and Translation . Annual Review of Genomics and Human Genetics, 2006. DOI
- Daniel W Nebert. Pharmacogenetics and pharmacogenomics: why is this relevant to the clinical geneticist? . Clinical Genetics, 1999. DOI
- Jun J. Yang, Michelle Whirl‐Carrillo, Stuart A. Scott, et al.. Pharmacogene Variation Consortium Gene Introduction: NUDT15 . Clinical Pharmacology & Therapeutics, 2018. DOI
- Bailey M. Tibben, David W. Hein, Michelle Whirl‐Carrillo, et al.. Clinical Function Assignment of NAT2 Alleles by the Clinical Pharmacogenetics Implementation Consortium Pharmacogene Curation Expert Panel . Clinical Pharmacology & Therapeutics, 2026. DOI
- Seung-been Lee, Marsha M. Wheeler, Karynne Patterson, et al.. Stargazer: a software tool for calling star alleles from next-generation sequencing data using CYP2D6 as a model . Genetics in Medicine, 2019. DOI
- Sven van der Maas, Simon Denil, Brigitte Maes, et al.. Dynamic star allele definitions in Pharmacogenomics: impact on diplotype calls, Phenotype predictions and statin therapy recommendations . Frontiers in Pharmacology, 2025. DOI
- Stephen B. Liggett. Pharmacogenetic applications of the Human Genome project . Nature Medicine, 2001. DOI
- Sumi Elsa John, Arshad Mohamed Channanath, Prashantha Hebbar, et al.. PharmaKU: A Web-Based Tool Aimed at Improving Outreach and Clinical Utility of Pharmacogenomics . Journal of Personalized Medicine, 2021. DOI