跳转至

肿瘤类器官测序分析


一句话说明

肿瘤类器官是在实验室里用患者肿瘤细胞培养出的三维"迷你肿瘤",测序分析可以验证它与原始肿瘤的一致性,并用它做药物筛选的分子基础研究。


核心知识点

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 (人类癌症模型计划)