Home Blog Docs Connect
⚠ NOTICE

This page is for educational purposes only. It is not medical advice and not a diagnostic tool. Pharmacogenomic results should be interpreted by a qualified healthcare professional, ideally one with access to a clinical-grade CYP2D6 assay. Do not change medication based on this page alone.

Gene · Drug Metabolism

CYP2D6

Cytochrome P450 Family 2 Subfamily D Member 6 · Chromosome 22q13.2 · NCBI Gene ID 1565

CYP2D6 metabolizes roughly 25% of all clinically used drugs — including codeine, tramadol, tamoxifen, many antidepressants, antipsychotics, and beta blockers. It is also the most polymorphic CYP450 enzyme in humans, with more than 100 named star alleles. The same dose can lead to very different drug levels across CYP2D6 phenotypes, which is why CPIC and DPWG publish phenotype-based guidelines.


The 25-percent enzyme.

CYP2D6 is a hepatic cytochrome P450 enzyme that performs oxidative metabolism — typically hydroxylation or demethylation — on a long list of drug substrates. For some drugs it converts an inactive prodrug into the active form (codeine → morphine, tramadol → O-desmethyltramadol, tamoxifen → endoxifen). For others it inactivates the parent drug (most SSRIs, many tricyclic antidepressants, metoprolol). Risperidone is converted to 9-hydroxyrisperidone, which is also active.

The clinical implication runs in opposite directions depending on the drug class. A poor metabolizer taking codeine experiences little analgesia (no conversion to morphine) but a poor metabolizer taking a tricyclic antidepressant accumulates the drug and risks toxicity. An ultra-rapid metabolizer of codeine can develop life-threatening opioid toxicity from a standard dose because they over-produce morphine — this is the basis for the FDA's boxed warning on ultra-rapid metabolism and life-threatening respiratory depression in children. The label also states that breastfeeding is not recommended during codeine treatment.

Because the gene sits in a duplication-prone region of chromosome 22, copy number variation matters as much as point mutations. Some people carry zero functional copies; others carry three, four, or more — and the dose multiplies the enzyme activity correspondingly.

Star alleles, not single SNPs.

CYP2D6 is described using star-allele haplotype nomenclature rather than individual rsIDs. Each star allele is a combination of SNPs and structural variants that produces a defined enzyme activity. The most clinically relevant alleles globally:

*1
reference · normal function
Activity 1.0
Wild-type allele. Normal enzyme activity. The "default" used as the reference for phenotype scoring.
*4
rs3892097 · 1846G>A
Activity 0
Splice defect, no functional enzyme. The most common loss-of-function allele in Europeans (~20% frequency). CPIC classifies *4/*4 as poor metabolizer; two T alleles at rs3892097 alone do not establish *4/*4.
*10
rs1065852 · 100C>T
Activity 0.25
Decreased function. Allele frequency ~40% in East Asians, where it is the dominant intermediate-activity variant. Rare in Europeans.
*17
rs28371706
Activity 0.5
Decreased function. The most common reduced-activity allele in sub-Saharan African populations (~20%).
*2×N
gene duplication
Activity 2.0+
Whole-gene duplication or multiplication of a functional allele. Extra copies of a functional allele raise the activity score; CPIC classifies a total score above 2.25 as ultra-rapid, so the other allele matters too. Consumer chips cannot detect copy number. ~3% of Europeans, up to 30% in some Ethiopian and Saudi Arabian populations.
*5
whole-gene deletion
Activity 0
Complete deletion of CYP2D6. Loss-of-function allele present at 4–6% frequency in most populations.

Each person carries two alleles. Adding their activity scores produces a phenotype:

The strongest pharmacogenomic evidence in the genome.

Unlike most pharmacogenes, CYP2D6 has formal, peer-reviewed dosing guidelines from the Clinical Pharmacogenetics Implementation Consortium (CPIC) and the Dutch Pharmacogenetics Working Group (DPWG). These are clinical recommendations, not speculation. Examples:

ClinVar lists hundreds of CYP2D6 variants, and the variant-to-star-allele mapping is maintained by the Pharmacogene Variation Consortium (PharmVar). For clinical decisions, a CPIC-aware pharmacogenomic report (which integrates copy number, star alleles, and the resulting phenotype) is the standard — not a single SNP readout.

"CYP2D6 is the gene where pharmacogenomics is no longer a research question. Whether your clinic acts on it is mostly a question of infrastructure, not evidence."

Primary sources: ClinVar — CYP2D6 entries; CPIC — CYP2D6 gene page; PharmVar CYP2D6; Caudle et al., Clin Transl Sci 2020 (CYP2D6 genotype-to-phenotype translation); Crews et al., Clin Pharmacol Ther 2021 (CPIC opioids); Goetz et al., Clin Pharmacol Ther 2018 (CPIC tamoxifen); Hicks et al., Clin Pharmacol Ther 2017 (CPIC tricyclics); Bousman et al., Clin Pharmacol Ther 2023 (CPIC SSRIs/SNRIs); Beunk et al., Eur J Hum Genet 2024 (DPWG antipsychotics); FDA label, codeine sulfate; FDA label, Risperdal.

What consumer arrays do — and don't — tell you about CYP2D6.

This is the gene where consumer SNP arrays struggle most. CYP2D6 lives in a region with:

What you can usually look up in raw data:

What you typically cannot determine from a consumer chip alone: copy number variation (*5 deletion or *2×N duplications), some rare star alleles, and the precise haplotype phase. For clinical decisions about codeine, tamoxifen, or antidepressants, a dedicated pharmacogenomic test (typically a panel-based assay or targeted sequencing with CNV calling) is the appropriate tool — not a raw consumer file.

Ask your AI agent about CYP2D6.

Connect DeepDNA’s MCP server, https://deepdna.ai/mcp (free, no key, no account), and ask: “Use DeepDNA: what do pharmacogenomic guidelines say about CYP2D6 and codeine?” The agent calls lookup_drug_gene and answers from DeepDNA’s curated record, with its sources. It takes no genotype and gives no diagnosis, metabolizer status or dose.

lookup_drug_gene {"gene": "CYP2D6", "drug": "codeine"}
Connect it

Or call the REST API: /api/v1/genes/CYP2D6 returns that record as JSON. API docs.