跳转至

33. 表观基因组学入门(ChIP-seq / ATAC-seq)

一句话说明:表观基因组学研究的是"基因序列不变,但基因表达被调控"的机制——ChIP-seq 找蛋白质在哪里结合 DNA,ATAC-seq 找 DNA 哪里是"打开的"。


目录

  1. 什么是表观遗传
  2. DNA 甲基化
  3. 组蛋白修饰
  4. ChIP-seq 完整分析流程
  5. ATAC-seq 分析流程
  6. 染色质可及性(Chromatin Accessibility)
  7. 常用工具汇总
  8. 可视化
  9. 面试怎么答
  10. 速查表
  11. 延伸资源

1. 什么是表观遗传

白话解释:基因的"开关"

把 DNA 想象成一本食谱书(基因组),书里有几万道菜的做法(基因)。表观遗传就是在这本书上贴便利贴、加书签、用回形针夹住某些页——书的内容(DNA序列)没变,但哪些菜能做、哪些页被翻开,被这些"标记"控制了。

概念白话类比分子本质
DNA 甲基化在某一页上贴"禁止翻阅"的封条胞嘧啶(C)上加甲基(-CH₃),通常抑制基因表达
组蛋白修饰把书页卷紧(关)或展开(开)组蛋白尾巴上加乙酰基/甲基等化学修饰
染色质重塑换一个更紧或更松的书架ATP 依赖的复合物改变核小体位置
非编码 RNA管理员决定哪些书架对外开放lncRNA、miRNA 等参与调控

核心要点

  • 表观遗传修饰可遗传可逆转(与 DNA 突变不同)
  • 同一个人的肝细胞和神经细胞 DNA 序列相同,但表观遗传标记不同 → 不同的基因表达谱 → 不同的细胞功能
  • 疾病(癌症、糖尿病、精神疾病)常伴随表观遗传异常

2. DNA 甲基化

2.1 原理

DNA 甲基化是最经典的表观遗传修饰:甲基转移酶(DNMT)把一个甲基(-CH₃)加到胞嘧啶(C)的第 5 位碳上,生成 5-甲基胞嘧啶(5mC)

  • CpG 位点:甲基化主要发生在 CpG 二核苷酸(C 后面紧跟 G)
  • CpG 岛:基因启动子区域常有大量 CpG 聚集,称为 CpG 岛
  • 启动子 CpG 岛高甲基化 → 基因沉默(白话:封条贴上了,这页翻不开)
  • 基因体甲基化 → 可能与活跃转录相关

2.2 检测方法:Bisulfite-seq(亚硫酸氢盐测序)

原理:亚硫酸氢盐(bisulfite)处理 DNA 后: - 未甲基化的 C → 脱氨变成 U → 测序读出 T - 甲基化的 C → 不受影响 → 测序仍读出 C

通过比对处理后的序列与参考基因组,就能在单碱基分辨率下知道每个 C 是否被甲基化。

2.3 分析工具:Bismark

Bismark(Babraham Bioinformatics 开发)是 Bisulfite-seq 的主流分析工具,能在一步内完成比对和甲基化调用。

# ========== 第一步:构建 Bisulfite 基因组索引 ==========
# Bismark 会把参考基因组做 C→T 和 G→A 两种转换,分别建索引
bismark_genome_preparation \
    --bowtie2 \                  # 使用 Bowtie2 作为比对器(也可用 HISAT2)
    /path/to/genome/             # 参考基因组所在目录(需含 .fa 文件)

# ========== 第二步:比对 ==========
# 把 bisulfite 处理后的 reads 比对到转换后的基因组
bismark \
    --bowtie2 \                  # 比对引擎
    --genome /path/to/genome/ \  # 基因组索引目录
    -1 sample_R1.fq.gz \         # 双端测序 Read1
    -2 sample_R2.fq.gz \         # 双端测序 Read2
    -o bismark_output/           # 输出目录

# ========== 第三步:去重 ==========
# 去除 PCR 重复(bisulfite-seq 的 PCR 偏差比普通 WGS 更严重)
deduplicate_bismark \
    --bam \                      # 输入为 BAM 格式
    --paired \                   # 双端数据
    bismark_output/sample.bam    # 输入文件

