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 等独立数据源中交叉验证。
延伸资源
- 细胞系组学:265《CCLE》;依赖性:264《DepMap》;
- 大规模重定位:267《PRISM Repurposing》;患者数据:270《TCGA》。