BioF3 组学数据分析

06 ATAC-seq 分析要点

导出日期:2026年6月27日

06 ATAC-seq 分析要点

ATAC-seq 和 ChIP-seq 共享大部分分析流程(比对 → peak calling → 注释 → 差异),但有几个关键差异需要单独说明。

和 ChIP-seq 的区别

维度 ChIP-seq ATAC-seq
测什么 特定蛋白结合位点 所有开放染色质区域
需要 input/control 是(IgG 或 input DNA) 通常不需要
fragment size 单一分布 多模态(nucleosome-free + mono/di/tri-nucleosome)
peak calling 参数 --nomodel 或默认 --nomodel --shift -100 --extsize 200
核心 QC FRiP、IDR TSS enrichment、fragment size 分布、FRiP

Fragment size 分布

ATAC-seq 最重要的 QC 图是 fragment size 分布:

~100-150 bp  → nucleosome-free fragments(信号最好的部分)
~200 bp      → mono-nucleosome
~400 bp      → di-nucleosome
~600 bp      → tri-nucleosome

好的 ATAC-seq 数据应该在 < 150bp 处有一个明显的 peak(nucleosome-free),然后在 ~200bp 处有第二个 peak。如果第一个 peak 不明显,说明 Tn5 转座效率低或者细胞核裂解不充分。

MACS2 参数

macs2 callpeak \
  -t sample.bam \
  -f BAMPE \
  --nomodel \
  --shift -100 --extsize 200 \
  -g hs \
  -n sample_atac \
  --keep-dup all \
  -q 0.05

关键参数:

和单细胞 scATAC 的关系

单细胞实践 10 scATAC-seq 里用的 Signac 流程,底层思路和 bulk ATAC 一样(TF-IDF + LSI),只是把"每个样本"换成了"每个细胞"。bulk ATAC 的 peak 可以直接作为 scATAC 的参考 peak set。

推荐流水线

如果不想手动跑每一步,推荐用 nf-core/atacseq:

nextflow run nf-core/atacseq \
  --input samplesheet.csv \
  --genome GRCh38 \
  --outdir results/

它会自动完成 trim → align → dedup → shift → peak call → QC report 全流程。

常见坑

坑 1:忘了线粒体 reads 过滤

ATAC-seq 数据里 20-50% 的 reads 来自线粒体(mtDNA 是裸露的,Tn5 切得猛)。如果不过滤会让 peak calling 严重偏向线粒体区域。比对后 samtools view -h ... | grep -v chrM 过掉

坑 2:Tn5 偏移没校正

Tn5 转座插入位置不是 read 起点 — 它在 R1 后偏移 +4bp,R2 前偏移 -5bp。精细 footprint 分析必须做 shift:deepTools alignmentSieve --ATACshift,或 MACS2 --shift -100 --extsize 200

坑 3:低质量样本 fragment size 双峰不明显

健康 ATAC 在 fragment size 直方图上有 < 150bp 主峰 + ~200bp 次峰。双峰平坦或丢失说明实验失败(细胞核没裂解、Tn5 用量不对)。继续分析也是浪费时间,这一步要果断。

坑 4:把 input 当 ATAC 的 control

ATAC 没有 input 这个概念。某些教程让你把"基因组 DNA"当 control,但 ATAC 本身就是基因组开放区域的富集,用 input 做 control 反而抹掉信号。直接 macs2 callpeak -t sample.bam 不要 -c。

坑 5:用 RNA-seq 标准做 ATAC 差异分析

差异 ATAC 不应该用 DESeq2 直接套基因。要用 DiffBindcsaw输入是 consensus peak set 上的 reads count,不是基因 count

下一步

接着深入

横向延伸

参考资源