药物基因组学(PGx)分析¶
一句话概述:药物基因组学研究遗传变异如何影响药物反应(疗效和毒性),通过检测 CYP2D6、CYP2C19 等药物代谢酶基因的变异来指导个体化用药。
核心知识点速查表¶
| 概念 | 白话解释 |
|---|---|
| PGx | 药物基因组学,基因决定药物疗效/毒性 |
| 药物代谢酶 | 分解药物的蛋白(如CYP450家族) |
| Star allele | 药物基因的变异命名系统(如 CYP2D6*4) |
| 代谢表型 | UM/NM/IM/PM(超快/正常/中间/慢代谢) |
| CPIC | 临床药物基因组学实施联盟 |
| PharmGKB | 最大的药物基因组学数据库 |
| DPWG | 荷兰药物基因组工作组 |
| PharmCAT | 药物基因组学临床注释工具 |
一、PGx 概念(白话版)¶
比喻:同样一杯咖啡,有人喝了精神百倍,有人喝了心跳加速——因为每个人"处理咖啡因的能力"不同。药物也一样:同一种药,有人吃了有效,有人没效,有人中毒。PGx 就是通过检查你的"药物处理基因"来预测你对药物的反应。
常见的 PGx 基因¶
| 基因 | 相关药物 | 临床意义 |
|---|---|---|
| CYP2D6 | 可待因、他莫昔芬 | 超快代谢→毒性,慢代谢→无效 |
| CYP2C19 | 氯吡格雷、奥美拉唑 | 慢代谢→氯吡格雷无效 |
| CYP2C9 | 华法林 | 慢代谢→出血风险 |
| VKORC1 | 华法林 | 影响华法林敏感性 |
| HLA-B*5701 | 阿巴卡韦(HIV药) | 携带→超敏反应 |
| DPYD | 5-FU(化疗药) | 缺陷→致命毒性 |
| TPMT | 硫唑嘌呤 | 缺陷→骨髓抑制 |
| UGT1A1 | 伊立替康(化疗药) | 28/28→严重腹泻 |
二、分析流程¶
第 1 步:从 VCF 进行 Star Allele 分型¶
# PharmCAT 是 CPIC 推荐的标准 PGx 注释工具
# 安装
# 下载最新版 PharmCAT
wget https://github.com/PharmGKB/PharmCAT/releases/latest/download/pharmcat.jar
# 或 Docker
docker pull pgkb/pharmcat
# 准备输入:需要包含 PGx 位点的 VCF 文件
# PharmCAT 需要特定格式的 VCF
# 第 1 步:预处理 VCF(确保格式兼容)
java -jar pharmcat.jar \
preprocess \ # 预处理模式
-vcf sample.vcf.gz \ # 输入VCF
-refFasta reference.fa \ # 参考基因组
-o preprocessed/ # 输出目录
# 第 2 步:运行 PharmCAT 分析
java -jar pharmcat.jar \
run \ # 运行完整分析
-vcf preprocessed/sample.vcf \ # 预处理后的VCF
-reporterJson \ # 输出JSON格式报告
-o results/ # 输出目录
# 输出文件:
# results/sample.report.html — HTML格式可视化报告
# results/sample.report.json — JSON格式详细结果
# 包含:基因分型、Star allele、代谢表型、CPIC用药建议
第 2 步:Stargazer(CYP 基因 Star Allele 分型)¶
# Stargazer 专门做复杂 CYP 基因的 star allele 分型
# 能处理 CYP2D6 的基因拷贝数变异(缺失/重复)
# 安装
pip install stargazer-genotyper # pip安装
# 运行 Stargazer
stargazer \
--target_gene cyp2d6 \ # 目标基因
--control_gene vdr \ # 对照基因(用于标准化拷贝数)
--data_type wgs \ # 数据类型(wgs/ts/chip)
--gdf sample.gdf \ # 基因深度文件
--vcf sample.vcf.gz \ # VCF文件
--output_dir stargazer_results/ # 输出目录
# CYP2D6 特别复杂的原因:
# 1. 有假基因 CYP2D7/CYP2D8 干扰
# 2. 存在基因缺失(*5)和基因重复(*1xN, *2xN)
# 3. 有混合型等位基因(gene conversion)
第 3 步:代谢表型推断¶
# ========== Python脚本:Star Allele → 代谢表型 ==========
# CPIC 活性评分系统
# 每个 star allele 有一个活性分数(Activity Score, AS)
# CYP2D6 活性评分表
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, # 功能降低
}
def predict_phenotype(allele1, allele2, cn1=1, cn2=1):
"""根据Star Allele预测代谢表型"""
# 计算活性评分
as1 = cyp2d6_activity.get(allele1, 1.0) * cn1 # 等位基因1的活性×拷贝数
as2 = cyp2d6_activity.get(allele2, 1.0) * cn2 # 等位基因2的活性×拷贝数
total_as = as1 + as2 # 总活性评分
# 根据CPIC指南判定表型
if total_as > 2.25:
phenotype = "Ultrarapid Metabolizer (UM)" # 超快代谢
elif total_as >= 1.25:
phenotype = "Normal Metabolizer (NM)" # 正常代谢
elif total_as >= 0.25:
phenotype = "Intermediate Metabolizer (IM)" # 中间代谢
else:
phenotype = "Poor Metabolizer (PM)" # 慢代谢
print(f"基因型: {allele1}/{allele2}")
print(f"活性评分: {as1} + {as2} = {total_as}")
print(f"代谢表型: {phenotype}")
return phenotype
# 示例
predict_phenotype("*1", "*4") # NM/PM → IM (AS=1.0)
predict_phenotype("*4", "*4") # PM/PM → PM (AS=0.0)
predict_phenotype("*1", "*1", cn1=2) # *1x2/*1 → UM (AS=3.0)
三、CPIC 用药建议查询¶
# 从 PharmGKB API 查询用药建议
import requests
def query_cpic_guideline(gene, drug):
"""查询CPIC药物基因组学指南"""
url = f"https://api.pharmgkb.org/v1/data/clinicalAnnotation"
params = {
"location.genes.symbol": gene, # 基因名
"relatedChemicals.name": drug, # 药物名
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(f"=== {gene} + {drug} ===")
for ann in data.get("data", []):
print(f"基因型: {ann.get('phenotypes', 'N/A')}")
print(f"建议: {ann.get('annotation', 'N/A')}")
else:
print(f"查询失败: {response.status_code}")
# 常见查询
query_cpic_guideline("CYP2C19", "clopidogrel") # 氯吡格雷
query_cpic_guideline("CYP2D6", "codeine") # 可待因
四、常见报错与解决¶
| 问题 | 原因 | 解决方法 |
|---|---|---|
| PharmCAT 无法识别基因型 | VCF中缺少关键位点 | 确保Panel覆盖PGx位点 |
| CYP2D6 分型不准 | 拷贝数变异未检测 | 用Stargazer或CYP2D6专用流程 |
| Star allele 不在已知列表 | 新变异组合 | 报告为"novel",参考功能预测 |
| 不同工具结果不一致 | 数据库版本不同 | 以PharmCAT/CPIC为准 |
五、面试高频问题¶
Q1:PGx 分析和 ACMG 变异分类有什么不同?
ACMG 分类用于判断变异是否致病(疾病基因),PGx 分析判断变异如何影响药物代谢(药物基因)。两者使用不同的分类框架和证据标准。2024年ClinGen PGxWG正在开发PGx专用的变异分类框架。
Q2:CYP2D6 为什么分型困难?
(1) 存在高度同源的假基因(CYP2D7/CYP2D8);(2) 常见基因缺失(5)和多拷贝(1xN);(3) 存在基因转换(gene conversion)形成的混合等位基因;(4) 种族间频率差异大。
Q3:PM(慢代谢)对用药有什么影响?
两种情况:(1) 如果药物本身就是活性形式(如华法林),PM导致药物蓄积→毒性增加→需要减量;(2) 如果药物是前药(如可待因→吗啡),PM导致无法活化→药效降低→需要换药。
六、速查表¶
# === PGx 分析速查 ===
# PharmCAT(标准PGx工具)
java -jar pharmcat.jar preprocess -vcf sample.vcf.gz -refFasta ref.fa
java -jar pharmcat.jar run -vcf preprocessed/sample.vcf -o results/
# 代谢表型判定(CYP2D6活性评分):
# AS > 2.25 → UM (超快代谢)
# AS 1.25~2.25 → NM (正常代谢)
# AS 0.25~1.25 → IM (中间代谢)
# AS < 0.25 → PM (慢代谢)
# 重要PGx基因和药物:
# CYP2D6 — 可待因、他莫昔芬
# CYP2C19 — 氯吡格雷、奥美拉唑
# DPYD — 5-FU(缺陷可致命!)
# HLA-B*5701 — 阿巴卡韦(必检!)
# 数据库:
# CPIC — https://cpicpgx.org/
# PharmGKB — https://www.pharmgkb.org/
# PharmVar — https://www.pharmvar.org/
参考资料:CPIC Guidelines 2024、PharmCAT文档、ClinGen PGxWG (2024, Clinical Chemistry)、PharmGKB