跳转至

微卫星不稳定性 MSI 分析


一句话说明

微卫星是基因组上的短串联重复序列(如 ACACAC...),当 DNA 错配修复(MMR)功能失灵时,微卫星的长度会频繁改变,这种现象叫微卫星不稳定性(MSI),是免疫治疗的重要生物标志物。


核心知识点

1. 基本概念

  • 微卫星(microsatellite):基因组中 1-6 bp 重复单元的串联重复序列(白话:像 "CACACA..." 这样的重复片段)
  • MMR(错配修复):修复 DNA 复制时产生的错误匹配碱基的系统
  • dMMR(MMR缺陷):MLH1、MSH2、MSH6、PMS2 等基因突变或表观沉默导致 MMR 失灵
  • MSI-H(高度不稳定):多个微卫星位点长度改变,提示 dMMR

2. MSI 状态分类

状态定义临床意义
MSI-H>=30% 位点不稳定免疫治疗敏感
MSI-L1-29% 位点不稳定通常归入 MSS
MSS无位点不稳定微卫星稳定

3. 检测方法

  • 免疫组化(IHC):检测 4 个 MMR 蛋白(MLH1/MSH2/MSH6/PMS2)表达
  • PCR + 毛细管电泳:经典 Bethesda panel 5 个位点(BAT25, BAT26, D2S123, D5S346, D17S250)
  • NGS 方法:从 WES/Panel 数据直接计算 MSI 状态
  • MSIsensor2, MSIsensor-pro, mSINGS, MANTIS

4. 临床价值

  • 免疫治疗:MSI-H/dMMR 是 pembrolizumab 的泛癌种适应症(FDA 2017)
  • 结直肠癌预后:MSI-H 早期 CRC 预后较好
  • Lynch 综合征筛查:遗传性 MSI-H 提示 Lynch 综合征
  • 化疗指导:MSI-H CRC 对 5-FU 单药不敏感

实战代码

# === MSIsensor2 分析 MSI 状态(最常用NGS方法) ===

# 1. 扫描参考基因组中的微卫星位点
msisensor2 scan \
  -d hg38.fa \                         # 参考基因组
  -o microsatellites.list              # 输出微卫星位点列表

# 2. 用配对样本检测 MSI 状态
msisensor2 msi \
  -d microsatellites.list \            # 微卫星位点列表
  -n normal.bam \                      # 正常样本BAM
  -t tumor.bam \                       # 肿瘤样本BAM
  -o msi_result \                      # 输出前缀
  -b 4                                 # 线程数

# 结果解读:
# msi_result 文件包含 MSI score(百分比)
# MSI score >= 20% → MSI-H
# MSI score < 20% → MSS/MSI-L

# === MSIsensor-pro(支持 tumor-only 模式) ===

# 3. Tumor-only 模式(没有配对正常样本时)
msisensor-pro pro \
  -d microsatellites.list \            # 微卫星位点列表
  -t tumor.bam \                       # 仅肿瘤样本
  -o msi_pro_result                    # 输出前缀

# === MANTIS 分析 ===

# 4. 使用 MANTIS(另一个常用工具)
python3 mantis.py \
  --bedfile target_microsatellites.bed \  # 靶区域微卫星BED
  --genome hg38.fa \                      # 参考基因组
  -n normal.bam \                         # 正常BAM
  -t tumor.bam \                          # 肿瘤BAM
  -o mantis_result.txt                    # 输出结果
  # MANTIS score > 0.4 → MSI-H
# 解析 MSIsensor2 结果
def parse_msi_result(result_file):
    """解析 MSIsensor2 的 MSI 检测结果"""
    with open(result_file) as f:       # 打开结果文件
        line = f.readline().strip()    # 读取第一行
        parts = line.split("\t")       # 按制表符分割
        total_sites = int(parts[0])    # 总检测位点数
        unstable_sites = int(parts[1]) # 不稳定位点数
        msi_score = float(parts[2])    # MSI分数(百分比)

    # 判断 MSI 状态
    if msi_score >= 20:                # 阈值20%
        status = "MSI-H"               # 高度不稳定
    elif msi_score > 0:                # 有少量不稳定
        status = "MSI-L"               # 低度不稳定
    else:
        status = "MSS"                 # 微卫星稳定

    print(f"总位点数: {total_sites}")   # 打印总数
    print(f"不稳定位点: {unstable_sites}")  # 打印不稳定数
    print(f"MSI Score: {msi_score:.1f}%")  # 打印分数
    print(f"MSI 状态: {status}")        # 打印状态

    # 临床建议
    if status == "MSI-H":
        print("→ 建议:考虑免疫检查点抑制剂治疗")
        print("→ 建议:排查Lynch综合征(胚系MMR基因检测)")

    return {"total": total_sites, "unstable": unstable_sites,
            "score": msi_score, "status": status}

# 使用
result = parse_msi_result("msi_result")

面试常问点

★ MSI-H 和 TMB-H 是什么关系?

参考答案:MSI-H 的肿瘤通常 TMB 也很高(因为 MMR 失灵导致大量突变积累),但两者不完全等同。MSI-H 肿瘤中约 97% 是 TMB-H,但 TMB-H 肿瘤中只有约 16% 是 MSI-H。也就是说 TMB-H 的范围更广,包括非 MMR 缺陷导致的高突变负荷(如 POLE 突变、UV 暴露等)。两个指标各有侧重,临床上应该都检测。

★ NGS 检测 MSI 和传统 PCR 方法有什么区别?

参考答案:传统 PCR 方法(Bethesda panel)只检测 5 个微卫星位点,简单但信息有限。NGS 方法可以同时分析数百到数千个微卫星位点,灵敏度和特异性更高,而且可以从已有的 WES/Panel 数据中直接计算,不需要额外实验。目前 MSIsensor2 等 NGS 方法与 PCR/IHC 的一致率超过 95%。

★ 什么是 Lynch 综合征?

参考答案:Lynch 综合征是一种常染色体显性遗传的癌症易感综合征,由胚系 MMR 基因(MLH1/MSH2/MSH6/PMS2)突变引起。患者终生患结直肠癌、子宫内膜癌等多种癌症的风险显著增高。所有 MSI-H 的结直肠癌患者都应该进行 Lynch 综合征筛查。约 3% 的结直肠癌属于 Lynch 综合征。


速查卡片

问题答案
MSI 全称Microsatellite Instability
MMR 基因MLH1, MSH2, MSH6, PMS2
MSI-H 阈值>=30% 位点不稳定
NGS 工具MSIsensor2, MANTIS, mSINGS
临床意义免疫治疗敏感标志物
FDA 批准药物Pembrolizumab (Keytruda)
MSI-H 常见癌种子宫内膜癌、胃癌、结直肠癌
Lynch 综合征胚系 MMR 突变
传统检测PCR + Bethesda 5位点
MSI-H 与 TMB 关系MSI-H 通常伴随 TMB-H