# ========== 第四步:甲基化信息提取 ==========
# 从比对结果中提取每个 CpG/CHG/CHH 位点的甲基化状态
bismark_methylation_extractor \
    --paired-end \               # 双端模式
    --comprehensive \            # 输出所有 context(CpG/CHG/CHH)
    --bedGraph \                 # 生成 bedGraph 格式(可用于可视化)
    --cytosine_report \          # 生成全基因组 CpG 报告
    --genome_folder /path/to/genome/ \  # 基因组目录
    -o methylation_output/ \     # 输出目录
    sample.deduplicated.bam      # 去重后的 BAM

# ========== 第五步:生成报告 ==========
bismark2report                   # 自动生成 HTML 质控报告
bismark2summary                  # 多样本汇总报告

下游差异甲基化分析常用 R 包:methylKitDSSdmrseq


3. 组蛋白修饰

3.1 基本概念

DNA 缠绕在组蛋白八聚体(2×H2A、2×H2B、2×H3、2×H4)上形成核小体——这是染色质的基本单元。组蛋白的 N 端尾巴伸出来,可以被各种酶添加化学修饰。

白话:DNA 是线,组蛋白是线轴。线轴上可以贴不同颜色的标签,每种颜色代表不同的指令(开/关/准备中)。

3.2 重要组蛋白标记速记

修饰标记全称含义白话
H3K4me3H3 第 4 位赖氨酸三甲基化活跃启动子"这个基因正在用!"的绿灯
H3K27acH3 第 27 位赖氨酸乙酰化活跃增强子/启动子最强的"开"信号
H3K27me3H3 第 27 位赖氨酸三甲基化Polycomb 抑制"暂时关掉"的红灯(可逆)
H3K9me3H3 第 9 位赖氨酸三甲基化异染色质/永久沉默"永久关闭"的锁
H3K36me3H3 第 36 位赖氨酸三甲基化转录延伸区"正在被转录的基因体"
H3K4me1H3 第 4 位赖氨酸单甲基化增强子标记(活跃或准备中)"这里是个增强子"

3.3 命名规则解读

H3K27ac = H3(组蛋白 H3)+ K27(第 27 位赖氨酸 Lysine)+ ac(乙酰化 acetylation)

修饰类型缩写: - me1/me2/me3 = 单/双/三甲基化(methylation) - ac = 乙酰化(acetylation) - ub = 泛素化(ubiquitination) - ph = 磷酸化(phosphorylation)

3.4 "组蛋白密码"假说

不同修饰的组合决定基因的状态: - H3K4me3 + H3K27me3 = 双价(bivalent)标记 → 基因"准备好了但还没开"(常见于干细胞) - H3K4me1 + H3K27ac = 活跃增强子 - H3K4me1 + H3K27me3 = 被抑制的增强子(poised enhancer)


4. ChIP-seq 完整分析流程

ChIP-seq(Chromatin Immunoprecipitation followed by Sequencing):用抗体"钓"出与目标蛋白结合的 DNA 片段,然后测序。

4.1 实验原理速记

固定(交联蛋白-DNA)→ 超声打断 DNA → 用特异性抗体免疫沉淀
→ 回收 DNA → 建库测序 → 生物信息学分析

4.2 完整分析流程(命令 + 注释)

# ================================================================
# ChIP-seq 分析流水线(以 H3K27ac 为例)
# 需要:处理组 BAM(ChIP)+ 对照组 BAM(Input)
# ================================================================

# ========== 第一步:质控 ==========
fastqc \
    -t 8 \                       # 8 线程
    -o fastqc_results/ \         # 输出目录
    chip_sample.fq.gz \          # ChIP 样本
    input_control.fq.gz          # Input 对照

# 如需,用 Trim Galore 去接头
trim_galore \
    --paired \                   # 双端模式
    --fastqc \                   # 修剪后自动跑 FastQC
    -o trimmed/ \                # 输出目录
    chip_R1.fq.gz chip_R2.fq.gz  # 输入文件

# ========== 第二步:比对(Alignment)==========
# 用 Bowtie2 将 reads 比对到参考基因组
bowtie2 \
    -p 8 \                       # 8 线程
    -x /path/to/bowtie2_index \  # 基因组索引前缀
    -1 chip_R1_trimmed.fq.gz \   # Read1
    -2 chip_R2_trimmed.fq.gz \   # Read2
    --very-sensitive \           # 高灵敏度模式
    --no-mixed \                 # 不允许单端比对
    --no-discordant \            # 不允许不一致的配对
    -S chip.sam                  # 输出 SAM 文件

