解读 FastQC 报告
拿到一份 FastQC 报告,很多人第一反应就是看那个红绿黄灯。但说真的,光看颜色远远不够。我见过不少项目,明明红灯一大堆,但数据依然能用;反过来也有所有绿灯,结果建库缺陷却藏得很深。这就是为什么你得学会逐项解读。
FastQC 报告分三大块:
- 基本统计(Basic Statistics) — 看看数据的体量和基本信息
- 红绿灯模块(Per Base / Per Sequence 等) — 每个维度告诉你一种质量指标
- 汇总判断 — 综合所有模块决定是否清洗或重测
下面这张图把本章要讲的核心脉络画出来了,你先有个整体印象。
基本统计(Basic Statistics)
这部分的表格内容少,但信息量很大。它告诉你测序的基本盘面:
| 字段 | 含义 | 我的关注点 |
|---|---|---|
| Filename | 文件名 | 确认没有跑错样本 |
| File type | 碱基质量编码(Sanger / Illumina 1.9) | 旧版本编码(Phred+64)容易导致误判 |
| Encoding | Phred 范围(如33-73) | 现代数据都是 Sanger 编码,如果显示其他编码要警惕 |
| Total Sequences | 总序列数 | 和预期是否相符 |
| Sequence length | 读长范围 | 单端还是双端?是否所有 read 长度一致 |
| %GC | 整体 GC 含量 | 偏离物种正常值可能暗示污染或系统偏差 |
个人习惯:我拿到报告第一件事就是看 Total Sequences 和 Sequence length。如果双端数据 reads 不平或者出现长度截断,我会直接去检查原始数据有没有被错误整合。
Per base sequence quality
这个图是整份报告里最直观的红绿灯。横轴是读段内的碱基位置(1-based),纵轴是平均质量得分(Phred score)。箱线图展示每个位置的分布:中位数、四分位和 10%/90% 百分位。背景颜色区域:红(0-20,不可靠)、橙(20-28,一般)、绿(28+,高质量)。
它能告诉你什么?
- 前几个碱基质量低 — 如果第1-5个碱基中位数降到黄色甚至红色,通常是测序仪刚开始不稳定。我个人习惯对这种前段波动做 5‘ 端修剪(hard trim)或使用 reads 纠错工具。
- 末端质量下降 — 这是正常的渐衰过程,但若从第70个碱基就开始跌破Q20,就说明 reads 太长或者试剂老化。你可以根据下四分位数(25%线)的拐点决定切多长。
- 整个图一片红 — 赶紧检查测序质量,可能是文库制备失败或测序芯片出问题。
实操建议:如果中位数曲线(蓝色线)掉到Q20以下超过读长后1/4区域,我个人会直接使用 fastp 或 Trimmomatic 进行滑动窗口裁剪。具体参数参考后两章。
Per sequence quality scores
这个模块展示的是:所有 reads 的平均质量得分的分布。横轴是每个 read 的平均 Q-score,纵轴是该分数对应的 reads 数量。正常单峰分布:peak 应该在 Q30 附近(比如 Q30~Q35)。
最值得注意的异常模式:
- 双峰分布 — 左侧一个小峰,右侧一个主峰。我在一个转录组项目里遇到过:原来是样本中存在低质量的接头二聚体 reads。必须过滤掉左边那部分。
- peak 严重左移 — 比如峰值在 Q20,全场数据质量堪忧。通常建议废弃或使用超严格的过滤参数。
- peak 处出现异常高 — 超过纵轴刻度,说明大量 read 平均分相同,可能是测序仪自动补偿导致的。但一般不影响下游分析,可忽略。
注意:Per sequence quality 看的是“平均分”,所以如果一个 read 前半段 Q40、后半段 Q10,平均下来可能还是 Q25(绿色),但实际上局部质量问题会被掩盖。你不能只看这个模块就下结论,一定要结合 Per base quality 图一起看。
其他核心模块速览
虽然标题只让解读三个模块,但一个完整的评估离不开下面几个,我快速点一下:
| 模块 | 重点看什么 | 常见解决办法 |
|---|---|---|
| Per base sequence content | 前几个碱基 ATGC 比例是否均衡 | 如果是随机文库,前12bp出现偏差可能是引物残留,需要裁剪 |
| Per base GC content | GC 分布是否正态 | 偏离正态可能提示污染(如细菌 DNA)或 PCR 偏差 |
| Per sequence GC content | 理论分布 vs 实测分布 | 峰形偏移 >15% 需要怀疑文库构建 |
| Sequence Duplication Levels | 重复序列比例 | 高重复率(>50%)可能是 PCR 过度扩增或 RNA-seq 中的高表达基因 |
| Overrepresented sequences | 是否出现异常高频的 k-mer | 接头、rRNA 或线粒体来源——需要去除 |
| Adapter Content | 接头残留百分比 | 必须用 cutadapt 或 fastp 读段首尾去接头 |
一个小技巧:当你看到“Fail”或“Warn”时,不要直接扔掉整批数据。我习惯先打开具体的图,看看是哪些位置出了问题。有时候只是3%的末端区域掉质量,trim一下就解决了,没必要重测。
如何综合判断?
实操中按下面的顺序来:
- 先看 Basic Statistics,确认数据量和编码正常。
- 再看 Per base quality,标记需要裁剪的长度范围。
- 然后看 Per sequence quality,判断是否有整条低质量的 reads 需要丢弃。
- 最后扫一眼 Adapter Content 和 Overrepresented sequences,决定是否需要去接头或去除污染序列。
如果所有模块都是绿色,那恭喜你,可以直接往下游送了。但如果有几个模块亮红灯,别慌——看严重程度。举个例子:我曾经遇到 Per base quality 从第2个碱基就黄了,但 Per sequence quality 的 peak 还在 Q36,说明只是读段前端有系统性偏移,我直接 trim 掉前10bp,数据照样产出了好的变异检测结果。