CYP450 基因分型与药物代谢¶
一句话说明¶
CYP450 是人体最重要的药物代谢酶家族,负责代谢约 75% 的临床药物,不同人的 CYP450 基因型不同导致代谢速度不同——同一种药有人需要加量,有人需要减量。
核心知识点¶
1. CYP450 家族概述¶
- 全称:细胞色素 P450 超家族(Cytochrome P450)
- 位置:主要在肝脏内质网
- 命名:CYP + 家族号 + 亚家族字母 + 成员号(如 CYP2D6)
- 最重要的药物代谢 CYP:
| 酶 | 代谢药物比例 | 重要底物 |
|---|---|---|
| CYP3A4 | ~30% | 他汀类、钙通道阻滞剂、免疫抑制剂 |
| CYP2D6 | ~20% | 可待因、他莫昔芬、抗抑郁药 |
| CYP2C9 | ~15% | 华法林、苯妥英、NSAIDs |
| CYP2C19 | ~10% | 氯吡格雷、质子泵抑制剂 |
| CYP1A2 | ~5% | 咖啡因、茶碱、氯氮平 |
2. 活性评分系统(Activity Score, AS)¶
- CPIC 推荐用活性评分将星号等位基因转换为代谢表型
- 每个等位基因赋予活性值:正常功能=1, 降低功能=0.5, 无功能=0, 增加功能=1.5+
- 二倍型 AS = 两个等位基因活性值之和
- 例如 CYP2D6:1/1 → AS=2(EM);1/4 → AS=1(IM);4/4 → AS=0(PM)
3. 人群频率差异¶
- CYP2D6*4(无功能):欧洲人 ~20%,东亚人 ~1%
- CYP2D6*10(降低功能):东亚人 ~40%,欧洲人 ~2%
- CYP2C19*2(无功能):东亚人 ~30%,欧洲人 ~15%
- CYP2C19*17(增加功能):欧洲人 ~20%,东亚人 ~3%
- 白话:同一个基因的"坏版本"在不同人群中频率完全不同
4. 前药 vs 活性药¶
- 活性药直接起效:CYP 代谢使其失活 → PM 患者药物蓄积中毒
- 前药需要激活:CYP 代谢将前药转化为活性形式 → PM 患者药效差
- 例子:可待因(前药)→ CYP2D6 → 吗啡(活性)。PM 无法转化,镇痛无效;UM 过度转化,呼吸抑制
实战代码¶
# === CYP450 活性评分计算与表型判定 ===
# CYP2D6 活性评分数据库(简化版,完整版见 PharmVar/CPIC)
cyp2d6_activity = {
"*1": 1.0, # 正常功能
"*2": 1.0, # 正常功能
"*3": 0.0, # 无功能(移码突变)
"*4": 0.0, # 无功能(剪接缺陷)
"*5": 0.0, # 基因缺失
"*6": 0.0, # 无功能
"*9": 0.5, # 降低功能
"*10": 0.25, # 降低功能(东亚常见)
"*17": 0.5, # 降低功能
"*41": 0.5, # 降低功能
"*1xN": 2.0, # 基因重复(>1拷贝,活性翻倍)
}
def get_cyp2d6_phenotype(allele1, allele2):
"""根据二倍型计算 CYP2D6 代谢表型"""
# 获取活性评分
as1 = cyp2d6_activity.get(allele1, None) # 等位基因1活性
as2 = cyp2d6_activity.get(allele2, None) # 等位基因2活性
if as1 is None or as2 is None: # 未知等位基因
return "未知", None
total_as = as1 + as2 # 总活性评分
# CPIC 表型判定标准(CYP2D6)
if total_as > 2.0: # 超快代谢
phenotype = "UM (超快代谢者)"
elif total_as >= 1.25: # 正常代谢
phenotype = "EM (正常代谢者)"
elif total_as >= 0.25: # 中间代谢
phenotype = "IM (中间代谢者)"
else: # 慢代谢
phenotype = "PM (慢代谢者)"
return phenotype, total_as
# 测试用例
test_cases = [
("*1", "*1"), # 正常
("*1", "*4"), # 一个无功能
("*4", "*4"), # 两个无功能
("*1", "*10"), # 一个降低功能(东亚常见)
("*1xN", "*1"), # 基因重复
("*10", "*10"), # 东亚常见纯合
]
print("CYP2D6 代谢表型判定")
print("-" * 50)
for a1, a2 in test_cases:
phenotype, score = get_cyp2d6_phenotype(a1, a2)
print(f" {a1}/{a2} → AS={score}, {phenotype}")
# === CYP2C19 用药建议 ===
def clopidogrel_recommendation(cyp2c19_phenotype):
"""根据 CYP2C19 表型给出氯吡格雷用药建议"""
recommendations = {
"UM": ("标准剂量氯吡格雷", "正常代谢,标准治疗"),
"EM": ("标准剂量氯吡格雷", "正常代谢,标准治疗"),
"IM": ("考虑替代药物", "氯吡格雷活化减少,血小板抑制不足\n"
" 建议:替格瑞洛 或 普拉格雷"),
"PM": ("避免氯吡格雷", "无法有效激活前药\n"
" 建议:替格瑞洛 90mg bid 或 普拉格雷 10mg qd"),
}
rec = recommendations.get(cyp2c19_phenotype)
if rec:
print(f"\n CYP2C19 表型: {cyp2c19_phenotype}")
print(f" 建议: {rec[0]}")
print(f" 理由: {rec[1]}")
# === 使用 Cyrius 进行 CYP2D6 星号等位基因分型(WGS数据) ===
# Cyrius 专门处理 CYP2D6 的复杂结构(缺失/重复/假基因转换)
python3 star_caller.py \
--manifest sample_manifest.txt \ # 样本清单(BAM路径)
--genome 38 \ # GRCh38
--outDir cyrius_output/ \ # 输出目录
--threads 4 # 线程数
# sample_manifest.txt 格式:
# sample_id\tbam_path
# patient1\t/path/to/patient1.bam
# 输出结果包含:
# 星号等位基因二倍型(如 *1/*4)
# 置信度评分
# 基因拷贝数
# === 使用 PyPGx 进行多基因 PGx 分析 ===
pypgx run-ngs-pipeline \
CYP2D6 \ # 目标基因
grch38 \ # 参考基因组版本
--bam patient.bam \ # 输入BAM
--output-dir pypgx_output/ # 输出目录
面试常问点¶
★ 为什么 CYP3A4 的 PGx 分型没有 CYP2D6 重要?¶
参考答案:虽然 CYP3A4 代谢的药物最多(~30%),但它的基因多态性对酶活性的影响远不如 CYP2D6 显著。CYP2D6 的慢代谢者(PM)酶活性可以降低到接近零,而 CYP3A4 的常见变异对活性的影响通常只有 20-50%。更重要的是,CYP3A4 有一个功能高度相似的"搭档"CYP3A5,即使 CYP3A4 活性降低,CYP3A5 也能部分补偿。另外,CYP3A4 的活性更多受到药物相互作用(抑制剂/诱导剂)和环境因素(饮食、疾病)的影响,基因型的贡献相对较小。
★ 活性评分系统比传统的表型分类好在哪里?¶
参考答案:传统方法直接将二倍型映射到 PM/IM/EM/UM 四个类别,但有些二倍型很模糊(如 1/10 到底算 EM 还是 IM?)。活性评分系统用数值量化每个等位基因的功能,然后加和得到总分,再用明确的分数区间划分表型。这样做的优势:(1) 更精细——同样是 IM,AS=0.5 和 AS=1.0 的代谢能力不同;(2) 标准化——不同实验室用同样的标准;(3) 可扩展——新发现的等位基因只需赋予活性值就能整合。
速查卡片¶
| 问题 | 答案 |
|---|---|
| CYP450 功能 | 药物代谢(I 相反应氧化) |
| 代谢最多的 CYP | CYP3A4 (~30%) |
| 多态性最复杂 | CYP2D6(100+星号等位基因) |
| 活性评分(AS) | 正常=1, 降低=0.5, 无功能=0 |
| UM | AS > 2.0 |
| EM | AS 1.25-2.0 |
| IM | AS 0.25-1.25 |
| PM | AS 0-0.25 |
| 分型工具 | Cyrius, Stargazer, PharmCAT |
| 东亚常见变异 | CYP2D610, CYP2C192 |