# SAM 转 BAM,排序并建索引
samtools view -@ 8 -bS -q 10 chip.sam | \   # -q 10:过滤低质量比对
    samtools sort -@ 8 -o chip_sorted.bam    # 按坐标排序
samtools index chip_sorted.bam               # 建立索引(.bai 文件)

# 对 Input 对照做同样的比对操作(此处省略,命令相同)

# ========== 第三步:去重(Remove Duplicates)==========
# PCR 重复会造成假阳性,必须去除
# 用 Picard MarkDuplicates(也可用 sambamba)
picard MarkDuplicates \
    INPUT=chip_sorted.bam \           # 输入 BAM
    OUTPUT=chip_dedup.bam \           # 去重后 BAM
    METRICS_FILE=chip_dup_metrics.txt \  # 重复率统计
    REMOVE_DUPLICATES=true \          # 直接移除重复 reads
    VALIDATION_STRINGENCY=LENIENT     # 宽松验证

samtools index chip_dedup.bam         # 重新建索引

# ========== 第四步:去除黑名单区域(可选但推荐)==========
# ENCODE 黑名单区域是已知的假信号来源
bedtools intersect \
    -v \                              # 保留不在黑名单中的 reads
    -abam chip_dedup.bam \            # 输入 BAM
    -b hg38-blacklist.v2.bed \        # ENCODE 黑名单 BED 文件
    > chip_clean.bam                  # 清理后的 BAM
samtools index chip_clean.bam

# ========== 第五步:Peak Calling(MACS2)==========
# MACS2 是最主流的 peak caller
# 核心思想:找到 ChIP 信号显著高于 Input 背景的区域

# --- 窄峰(narrow peak)模式 ---
# 适用于:转录因子、H3K4me3、H3K27ac
macs2 callpeak \
    -t chip_clean.bam \               # 处理组(ChIP)
    -c input_clean.bam \              # 对照组(Input)
    -f BAMPE \                        # 双端 BAM 格式(单端用 BAM)
    -g hs \                           # 有效基因组大小(hs=人类,mm=小鼠)
    -n H3K27ac_sample \               # 输出文件名前缀
    --outdir macs2_output/ \          # 输出目录
    -q 0.05 \                         # FDR 阈值(q-value < 0.05)
    --keep-dup all                    # 保留所有 reads(已手动去重)

# --- 宽峰(broad peak)模式 ---
# 适用于:H3K27me3、H3K36me3、H3K9me3 等覆盖大区域的修饰
macs2 callpeak \
    -t chip_clean.bam \
    -c input_clean.bam \
    -f BAMPE \
    -g hs \
    -n H3K27me3_sample \
    --outdir macs2_broad/ \
    --broad \                         # 开启宽峰模式
    --broad-cutoff 0.1 \              # 宽峰 q-value 阈值
    --keep-dup all

# MACS2 输出文件说明:
# _peaks.narrowPeak / _peaks.broadPeak  → Peak 坐标(BED 格式)
# _peaks.xls                            → Peak 详细统计
# _summits.bed                          → Peak 顶点坐标(仅 narrow 模式)
# _model.r                              → 片段大小模型(可用 R 绘图)

# ========== 第六步:差异分析(Differential Binding)==========
# 比较两个条件下 peak 的变化,常用 R 包 DiffBind
# 在 R 中运行:
# library(DiffBind)
# samples <- read.csv("sample_sheet.csv")  # 样本信息表
# dba_obj <- dba(sampleSheet = samples)    # 创建 DBA 对象
# dba_obj <- dba.count(dba_obj)            # 计数
# dba_obj <- dba.contrast(dba_obj)         # 设置对比
# dba_obj <- dba.analyze(dba_obj)          # 差异分析(默认用 DESeq2)
# dba.report(dba_obj)                      # 输出差异 peak

# ========== 第七步:Peak 注释 ==========
# 用 HOMER 的 annotatePeaks.pl 或 R 包 ChIPseeker
# HOMER 方式:
annotatePeaks.pl \
    macs2_output/H3K27ac_sample_peaks.narrowPeak \  # Peak 文件
    hg38 \                            # 基因组版本
    -go go_output/ \                  # GO 富集分析输出
    -annStats ann_stats.txt \         # 注释统计
    > annotated_peaks.txt             # 注释结果

