01 实验类型与数据格式
表观组学实验类型多,但分析思路可以归为两大类:开放区域检测(ATAC-seq、DNase-seq)和蛋白-DNA 结合检测(ChIP-seq)。两者的分析流程几乎一样,区别在 peak calling 参数和质量指标。
三种主要实验
| 实验 | 测什么 | peak 类型 | 典型 QC 指标 |
|---|---|---|---|
| ATAC-seq | 染色质开放区域 | narrow | TSS enrichment、fragment size 分布 |
| ChIP-seq | TF 结合位点 / 组蛋白修饰 | narrow (TF) / broad (histone) | FRiP、IDR |
| WGBS/RRBS | DNA 甲基化 | 不做 peak calling | 覆盖度、转化率 |
本专栏前 4 个模块聚焦 ATAC-seq 和 ChIP-seq(它们共享 peak-based 分析框架)。甲基化后续单独开。
从 FASTQ 到 peak 文件
不管是 ATAC 还是 ChIP,从原始数据到可分析的 peak 文件,标准流程是:
FASTQ → fastp (trim) → Bowtie2/BWA (align) → samtools (sort/filter)
→ Picard (dedup) → MACS2 (peak calling) → narrowPeak / broadPeak
BioF3 的表观组教程从 peak 文件开始。如果你需要从 FASTQ 跑起,参考 nf-core/chipseq 或 nf-core/atacseq 流水线。
peak 文件格式
MACS2 输出的 .narrowPeak 是 BED6+4 格式:
chr1 9356548 9356648 peak_1 100 . 5.0 10.5 7.2 50
| 列 | 含义 |
|---|---|
| 1-3 | 染色体、起始、终止 |
| 4 | peak 名 |
| 5 | score |
| 6 | strand(通常 .) |
| 7 | fold enrichment |
| 8 | -log10(pvalue) |
| 9 | -log10(qvalue) |
| 10 | summit 相对于 start 的偏移 |
R 里用 ChIPseeker::readPeakFile() 或 rtracklayer::import() 读入,得到 GRanges 对象。
怎么判断这份数据值不值得分析
拿到 peak 文件先做的不是注释或差异分析,而是判断这份数据本身值不值得花时间分析。三件事看一下:
1. peak 总数在合理范围
| 实验 | 健康范围 |
|---|---|
| TF ChIP-seq | 5,000 - 50,000 |
| 组蛋白 ChIP-seq (broad) | 20,000 - 100,000 |
| ATAC-seq | 30,000 - 200,000 |
| ATAC-seq(高深度细胞) | 可达 50 万 |
数量过少(< 1000)说明 IP 效率低或测序深度不足;数量异常多(> 100 万)多半是没正确去 input。
2. FRiP(fraction of reads in peaks)
FRiP = peak 区域 reads / 总比对 reads。好数据 FRiP > 0.2(ENCODE 严格要求 > 0.3),低于 0.05 基本不可用。这是辨识"真信号 vs 全是噪声"最直接的指标。
3. peak 在 TSS 附近富集
把 peak 中心和 TSS 距离画分布图,应该在 TSS 附近有明显尖峰。ATAC 的 TSS enrichment > 6 是常见门槛。如果 TSS 周围没有富集,说明实验失败或 chromatin 没有被有效打开。
这三件事 5 分钟就能查完,比闷头跑两天后发现数据没法用强多了 。
常见坑
坑 1:参考基因组版本不一致
peak 文件、注释 GTF、TxDb 三者必须用同一个基因组版本。hg19 的 peak 配 hg38 的 TxDb 不会报错但坐标全错。看 peak 文件第一行染色体名("chr1" vs "1")和 TxDb 文档对一下。
坑 2:narrowPeak 当 broadPeak 用
TF / DNase / ATAC 用 narrowPeak(带 summit 列);组蛋白修饰(H3K27me3、H3K4me3 etc)用 broadPeak(没有 summit 列)。强行把 broadPeak 当 narrowPeak 读会丢失信息,downstream motif 分析无法定位准确位置。
坑 3:peak 文件没有按染色体大小过滤
线粒体、未定位的 contig(chrUn_)、ENCODE blacklist 区域常出现假阳性 peak。call peak 后用 ENCODE blacklist BED 文件做一次 bedtools intersect -v 过滤掉,能去掉 5-15% 的假信号。
坑 4:把 BAM 里 MAPQ 低的 reads 也用了
ATAC / ChIP 的标准要求 MAPQ ≥ 30(Bowtie2 default)或 ≥ 10。MAPQ 低的 reads 可能是多处比对(重复区域),保留会让重复区域出现假 peak。
坑 5:paired-end ATAC 用 single-end 模式 call peak
-f BAM 是 single-end 模式,但 ATAC 是 paired-end,会丢一半信息。paired-end ATAC 必须 -f BAMPE,这一点和 ChIP-seq 不一样。
下一步
接着深入:
- 02 Peak 注释与多样本比较 — 把 peak 文件里那一坨基因组坐标变成"哪些基因"
- 06 ATAC-seq 分析要点 — 如果你的数据是 ATAC,先看这一篇了解关键差异
横向延伸:
- 02 原始数据处理与 Cell Ranger — bulk ATAC 的 BAM 处理思路和单细胞 Cell Ranger 类似
- nf-core/chipseq 流水线 — 完整的 FASTQ → peak 自动化方案
参考资源
离线资料下载
手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。