FastQC 报告深度解读:三个核心指标的实战心法
拿到一份 FastQC 报告,你第一眼会看什么?
我个人习惯,先扫一眼 Per base sequence quality 的概览图。
那颜色、那箱线,基本能告诉我这批次数据「干不干净」。
别急着上工具跑流程,先把下面这三个指标吃透,能省下后面 80% 的排查时间。
Per base sequence quality —— 碱基质量的「体温计」
这个图展示的是 每条 read 上每个位置的碱基质量分布。
横轴是 read 上的位置(1-based),纵轴是 Phred 质量分数 Q。
每个位置会画一个箱线图:中位数、四分位距、10% 和 90% 分位数都在上面。
图里那块 绿色背景(Q ≥ 28),意味着这位置质量很好;
黄色(20 ≤ Q < 28),还算能接受;
红色(Q < 20),嗯,要小心了。
• 整个 read 长度范围内,中位数线最好都在绿色区。
• 如果尾部掉进黄色甚至红色,说明 3' 端质量衰减严重。
• 前 5–10 bp 出现质量骤降,往往是测序仪起始不稳定或者接头污染。
我在项目中遇到过一批 RNA-seq 数据,前 3 个碱基中位数直接掉到 Q=15 附近。
刚开始以为是文库问题,后来一查才发现是 random primer 的偏好性 导致前几个碱基质量极低。
处理方式也很直接:用 SEQPREP 或者 CUTADAPT 把前 3 bp 切掉,再跑 FastQC,瞬间全绿。
--trim_back 参数做滑动窗口切除。比如
fastp -q 20 -l 50 --trim_back 能把质量低的尾巴裁掉,同时保留足够长的 read。
GC 含量 —— 测序偏差的「照妖镜」
FastQC 的 GC 含量图,本质是看 实测 GC 分布与理论 GC 分布 的吻合程度。
对于大多数物种,基因组 GC 含量呈近似正态分布(或双峰,取决于物种)。
如果你的测序数据是随机打断的,理论上 GC 分布应该平滑且与参考基因组一致。
但现实往往很骨感:
- 分布曲线尖锐且偏离理论值 —— 大概率是 PCR 扩增偏好导致,高 GC 或低 GC 区域被过度扩增或抑制。
- 出现两个明显峰 —— 可能是样品污染(混入了其他物种 DNA),或者是建库时引物二聚体没除干净。
- 分布形状正常但整体偏移 —— 如果偏移在 ±5% 以内,通常是批次效应;超过 ±10%,就要怀疑参考基因组选错了。
所以看 GC 图之前,一定先确认 Overrepresented sequences 那个模块已经清理干净。
怎么快速判断 GC 偏差是否严重?我个人习惯用这个经验值:
| GC 偏差幅度 | 可能原因 | 建议行动 |
|---|---|---|
| < 5% | 正常波动 / 批次效应 | 可以继续分析,但做好记录 |
| 5% – 10% | PCR 偏好 / 轻度污染 | 检查文库扩增曲线,考虑去重 |
| > 10% | 严重污染 / 建库失败 | 停!重新提取或重新建库 |
N 含量 —— 测序失败的「报警器」
N 就是那个没法确定是 A/T/C/G 的碱基。
在 FastQC 报告里,Per base N content 图会告诉你每个位置 N 的比例。
正常情况下,N 含量应该 几乎为零,整条线贴着横轴。
什么时候 N 会升高?
- 全段均匀升高(比如 N > 1%) —— 测序质量系统性差,可能是试剂失效或仪器故障。
- 只在 read 尾部升高 —— 这和碱基质量下降是伴生现象,说明 3' 端信号衰减到无法碱基判定。
- 某个特定位置突然冒尖 —— 通常是那个位置有 多碱基重复(homopolymer) 或者强烈的序列偏好性,测序仪在这个位置集体 debase。
• 任何位置 N > 5% → 红色警报,数据不可用。
• 平均 N 在 0.5% – 2% → 黄色警告,需要裁剪尾部或重新评估文库质量。
• 平均 N < 0.1% → 正常,放心往下走。
我记得有一次做单细胞 RNA-seq,N 含量图显示前 20 bp 完全正常,但从 60 bp 开始 N 含量直线飙升到 12%。
第一反应是测序仪出了问题,后来仔细一看,是文库的 插入片段太短,read 已经读到了另一端的 adapter,导致碱基判定混乱。
解决办法:换用 Trim Galore 做 adapter 检测,把 adapter 重叠部分切掉,N 含量立刻恢复正常。
grep 统计原始 FASTQ 里 N 的数量,可以粗筛异常样本。zcat sample_R1.fastq.gz | sed -n '2~4p' | grep -o 'N' | wc -l
zcat sample_R1.fastq.gz | sed -n '2~4p' | wc -l
# 两数相除 ≈ 平均 N 比例
如果平均 N 比例超过 1%,建议先做一轮质量裁剪再往下走。
三指标联动分析 —— 别孤立看任何一张图
单独看每个指标都有盲区。真正的高手,会把 碱基质量、GC 含量、N 含量 三张图放在一起对照着读。
我总结了一个简单的联动判断矩阵:
| 场景 | Per base quality | GC 含量 | N 含量 | 大概率结论 |
|---|---|---|---|---|
| 场景 A | 5' 端质量低,尾部正常 | 正常 | 正常 | 引物偏好 / 接头残留 |
| 场景 B | 尾部质量下降明显 | 正常 | 尾部 N 升高 | 测序信号衰减,需裁剪 |
| 场景 C | 整体质量偏低 | 双峰或严重偏移 | 均匀升高 | 建库失败或严重污染 |
| 场景 D | 正常 | 正常 | 特定位置尖峰 | homopolymer 区域 |
你想想看,如果只看 GC 含量图发现双峰,就急着去质疑污染,但忽略了 N 含量图其实正常、质量图也正常,那很可能只是文库的 GC 偏好,而不是真正的外源污染。
三个指标互相印证,才能下判断。
我差点让合作方重新建库,后来多看了一眼 Sequence Duplication Levels,发现 duplication rate 高达 85%。
原来所谓的「双峰」是大量 PCR 重复片段把 GC 分布拉偏了,去重之后 GC 图立刻变回单峰。
所以,不要只看三个指标,还要结合 duplication、overrepresented sequences 一起读。
实战小结
一份 FastQC 报告里十几张图,但真正决定数据生死的就是那几张。
我个人习惯按这个顺序扫图:
- Per base sequence quality —— 快速判断整体质量是否及格。
- Per base N content —— 确认是否有系统性碱基判定失败。
- GC content —— 检查偏好性和污染嫌疑。
- 最后拉回来看 Overrepresented sequences 和 Sequence Duplication Levels 做交叉验证。
这套流程走下来,一份数据能不能用、要怎么修,心里基本就有数了。
别小看这几张图,我见过不少团队花了一周做出来的比对结果,最后发现是原始数据质量不行,白白浪费了时间。
质控这步省下来的时间,才是真赚到的。