# ========== 第八步:Motif 分析 ==========
# 在 peak 区域寻找富集的转录因子结合基序
# HOMER findMotifsGenome.pl
findMotifsGenome.pl \
    macs2_output/H3K27ac_sample_summits.bed \  # Peak 顶点(±100bp 效果更好)
    hg38 \                            # 基因组版本
    motif_output/ \                   # 输出目录
    -size 200 \                       # 取 summit 两侧各 100bp
    -mask \                           # 屏蔽重复序列
    -p 8                              # 8 线程

# 也可以用 MEME-ChIP 做 de novo motif 发现:
# 先提取 peak 序列
bedtools getfasta \
    -fi hg38.fa \                     # 参考基因组
    -bed peaks_top500.bed \           # 取前 500 个最显著 peak
    -fo peaks_top500.fa               # 输出 FASTA
# 然后上传到 MEME-ChIP 在线服务器分析

5. ATAC-seq 分析流程

5.1 ATAC-seq 是什么

ATAC-seq(Assay for Transposase-Accessible Chromatin using Sequencing):用 Tn5 转座酶"切"开染色质中"松开的"区域,然后测序。

白话:ChIP-seq 是用鱼钩(抗体)去"钓"特定的鱼(蛋白质),看鱼在哪里;ATAC-seq 是往池塘里扔炸弹(Tn5 转座酶),只有水面开放的地方(开放染色质)才会被炸到——找到哪些地方是"开放"的。

5.2 ChIP-seq vs ATAC-seq 对比

对比维度ChIP-seqATAC-seq
目的找特定蛋白结合位点或特定修饰位置找所有开放染色质区域
需要抗体?需要(成本高,质量关键)不需要
细胞量通常需要 10⁶-10⁷ 个细胞最少 500-50,000 个细胞
实验时间3-5 天几小时
对照必须有 Input 对照通常不需要
Peak 类型取决于目标(窄峰/宽峰)以窄峰为主
特有处理需去除线粒体 reads、处理 Tn5 偏移
信息量单一蛋白/修饰的结合图谱全基因组开放状态 + 足迹分析推断 TF 结合

5.3 ATAC-seq 分析流程(命令 + 注释)

# ================================================================
# ATAC-seq 分析流水线
# 注意:与 ChIP-seq 的主要区别用 [ATAC特有] 标记
# ================================================================

# ========== 第一步:质控 + 去接头 ==========
# 与 ChIP-seq 相同
trim_galore \
    --paired \
    --fastqc \
    --nextera \                      # [ATAC特有] ATAC-seq 用 Nextera 接头
    -o trimmed/ \
    atac_R1.fq.gz atac_R2.fq.gz

# ========== 第二步:比对 ==========
# 与 ChIP-seq 基本相同
bowtie2 \
    -p 8 \
    -x /path/to/bowtie2_index \
    -1 atac_R1_trimmed.fq.gz \
    -2 atac_R2_trimmed.fq.gz \
    --very-sensitive \
    -X 2000 \                        # [ATAC特有] 最大插入片段设为 2000bp
    --no-mixed \
    --no-discordant \
    -S atac.sam

# ========== 第三步:过滤 ==========
# 3a. 去除线粒体 reads [ATAC特有]
# ATAC-seq 中线粒体 DNA 占比很高(20%-80%),必须去除
samtools view -@ 8 -bS -q 10 atac.sam | \
    samtools sort -@ 8 -o atac_sorted.bam
samtools index atac_sorted.bam

# 去除 chrM(线粒体)上的 reads
samtools idxstats atac_sorted.bam | \
    cut -f 1 | grep -v chrM | \
    xargs samtools view -b atac_sorted.bam > atac_noMT.bam
samtools index atac_noMT.bam

# 3b. 去重
picard MarkDuplicates \
    INPUT=atac_noMT.bam \
    OUTPUT=atac_dedup.bam \
    METRICS_FILE=atac_dup_metrics.txt \
    REMOVE_DUPLICATES=true
samtools index atac_dedup.bam

# 3c. 去除黑名单区域
bedtools intersect -v \
    -abam atac_dedup.bam \
    -b hg38-blacklist.v2.bed \
    > atac_clean.bam
