跳转至

RRBS 简化代表性亚硫酸盐测序


一句话说明

RRBS 是检测 DNA 甲基化的"经济版"方案——先用限制酶把基因组切成小段,只挑 CpG 富集的片段做亚硫酸盐处理和测序,花 WGBS 十分之一的成本覆盖大部分重要的甲基化位点。


核心知识点

要点1:RRBS 技术原理

  • RRBS = Reduced Representation Bisulfite Sequencing(简化代表性亚硫酸盐测序)
  • 用 MspI 限制性内切酶(识别 CCGG 序列)切割基因组
  • 选取 40-220bp 片段(富含 CpG 位点的区域)
  • 亚硫酸盐处理:未甲基化的 C → U(测序读为 T),甲基化的 C 不变
  • 白话类比:WGBS 是给整本书每个字做标记,RRBS 是只挑有重点标记的页做检查

要点2:RRBS vs WGBS

特征RRBSWGBS
基因组覆盖~10-15% CpG 位点~90% CpG 位点
测序量3-5 GB30-90 GB
成本低(约 WGBS 的 1/10)
CpG 岛覆盖高(~85%)
增强子/基因间区覆盖低覆盖高
起始 DNA 量10-300 ng200 ng-5 μg

要点3:MspI 酶切的巧妙设计

  • MspI 识别 CCGG,切割位点固定在 CpG 二核苷酸附近
  • 所有 MspI 片段的两端都包含 CpG → 天然富集 CpG 区域
  • MspI 不受 CpG 甲基化影响(与 HpaII 不同),无论是否甲基化都能切
  • 这保证了无偏地取样所有 CpG 状态

要点4:数据分析要点

  • 比对工具:Bismark(支持亚硫酸盐转化后的比对)
  • 甲基化水平 = 甲基化 reads / (甲基化 + 未甲基化 reads)
  • 要注意端部 CpG 的偏差(MspI 切割位点处的填充碱基)
  • 差异甲基化分析:methylKit / DSS

实战代码

# ===== RRBS 数据分析流程 =====

# 1. 质控
fastqc -t 4 sample_R1.fastq.gz sample_R2.fastq.gz

# 2. 去接头 + RRBS 专用模式
# --rrbs: 自动处理 MspI 切割位点引入的填充碱基
# 这一步会去掉端部人工引入的碱基,避免甲基化水平偏差
trim_galore --paired --rrbs -o trimmed/ \
    sample_R1.fastq.gz sample_R2.fastq.gz

# 3. 准备 Bismark 参考基因组索引(只需做一次)
bismark_genome_preparation --bowtie2 /ref/hg38/

# 4. 比对:Bismark 处理亚硫酸盐转化后的序列
# Bismark 会自动考虑 C→T 转化,三种情况对应三种比对
bismark --genome /ref/hg38/ --bowtie2 -p 4 \
    -1 trimmed/sample_R1_val_1.fq.gz \
    -2 trimmed/sample_R2_val_2.fq.gz \
    -o aligned/

# 5. 去重(RRBS 不建议用常规 PCR 去重)
# 因为 MspI 切割位点固定,同一位置的 reads 不一定是 PCR 重复
# 但如果 PCR 扩增过多,仍需去重
deduplicate_bismark --paired aligned/sample_pe.bam

# 6. 提取甲基化信息
# --comprehensive: 合并 CpG/CHG/CHH 上下文
# --cytosine_report: 生成全基因组胞嘧啶报告
bismark_methylation_extractor --paired-end --comprehensive \
    --cytosine_report --genome_folder /ref/hg38/ \
    -o methylation/ aligned/sample_pe.deduplicated.bam

# 7. 用 methylKit 做差异甲基化分析(R 代码)
# 以下在 R 中运行
# ===== R: methylKit 差异甲基化分析 =====
library(methylKit)

# 读取 Bismark 的 cytosine report 文件
# 每个文件对应一个样本
file_list <- list(
    "sample1_CpG_report.txt",  # 对照组样本1
    "sample2_CpG_report.txt",  # 对照组样本2
    "sample3_CpG_report.txt",  # 处理组样本1
    "sample4_CpG_report.txt"   # 处理组样本2
)

# 读取数据,设定样本 ID、处理组信息、最低覆盖度
myobj <- methRead(file_list,
    sample.id = list("ctrl1", "ctrl2", "treat1", "treat2"),
    treatment = c(0, 0, 1, 1),  # 0=对照,1=处理
    assembly = "hg38",
    context = "CpG",
    mincov = 10)  # 至少 10x 覆盖度

# 过滤极高覆盖(可能是 PCR 偏差)
filtered <- filterByCoverage(myobj,
    lo.count = 10,   # 最低 10 reads
    hi.perc = 99.9)  # 去掉 top 0.1%

# 合并所有样本的共同 CpG 位点
meth <- unite(filtered, destrand = FALSE)

# 差异甲基化检测
diff <- calculateDiffMeth(meth)

# 筛选显著的差异甲基化位点
# 甲基化差异 > 25%,q值 < 0.01
hyper <- getMethylDiff(diff, difference = 25, qvalue = 0.01, type = "hyper")
hypo <- getMethylDiff(diff, difference = 25, qvalue = 0.01, type = "hypo")

面试常问点

★ RRBS 为什么选 MspI 酶?

参考答案:MspI 识别 CCGG 序列,切割位点天然包含 CpG 二核苷酸。这意味着酶切产生的所有片段两端都有 CpG,片段本身也富含 CpG。最关键的是 MspI 不受 CpG 甲基化状态影响,无论甲基化与否都会切割,保证了无偏取样。

★ RRBS 什么时候用,什么时候用 WGBS?

参考答案:RRBS 适合预算有限或样本量大的研究,能覆盖约 85% 的 CpG 岛,性价比很高。但如果需要分析增强子、基因间区等远离 CpG 岛的区域,就必须用 WGBS。另外如果研究人群的表观遗传年龄预测,很多 clock 位点在 CpG 岛外,也需要 WGBS。


速查卡片

问题一句话答案
RRBS 全称Reduced Representation Bisulfite Sequencing
核心酶MspI(识别 CCGG)
CpG 覆盖率~10-15% 全基因组 CpG,~85% CpG 岛
推荐比对工具Bismark
差异甲基化工具methylKit / DSS
与 WGBS 关系RRBS 是 WGBS 的低成本替代
去接头注意事项必须用 --rrbs 模式去填充碱基
适用场景大样本量、预算有限、关注 CpG 岛区域