肿瘤类器官测序分析¶
一句话说明¶
肿瘤类器官是在实验室里用患者肿瘤细胞培养出的三维"迷你肿瘤",测序分析可以验证它与原始肿瘤的一致性,并用它做药物筛选的分子基础研究。
核心知识点¶
1. 什么是肿瘤类器官¶
- 定义:从患者肿瘤组织中分离出的干细胞/肿瘤细胞,在体外三维培养形成的自组织结构
- 保留特征:保留原始肿瘤的组织结构、基因突变谱、药物反应特征
- 优势:比细胞系更贴近真实肿瘤,比 PDX(患者来源异种移植)更快更便宜
- 白话:在培养皿里长出一个缩微版的患者肿瘤
2. 类器官测序的核心问题¶
| 问题 | 分析方法 |
|---|---|
| 类器官 vs 原始肿瘤的一致性 | 突变谱比较、CNV 比较 |
| 传代后是否稳定 | 不同代次的突变追踪 |
| 肿瘤纯度是否提高 | 纯度估计(通常类器官纯度更高) |
| 药物敏感性的分子基础 | 突变-药物关联分析 |
| 是否存在选择偏差 | 亚克隆比例变化 |
3. 分析流程特点¶
- 纯度通常很高:类器官中正常细胞少,纯度可达 80-100%
- 需要配对分析:原始肿瘤 vs 类器官 vs 正常对照(三方比较)
- 传代稳定性:比较 P0、P5、P10 等不同代次的突变谱
- 药物筛选整合:将 IC50 数据与基因组特征关联
实战代码¶
# === 类器官 vs 原始肿瘤一致性分析 ===
import pandas as pd # 数据处理
import matplotlib.pyplot as plt # 绑图
from matplotlib_venn import venn2 # 韦恩图
# 1. 读取两组突变数据(原始肿瘤和类器官)
tumor_muts = pd.read_csv("tumor_mutations.tsv", sep="\t")
organoid_muts = pd.read_csv("organoid_mutations.tsv", sep="\t")
# 创建唯一突变ID
for df in [tumor_muts, organoid_muts]:
df["mut_id"] = (df["CHROM"].astype(str) + ":" +
df["POS"].astype(str) + ":" +
df["REF"] + ">" + df["ALT"])
# 2. 计算突变重叠
tumor_set = set(tumor_muts["mut_id"]) # 肿瘤突变集
org_set = set(organoid_muts["mut_id"]) # 类器官突变集
shared = tumor_set & org_set # 共有突变
tumor_only = tumor_set - org_set # 肿瘤独有
org_only = org_set - tumor_set # 类器官独有
concordance = len(shared) / len(tumor_set | org_set) * 100
print(f"突变一致率: {concordance:.1f}%")
print(f"共有突变: {len(shared)}")
print(f"肿瘤独有: {len(tumor_only)}")
print(f"类器官独有: {len(org_only)}")
# 3. 韦恩图可视化
plt.figure(figsize=(8, 6))
venn2([tumor_set, org_set],
set_labels=("原始肿瘤", "类器官"))
plt.title(f"突变一致性分析 (concordance: {concordance:.1f}%)")
plt.savefig("organoid_concordance.png", dpi=150)
# 4. VAF 相关性分析(共有突变在两组中的频率对比)
shared_list = list(shared) # 共有突变列表
tumor_vafs = [] # 肿瘤中的VAF
org_vafs = [] # 类器官中的VAF
for mut in shared_list: # 遍历共有突变
t_row = tumor_muts[tumor_muts["mut_id"] == mut]
o_row = organoid_muts[organoid_muts["mut_id"] == mut]
if len(t_row) > 0 and len(o_row) > 0:
tumor_vafs.append(t_row.iloc[0]["VAF"])
org_vafs.append(o_row.iloc[0]["VAF"])
# 散点图:VAF 相关性
from scipy.stats import pearsonr # 皮尔逊相关
r, p = pearsonr(tumor_vafs, org_vafs) # 计算相关系数
plt.figure(figsize=(8, 8))
plt.scatter(tumor_vafs, org_vafs, alpha=0.5, s=10)
plt.xlabel("原始肿瘤 VAF") # X轴
plt.ylabel("类器官 VAF") # Y轴
plt.title(f"VAF 相关性 (r={r:.3f}, p={p:.2e})")
plt.plot([0, 1], [0, 1], "r--") # 对角线
plt.savefig("vaf_correlation.png", dpi=150)
# === 类器官传代稳定性分析 ===
library(maftools) # MAF分析
# 1. 读取不同代次的突变数据
p0 <- read.maf("organoid_P0.maf") # 初始代
p5 <- read.maf("organoid_P5.maf") # 第5代
p10 <- read.maf("organoid_P10.maf") # 第10代
# 2. 基因级别突变频率比较
# 绘制 oncoplot 对比
oncoplot(maf = p0, top = 20, # P0 前20基因
title = "P0 初始代")
oncoplot(maf = p5, top = 20,
title = "P5 第5代")
# 3. 突变数变化趋势
n_muts <- c(
P0 = nrow(p0@data), # P0突变数
P5 = nrow(p5@data), # P5突变数
P10 = nrow(p10@data) # P10突变数
)
barplot(n_muts, main = "传代突变数变化",
ylab = "突变数", col = "steelblue")
面试常问点¶
★ 肿瘤类器官测序要注意什么特殊问题?¶
参考答案:几个关键点:(1) 类器官纯度通常很高(接近 100%),所以变异检测的 VAF 更接近真实的克隆频率,但也意味着可能丢失了肿瘤微环境中的免疫/基质细胞信息;(2) 需要验证一致性——比较类器官和原始肿瘤的突变重叠率,通常期望 >80%;(3) 关注选择偏差——某些亚克隆可能在体外培养中被选择或淘汰;(4) 传代稳定性——需要确认关键驱动突变在多次传代后依然保留;(5) 类器官独有突变可能是培养过程中新出现的。
★ 类器官在药物筛选中的生信分析怎么做?¶
参考答案:核心是建立基因组特征与药物敏感性的关联:(1) 对多个患者的类器官做全面基因组分析(WES/RNA-seq);(2) 对同一批类器官做高通量药物筛选获得 IC50 值;(3) 用关联分析找出哪些突变/基因表达模式与特定药物的敏感性/耐药相关(类似 GDSC 的 biomarker 发现)。这可以帮助发现新的治疗靶点和预测性生物标志物。
速查卡片¶
| 问题 | 答案 |
|---|---|
| 类器官定义 | 体外3D培养的迷你肿瘤 |
| 核心优势 | 保留原始肿瘤分子特征 |
| 纯度特点 | 通常很高(80-100%) |
| 一致性指标 | 突变重叠率 >80% |
| 传代稳定性 | 比较不同代次突变谱 |
| VAF 意义 | 更接近真实克隆频率 |
| 配对分析 | 肿瘤 vs 类器官 vs 正常 |
| 药物筛选 | IC50 + 基因组关联 |
| 类器官独有突变 | 可能是培养新增的 |
| 类似项目 | HCMI (人类癌症模型计划) |