samtools index atac_clean.bam

# ========== 第四步:Tn5 偏移校正 [ATAC特有] ==========
# Tn5 转座酶插入时会造成 9bp 的偏移:
# 正链 reads 向 +4bp 方向移动,负链 reads 向 -5bp 方向移动
# 这在某些下游分析(如足迹分析)中必须校正
# 方法:用 alignmentSieve(deepTools)或手动用 awk 调整
alignmentSieve \
    -b atac_clean.bam \
    --ATACshift \                    # 自动校正 Tn5 偏移
    -o atac_shifted.bam
samtools sort -o atac_final.bam atac_shifted.bam
samtools index atac_final.bam

# ========== 第五步:Peak Calling(MACS2)==========
# ATAC-seq 不需要 Input 对照
macs2 callpeak \
    -t atac_final.bam \              # 只有处理组
    -f BAMPE \                       # 双端 BAM
    -g hs \                          # 有效基因组大小
    -n ATAC_sample \                 # 输出前缀
    --outdir macs2_atac/ \
    --nomodel \                      # [ATAC特有] 不建模(ATAC 的片段大小分布与 ChIP 不同)
    --shift -75 \                    # [ATAC特有] 配合 --extsize 使用
    --extsize 150 \                  # [ATAC特有] 以切割位点为中心,取 150bp 区域
    --keep-dup all \
    -q 0.05                          # FDR 阈值

# 注意:也有文献推荐 ATAC-seq 直接使用 --nomodel --shift -100 --extsize 200
# 或者用 BAMPE 模式时不设 shift/extsize(MACS2 自动用实际片段大小)

# ========== 第六步:下游分析 ==========
# 与 ChIP-seq 类似:Peak 注释、差异分析、Motif 分析
# 额外可做:
# - 核小体位置分析(按片段大小分类:<150bp 为无核小体区域,150-300bp 为单核小体)
# - TF 足迹分析(Footprinting):用 TOBIAS 或 HINT-ATAC

5.4 ATAC-seq 质控要点

  • 线粒体比例:理想 <20%,高于 50% 说明实验有问题
  • TSS 富集:好的 ATAC-seq 数据在转录起始位点附近信号应该明显富集
  • 片段大小分布:应呈现核小体周期性模式(~200bp 周期的锯齿状分布)
  • FRiP(Fraction of Reads in Peaks):>20% 为好数据

6. 染色质可及性

白话解释

染色质可及性(Chromatin Accessibility)就是 DNA 被"打开"的程度。

想象 DNA 是一根很长的耳机线,绕在很多线轴(核小体)上。有些地方绕得很紧(封闭染色质),外面的东西碰不到线;有些地方松开了(开放染色质),转录因子等蛋白质可以接触到 DNA,激活基因表达。

  • 开放区域:通常是启动子、增强子、绝缘子等调控元件所在
  • 封闭区域:基因被沉默,不表达

检测方法对比

方法原理优点缺点
ATAC-seqTn5 转座酶切割开放区域细胞量少、速度快、成本低Tn5 有序列偏好性
DNase-seqDNase I 酶切割开放区域经典方法、数据库丰富需大量细胞、技术难度高
FAIRE-seq甲醛固定后提取无核小体 DNA不需酶信噪比低,已较少使用
MNase-seq微球菌核酸酶消化裸露 DNA能定位核小体位置酶切偏好性、需大量细胞

7. 常用工具汇总

7.1 MACS2(Model-based Analysis of ChIP-seq)

# 安装
pip install macs2        # 推荐 Python 3.9+
# 或
conda install -c bioconda macs2

# 核心功能
macs2 callpeak          # Peak calling(最常用)
macs2 bdgcmp            # 比较两个 bedGraph 信号
macs2 bdgdiff           # 差异 peak 检测
macs2 filterdup         # 过滤重复 reads
macs2 predictd          # 预测片段大小(建模)

关键参数速记: - -g:有效基因组大小(hs=2.7e9, mm=1.87e9, ce=9e7, dm=1.2e8) - -q vs -p-q 是 FDR 校正后的阈值(推荐),-p 是未校正 p-value - --broad:宽峰模式 - --nomodel:不自动建模(ATAC-seq 或已知片段大小时使用) - -f BAMPE:双端 BAM(用实际片段大小而非估算值)

