药物基因组学 PGx 基础¶
一句话说明¶
药物基因组学(Pharmacogenomics, PGx)研究基因变异如何影响药物在人体内的吸收、代谢和疗效——同一种药,有人吃了有效,有人吃了没效甚至中毒,原因可能就在基因里。
核心知识点¶
1. 基本概念¶
- PGx(Pharmacogenomics):研究基因组变异与药物反应关系的学科
- 药物代谢酶:负责分解药物的酶(如 CYP450 家族),基因变异导致酶活性不同
- 代谢表型分类:
- UM(Ultra-rapid Metabolizer,超快代谢者):酶活性过高,药物分解太快,疗效不够
- EM(Extensive/Normal Metabolizer,正常代谢者):标准剂量有效
- IM(Intermediate Metabolizer,中间代谢者):酶活性降低,需要减量
- PM(Poor Metabolizer,慢代谢者):酶活性极低/无,药物蓄积中毒风险高
- 白话:就像酒量——有人千杯不醉(UM),有人一杯倒(PM),是基因决定的
2. 关键基因和药物对¶
| 基因 | 药物 | 临床意义 |
|---|---|---|
| CYP2D6 | 可待因、他莫昔芬 | PM 疗效差;UM 可待因中毒 |
| CYP2C19 | 氯吡格雷、奥美拉唑 | PM 氯吡格雷无效 |
| CYP2C9 + VKORC1 | 华法林 | 影响抗凝剂量 |
| DPYD | 5-FU/卡培他滨 | PM 严重毒性甚至致死 |
| TPMT/NUDT15 | 硫唑嘌呤/巯嘌呤 | PM 严重骨髓抑制 |
| HLA-B*57:01 | 阿巴卡韦 | 超敏反应 |
| HLA-B*15:02 | 卡马西平 | Stevens-Johnson 综合征 |
| UGT1A1 | 伊立替康 | 28/28 严重腹泻 |
3. 重要数据库和指南¶
- PharmGKB:药物基因组学知识库(最全面)
- CPIC:临床药物基因组学实施联盟(提供用药指南)
- DPWG:荷兰药物基因组学工作组
- FDA Table:FDA 药物标签中的 PGx 信息
- PharmVar:药物基因组变异命名数据库(星号等位基因)
4. 星号等位基因(Star Allele)¶
- CYP 基因用星号命名系统:1(野生型/正常功能)、2、*3 等
- 例如 CYP2D6*4:最常见的无功能等位基因(欧洲人群 ~20%)
- 二倍型(diplotype)→ 表型:如 1/4 = IM,4/4 = PM
实战代码¶
# === 使用 Stargazer/PharmCAT 进行 PGx 分析 ===
# 1. 从 VCF 进行 PGx 基因分型(PharmCAT 工具)
# PharmCAT 是 CPIC 推荐的标准 PGx 分析工具
# 安装 PharmCAT(Java 应用)
# 下载地址:https://pharmcat.org
# 2. 准备输入 VCF(需要特定 PGx 位点)
# PharmCAT 需要 GRCh38 坐标的 VCF
# 3. 运行 PharmCAT
java -jar pharmcat.jar \
-vcf patient.vcf \ # 输入VCF
-o pharmcat_output/ \ # 输出目录
-reporterJson # JSON格式报告
# PharmCAT 会输出:
# - 基因分型结果(star allele diplotype)
# - 代谢表型(UM/EM/IM/PM)
# - CPIC 用药建议
# === 使用 Stargazer 进行 CYP2D6 分型 ===
# CYP2D6 特别复杂(有基因缺失、重复、假基因)
# 4. Stargazer 分析
python3 stargazer.py \
genotype \ # 分型模式
-t cyp2d6 \ # 目标基因
-o stargazer_output/ \ # 输出目录
-d wgs \ # 数据类型(WGS)
--vcf patient.vcf \ # 输入VCF
--gdf cyp2d6_gdf.txt # 基因剂量文件(从BAM生成)
# === PGx 报告生成与用药建议 ===
import json # JSON处理
import pandas as pd # 数据处理
# CPIC 用药建议数据库(简化版)
cpic_guidelines = {
"CYP2D6": {
"codeine": {
"UM": "避免使用可待因,改用其他镇痛药",
"EM": "标准剂量",
"IM": "标准起始剂量,密切监测",
"PM": "避免使用可待因,无法转化为吗啡"
},
"tamoxifen": {
"UM": "标准剂量",
"EM": "标准剂量",
"IM": "考虑替代药物(芳香化酶抑制剂)",
"PM": "避免使用,改用芳香化酶抑制剂"
}
},
"CYP2C19": {
"clopidogrel": {
"UM": "标准剂量",
"EM": "标准剂量",
"IM": "考虑替代抗血小板药(替格瑞洛)",
"PM": "避免使用,改用替格瑞洛或普拉格雷"
}
},
"DPYD": {
"fluorouracil": {
"EM": "标准剂量",
"IM": "减量50%,密切监测毒性",
"PM": "禁忌!严重毒性风险"
}
}
}
def generate_pgx_report(pharmcat_result_path):
"""从 PharmCAT 结果生成中文用药建议"""
with open(pharmcat_result_path) as f:
result = json.load(f) # 读取PharmCAT结果
print("=" * 60)
print(" 药物基因组学检测报告")
print("=" * 60)
for gene_result in result.get("geneResults", []):
gene = gene_result["gene"] # 基因名
diplotype = gene_result.get("diplotype", "未确定") # 二倍型
phenotype = gene_result.get("phenotype", "未确定") # 表型
print(f"\n{'─'*40}")
print(f"基因: {gene}")
print(f"基因型: {diplotype}")
print(f"代谢表型: {phenotype}")
# 查找用药建议
if gene in cpic_guidelines:
for drug, advice in cpic_guidelines[gene].items():
# 简化表型匹配
for pheno, recommendation in advice.items():
if pheno.lower() in phenotype.lower():
print(f" 药物 [{drug}]: {recommendation}")
print(f"\n{'='*60}")
print("注意:以上建议基于CPIC指南,实际用药需医生综合判断")
# generate_pgx_report("pharmcat_output/report.json")
面试常问点¶
★ 药物基因组学在临床中的实际应用是什么?¶
参考答案:最成熟的应用包括:(1) 用药前基因检测——如 DPYD 检测在氟尿嘧啶化疗前已成为欧洲的常规检测,PM 患者可能因严重毒性死亡;(2) 华法林剂量调整——根据 CYP2C9 和 VKORC1 基因型计算个体化起始剂量;(3) HLA 基因检测——HLA-B57:01 检测预防阿巴卡韦超敏反应,已成为 HIV 治疗的标准步骤;(4) 肿瘤药物——如 UGT1A128 影响伊立替康代谢。目前最大的障碍是将 PGx 检测整合到电子病历系统中实现自动化决策支持。
★ CYP2D6 基因分型为什么特别难?¶
参考答案:CYP2D6 是人类基因组中最复杂的药物基因组学基因之一:(1) 高度多态——有 100+ 个已知的星号等位基因;(2) 存在全基因缺失(*5)和全基因重复(拷贝数从 0 到 10+);(3) 旁边有两个假基因(CYP2D7/CYP2D8),序列高度相似(>90%),短读测序容易混淆;(4) 存在基因转换——假基因片段插入到 CYP2D6 中。因此需要专门的工具(如 Stargazer, Cyrius)来处理,WGS 比 WES 更适合 CYP2D6 分型。
速查卡片¶
| 问题 | 答案 |
|---|---|
| PGx 全称 | Pharmacogenomics |
| 代谢表型 | UM/EM/IM/PM |
| 关键基因家族 | CYP450 (CYP2D6, CYP2C19等) |
| 星号等位基因 | 1=野生型, 4=无功能(CYP2D6) |
| 分析工具 | PharmCAT, Stargazer |
| 用药指南 | CPIC, DPWG |
| 数据库 | PharmGKB, PharmVar |
| 最危险案例 | DPYD PM + 5-FU → 致死毒性 |
| HLA 检测 | B57:01(阿巴卡韦), B15:02(卡马西平) |
| 临床整合 | CDS (临床决策支持系统) |