266

GDSC:药敏数据如何支持适应症选择

GDSC 提供细胞系对大量药物的敏感性数据,帮助把药物与基因组特征关联。这篇讲清剂量响应指标、生物标志物发现方法与建模注意事项。

GDSC(Genomics of Drug Sensitivity in Cancer,Sanger 研究所与麻省总医院)系统测定了约 1,000 个癌细胞系对数百种抗癌药物的敏感性。它回答的问题是:什么基因组特征预测对某个药物的响应? 这既是生物标志物发现的基础,也是适应症选择的重要依据。

数据规模

数据集 细胞系 化合物 说明
GDSC1 约 987 约 320 较早批次,Syto60 染色
GDSC2 约 810 约 175 较新批次,CellTiter-Glo

GDSC1 与 GDSC2 使用不同的读出方法,数值不可直接混用。做分析时应选定一个批次,或做批次校正。这是使用中最常见的疏忽。

两个核心指标

  • IC50(通常记为 LN_IC50):半数抑制浓度的自然对数。反映药物的效价(potency)
  • AUC:剂量-响应曲线下面积,归一化到 0~1。综合反映效价与最大效应

AUC 通常比 IC50 更稳健:当药物在测试浓度范围内没有达到 50% 抑制时,IC50 只能外推,误差很大;而 AUC 始终是可靠计算的。建模时优先用 AUC。

import pandas as pd

# 从 GDSC 网站下载
resp = pd.read_csv("GDSC2_fitted_dose_response.csv")
print(resp[["CELL_LINE_NAME", "DRUG_NAME", "LN_IC50", "AUC", "Z_SCORE"]].head())

# 透视成矩阵
mat = resp.pivot_table(index="CELL_LINE_NAME", columns="DRUG_NAME", values="AUC")
print(f"{mat.shape[0]} 细胞系 × {mat.shape[1]} 药物,缺失率 {mat.isna().mean().mean():.1%}")

生物标志物发现

from scipy import stats as sps
import numpy as np

def find_biomarker(drug, mutations_df, resp_matrix, min_n=8):
    """检验哪些突变与该药物的敏感性相关"""
    y = resp_matrix[drug].dropna()
    results = []
    for gene, mutated_lines in mutations_df.items():
        a = y[y.index.isin(mutated_lines)]
        b = y[~y.index.isin(mutated_lines)]
        if len(a) < min_n or len(b) < min_n:
            continue
        t, p = sps.ttest_ind(a, b, equal_var=False)
        results.append({"gene": gene, "n_mut": len(a),
                        "mean_mut": a.mean(), "mean_wt": b.mean(),
                        "effect": a.mean() - b.mean(), "pvalue": p})
    df = pd.DataFrame(results).sort_values("pvalue")
    # 多重检验校正必不可少
    from statsmodels.stats.multitest import multipletests
    df["fdr"] = multipletests(df["pvalue"], method="fdr_bh")[1]
    return df

hits = find_biomarker("Dabrafenib", mutations, mat)
print(hits.head(10))     # 预期 BRAF 突变显著相关

经典的验证性结果包括:BRAF V600E 突变 → 对 BRAF 抑制剂敏感EGFR 突变 → 对 EGFR-TKI 敏感BRCA 缺陷 → 对 PARP 抑制剂敏感。这些已知关系能被数据重现,是验证分析流程正确性的好方法——做新分析前先跑一遍这些阳性对照。

建模注意事项

  • 谱系混杂:某些癌种整体对药物更敏感。不控制谱系,会把「这是黑色素瘤」误判成「这是某基因的效应」。务必把谱系作为协变量或做谱系内分析。
  • 划分方式决定问题性质:与 DTI 类似,随机划分只是补全矩阵;真正有价值的是 cold cell(新细胞系)或 cold drug(新药)划分。
  • 与 CTRP、PRISM 交叉验证:不同项目对同一药物-细胞系对的测定结果一致性并不总是很高。重要结论应在多个数据源中验证。
  • 体外到体内的鸿沟:细胞系敏感性与患者响应之间存在巨大差距。GDSC 的结论是假设生成,不是临床预测。
  • 浓度范围的限制:超出测试范围的 IC50 是外推值,不可靠。

与相关资源的分工

  • GDSC:药物响应 + 生物标志物,化合物注释详细(含靶点、通路信息)。
  • CTRP:另一个大规模药敏项目,可作交叉验证。
  • PRISM(见 267《PRISM Repurposing》):规模更大,覆盖大量非肿瘤药物,适合重定位。
  • DepMap(见 264《DepMap》):基因敲除依赖性,与药物敏感性互补——「敲除有效但药物无效」的差异本身就是有价值的信息,可能提示成药性问题或药物本身的局限。

上手提示

  • 建模优先用 AUC 而非 IC50,后者在未达 50% 抑制时靠外推;
  • GDSC1 与 GDSC2 读出方法不同,数值不可直接混用;
  • 分析必须控制谱系,并先用 BRAF/EGFR 等已知关系验证流程;
  • 重要结论应在 CTRP、PRISM 等独立数据源中交叉验证。

延伸资源