解读 FastQC 报告

拿到一份 FastQC 报告,很多人第一反应就是看那个红绿黄灯。但说真的,光看颜色远远不够。我见过不少项目,明明红灯一大堆,但数据依然能用;反过来也有所有绿灯,结果建库缺陷却藏得很深。这就是为什么你得学会逐项解读。

FastQC 报告分三大块:

  • 基本统计(Basic Statistics) — 看看数据的体量和基本信息
  • 红绿灯模块(Per Base / Per Sequence 等) — 每个维度告诉你一种质量指标
  • 汇总判断 — 综合所有模块决定是否清洗或重测

下面这张图把本章要讲的核心脉络画出来了,你先有个整体印象。

FastQC 报告解读核心流程 原始 FASTQ 运行 FastQC HTML 报告 基本统计 Per Base Per Sequence 综合判断:是否过滤?什么策略? 查看所有模块的 warn/fail 再决定

基本统计(Basic Statistics)

这部分的表格内容少,但信息量很大。它告诉你测序的基本盘面:

字段含义我的关注点
Filename文件名确认没有跑错样本
File type碱基质量编码(Sanger / Illumina 1.9)旧版本编码(Phred+64)容易导致误判
EncodingPhred 范围(如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 contentGC 分布是否正态偏离正态可能提示污染(如细菌 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一下就解决了,没必要重测。

如何综合判断?

实操中按下面的顺序来:

  1. 先看 Basic Statistics,确认数据量和编码正常。
  2. 再看 Per base quality,标记需要裁剪的长度范围。
  3. 然后看 Per sequence quality,判断是否有整条低质量的 reads 需要丢弃。
  4. 最后扫一眼 Adapter Content 和 Overrepresented sequences,决定是否需要去接头或去除污染序列。

如果所有模块都是绿色,那恭喜你,可以直接往下游送了。但如果有几个模块亮红灯,别慌——看严重程度。举个例子:我曾经遇到 Per base quality 从第2个碱基就黄了,但 Per sequence quality 的 peak 还在 Q36,说明只是读段前端有系统性偏移,我直接 trim 掉前10bp,数据照样产出了好的变异检测结果。