7.2 deepTools

deepTools 是一个用于高通量测序数据(ChIP-seq/ATAC-seq/RNA-seq)探索和可视化的 Python 工具套件。

# 安装
conda install -c bioconda deeptools

# 常用命令
# (1) BAM 转 bigWig(用于 IGV 可视化和热图)
bamCoverage \
    -b chip_clean.bam \              # 输入 BAM
    -o chip.bw \                     # 输出 bigWig
    --binSize 10 \                   # 分辨率(bp)
    --normalizeUsing RPKM \          # 标准化方法(也可用 CPM/BPM/RPGC)
    --effectiveGenomeSize 2700000000 \  # 有效基因组大小(人类)
    -p 8                             # 线程数

# (2) 计算基因/Peak 周围信号矩阵
computeMatrix reference-point \
    -S chip.bw input.bw \            # 输入 bigWig 信号文件
    -R genes.bed \                   # 参考区域(基因/peak 坐标)
    --referencePoint TSS \           # 以 TSS 为参考点(也可用 TES/center)
    -a 3000 -b 3000 \               # TSS 上下游各 3000bp
    -o matrix.gz                     # 输出矩阵

# (3) 绘制热图
plotHeatmap \
    -m matrix.gz \                   # 输入矩阵
    -o heatmap.png \                 # 输出图片
    --colorMap RdBu_r \              # 配色方案
    --whatToShow 'heatmap and colorbar' \
    --zMin 0 --zMax 10               # 信号范围

# (4) TSS Profile 图
plotProfile \
    -m matrix.gz \
    -o profile.png \
    --perGroup                       # 按组绘制

# (5) 样本相关性检查(QC)
multiBamSummary bins \
    --bamfiles sample1.bam sample2.bam sample3.bam \
    -o results.npz \
    -p 8
plotCorrelation \
    -in results.npz \
    --corMethod spearman \           # Spearman 相关系数
    --whatToPlot heatmap \
    -o correlation_heatmap.png

# (6) 指纹图(Fingerprint plot,评估 ChIP 富集质量)
plotFingerprint \
    -b chip.bam input.bam \
    -o fingerprint.png \
    --labels ChIP Input

7.3 HOMER(Hypergeometric Optimization of Motif EnRichment)

# 安装
conda install -c bioconda homer

# 核心功能
# (1) 创建标签目录(HOMER 的核心数据结构)
makeTagDirectory tag_dir/ chip_clean.bam

# (2) Peak Calling(HOMER 自带的 peak caller)
findPeaks tag_dir/ \
    -style factor \                  # factor=窄峰, histone=宽峰
    -i input_tag_dir/ \              # Input 对照
    -o peaks.txt                     # 输出

# (3) Peak 注释
annotatePeaks.pl peaks.txt hg38 > annotated.txt

# (4) Motif 发现(HOMER 最强功能)
findMotifsGenome.pl peaks.txt hg38 motif_results/ -size 200 -mask

# (5) 差异分析
getDifferentialPeaks peaks1.txt tag_dir1/ tag_dir2/ > diff_peaks.txt

8. 可视化

8.1 IGV(Integrative Genomics Viewer)

IGV 是最常用的基因组浏览器,可以可视化 BAM、bigWig、BED、VCF 等各种格式。

使用步骤: 1. 下载 IGV(https://igv.org/) 2. 加载参考基因组(如 hg38) 3. 依次拖入文件: - ChIP bigWig(信号轨道) - Input bigWig(对照轨道) - Peak BED 文件(标注 Peak 位置) - 基因注释(RefSeq 等) 4. 导航到感兴趣的基因,截图

截图技巧: - 调整 Y 轴范围使 ChIP 和 Input 使用相同的刻度 - 使用 File → Save Image 保存高分辨率图片

8.2 deepTools 热图(Heatmap)

7.2 deepTools 中的 computeMatrix + plotHeatmap 命令。

热图展示内容: - X 轴:基因/Peak 周围的位置(如 TSS ± 3kb) - Y 轴:每一行是一个基因/Peak - 颜色:信号强度 - 上方 Profile 图:所有基因/Peak 的平均信号

8.3 其他可视化工具

工具用途特点
pyGenomeTracks多轨道基因组可视化命令行出版级图片
UCSC Genome Browser在线基因组浏览器公共数据丰富,可自定义 Track
Gviz(R 包)基因组区域可视化适合在 R 流程中使用
karyoploteR(R 包)染色体水平可视化全基因组 Peak 分布
ChIPseeker(R 包)Peak 注释可视化饼图/柱状图展示 Peak 在基因组的分布

9. 面试怎么答

Q1:请解释 ChIP-seq 和 ATAC-seq 的区别

答题要点: ChIP-seq 是用特异性抗体来"拉下"(immunoprecipitate)与目标蛋白结合的 DNA 片段,然后测序,目的是找到特定蛋白(如转录因子或组蛋白修饰)在基因组上的结合位置。必须有 Input 对照,需要大量细胞,实验周期长。

ATAC-seq 是用 Tn5 转座酶直接切割开放染色质区域,然后测序,目的是在全基因组水平找到所有的开放染色质区域(即染色质可及性)。不需要抗体,细胞量少(500 个即可),几小时就能完成。

简单说:ChIP-seq 回答"某个蛋白在哪里结合",ATAC-seq 回答"哪里的染色质是打开的"。

Q2:MACS2 的 peak calling 原理是什么?

答题要点: MACS2 首先通过正负链 reads 的偏移模式(bimodal pattern)估算片段大小 d,然后将所有 reads 向 3' 方向移动 d/2 到最可能的蛋白-DNA 互作位点。接着,在全基因组用滑窗扫描 ChIP 信号,用泊松分布模型计算每个窗口的信号是否显著高于局部背景(local lambda)。局部背景综合考虑了基因组整体背景、1kb 和 10kb 范围的局部信号。最后用 Benjamini-Hochberg 校正 p-value 得到 q-value(FDR),q-value < 阈值的区域即为显著 peak。

宽峰模式下,MACS2 会先调用窄峰,然后把临近的窄峰合并为更大的 broad peak。

Q3:ATAC-seq 数据处理有哪些特殊步骤?

答题要点: 三个特殊步骤: 1. 去除线粒体 reads:ATAC-seq 中线粒体 DNA 因无核小体包装而极易被 Tn5 切割,常占总 reads 的 20%-80%,必须过滤。 2. Tn5 偏移校正:Tn5 转座酶插入时造成 9bp 的双链错位(正链+4bp,负链-5bp),在做足迹分析等精细分析时需要校正。 3. 不需要 Input 对照:MACS2 callpeak 时只需处理组,不加 -c 参数。且通常使用 --nomodel 关闭自动建模。

另外,质控时要特别关注 TSS 富集度和片段大小的核小体周期分布。

Q4:H3K4me3 和 H3K27me3 分别代表什么?如果它们同时出现在一个区域怎么理解?

答题要点: H3K4me3 是活跃启动子的标记,出现在活跃转录基因的 TSS 附近。H3K27me3 是 Polycomb 抑制标记,表示基因被沉默。

如果两者同时出现在同一区域,称为"双价结构域"(bivalent domain),这在胚胎干细胞中最为典型。双价标记使得基因处于"准备好了但暂时沉默"的状态——在分化信号到来时,可以快速激活(丢掉 H3K27me3)或永久沉默(丢掉 H3K4me3)。这被认为是干细胞维持多能性和发育可塑性的重要机制。

Q5:做完 ChIP-seq peak calling 后,你还会做哪些下游分析?

答题要点: 1. Peak 注释:用 ChIPseeker 或 HOMER annotatePeaks 确定 peak 落在基因组的什么位置(启动子、内含子、基因间区等),以及最近的基因。 2. Motif 分析:用 HOMER findMotifsGenome 或 MEME-ChIP 在 peak 序列中寻找富集的转录因子结合基序,验证是否钓到了正确的蛋白。 3. 差异结合分析:用 DiffBind 比较不同条件下 peak 的变化。 4. 功能富集分析:对 peak 关联的基因做 GO/KEGG 富集,理解生物学功能。 5. 可视化:用 deepTools 绘制 TSS 热图和 Profile 图;用 IGV 查看代表性位点。 6. 整合分析:结合 RNA-seq 数据看基因表达变化与组蛋白修饰变化的关联。


10. 速查表

分析流程对比速查

ChIP-seq 流程:
FASTQ → FastQC → Trim → Bowtie2比对 → SAM→BAM排序 → 去重(Picard)
→ 去黑名单 → MACS2 Peak Calling(需Input) → Peak注释 → Motif分析 → 差异分析

ATAC-seq 流程:
FASTQ → FastQC → Trim(Nextera接头) → Bowtie2比对 → SAM→BAM排序
→ 去线粒体reads → 去重(Picard) → 去黑名单 → Tn5偏移校正
→ MACS2 Peak Calling(无Input, --nomodel) → Peak注释 → Motif分析 → 差异分析

Bisulfite-seq 流程:
FASTQ → FastQC → Trim → Bismark比对(转换基因组) → 去重
→ 甲基化提取 → 差异甲基化分析(methylKit/DSS)

组蛋白标记速查

标记类型Peak 形态MACS2 模式
H3K4me3活跃启动子窄峰callpeak(默认)
H3K27ac活跃增强子/启动子窄峰callpeak(默认)
H3K4me1增强子窄峰callpeak(默认)
H3K27me3Polycomb 抑制宽峰--broad
H3K9me3异染色质宽峰--broad
H3K36me3转录延伸宽峰--broad

工具功能速查

工具主要功能安装方式
Bowtie2序列比对conda install bowtie2
samtoolsBAM 处理conda install samtools
Picard去重conda install picard
MACS2Peak Callingpip install macs2
deepTools信号处理/可视化conda install deeptools
HOMERMotif/注释conda install homer
BismarkBS-seq 比对conda install bismark
bedtools基因组区间操作conda install bedtools
DiffBind (R)差异结合分析BiocManager::install("DiffBind")
ChIPseeker (R)Peak 注释可视化BiocManager::install("ChIPseeker")
IGV基因组可视化https://igv.org/

MACS2 常用参数速查

参数说明典型值
-t处理组 BAM必填
-c对照组 BAMChIP-seq 必填,ATAC-seq 不需要
-f文件格式BAM(单端)或 BAMPE(双端)
-g有效基因组大小hs/mm/ce/dm
-n输出前缀自定义
-qFDR 阈值0.05(默认)或 0.01(严格)
--broad宽峰模式用于 H3K27me3 等
--nomodel不建模ATAC-seq 常用
--shiftreads 偏移ATAC-seq: -75 或 -100
--extsize延伸大小ATAC-seq: 150 或 200
--keep-dup重复处理all(已手动去重时)

11. 延伸资源

学习教程

  • HBC Training ChIP-seq 教程:https://hbctraining.github.io/Intro-to-ChIPseq/ (哈佛生信培训,入门首选)
  • ENCODE 项目 Pipeline:https://www.encodeproject.org/ (官方标准流程)
  • Biostars / SEQanswers:社区问答(搜索具体报错)

关键论文

  • MACS2 原始论文:Zhang et al., Genome Biology, 2008
  • ATAC-seq 原始论文:Buenrostro et al., Nature Methods, 2013
  • ENCODE 项目:ENCODE Project Consortium, Nature, 2012
  • Roadmap Epigenomics:Roadmap Epigenomics Consortium, Nature, 2015

公共数据库

  • ENCODE:https://www.encodeproject.org/ (人类和小鼠的大量 ChIP-seq/ATAC-seq 数据)
  • Roadmap Epigenomics:https://egg2.wustl.edu/roadmap/ (多组织表观基因组图谱)
  • Cistrome DB:http://cistrome.org/ (ChIP-seq/ATAC-seq 数据整合分析平台)
  • GEO/SRA:https://www.ncbi.nlm.nih.gov/geo/ (原始测序数据下载)

R/Bioconductor 包推荐

  • DiffBind:差异结合分析
  • ChIPseeker:Peak 注释与可视化
  • methylKit:差异甲基化分析
  • DSS:差异甲基化分析(贝叶斯方法)
  • chromVAR:ATAC-seq 染色质可变性分析
  • Signac:单细胞 ATAC-seq 分析(与 Seurat 集成)

文档信息 - 字数:约 4500 字 - 适用岗位:生信工程师(表观方向)、宏基因组 + 通用生信 - 前置知识:Linux 基础、NGS 测序原理、BAM/BED 文件格式 - 关联知识库:31_变异检测_GATK.md(同为基因组学分析方向)