碱基质量分布箱线图解读与全基因组视图归纳总结
箱线图(Box plot)这个图,说实话是我每次拿到 FastQC 报告最先盯的模块。为什么?因为它把每个碱基位置的质量分布浓缩成了几个数字,一眼就能看出文库有没有系统性偏差。我个人习惯把它叫作“CT 报告单”——有没有炎症、哪里出血、指标是否异常,全写在这张图上了。
但光看箱线图还不够,你还需要一张“全景仪表盘”,也就是全基因组视图(Per Sequence Quality Scores)。它能告诉你整体质量分布是否健康。这两个图配合着看,才能给文库质量下判断。下面我拆开细讲。
1. 箱线图:碱基质量的“五数概括”
箱线图展示的是每个碱基位置上所有 reads 的质量得分分布。横轴是位置(1, 2, 3, …),纵轴是 Phred 质量分数。每个位置画一个箱子,里面藏着五个关键数字:
- 最小值(下须端点)—— 不包括异常值
- Q1(25% 分位数)—— 箱子下沿
- 中位数(50% 分位数)—— 箱子中间的横线
- Q3(75% 分位数)—— 箱子上沿
- 最大值(上须端点)—— 不包括异常值
箱子以外的点就是异常值,表示该位置个别 reads 的质量特别差。我刚开始做质控时,看到一堆散点就紧张,后来才发现只要中位数和箱体范围正常,少量异常值通常不影响后续分析。
2. 逐位置解读:哪里在“报警”?
正常的高质量文库,箱线图应该呈现什么样子?中位数线在 Q30 以上平稳延伸,箱体宽度均匀,须的长度差不多。但我遇到过不少反例,这里列几个典型模式:
| 模式 | 可能原因 | 我的处理建议 |
|---|---|---|
| 前 5-10 bp 质量偏低 | 测序仪启动不稳定、引物残留 | 切除前 10 bp,或用自适应裁剪 |
| 3' 端质量逐渐下滑 | 读长过长,聚合酶活性衰减 | 从尾部回裁,保留质量达标的长度 |
| 整条中位数线都低(< Q25) | 文库本身质量差,或测序试剂失效 | 建议重做文库或重新测序 |
| 箱体宽度异常大 | reads 质量不均一,存在批次效应 | 检查样本分组、建库批次 |
这里我要强调一点:不要只看中位数。箱体的宽度和须的长度同样重要。箱体宽说明 reads 质量参差不齐,须特别长说明有不少低质量 outlier 存在。我曾有一个项目,中位数线在 Q30 以上,但箱体特别宽,结果后续的 SNP 检出率明显偏低。所以,你想想看,只看中位数是不是容易踩坑?
3. 全基因组视图:整体质量的“仪表盘”
箱线图告诉你每个位置的质量,但无法直观回答“整体质量分布是否正常”。这就是全基因组视图(Per Sequence Quality Scores)要解决的问题。它把所有 reads 按平均质量得分分组,统计每组 reads 的数量,画成一条分布曲线或直方图。
正常的分布应该是:
- 单峰,峰尖集中在高分区域(通常 Q30–Q40)
- 没有拖尾,低分区域 reads 数极少
- 峰形对称,没有双峰或多峰
如果出现双峰——一个主峰在 Q35 附近,另一个小峰在 Q20 附近——说明文库里混了一批低质量 reads。我在 RNA-seq 项目中遇到过这种情况,后来排查发现是部分样本降解了。双峰就是警铃,看到它一定要去查原始数据。
下面这张图总结了从箱线图到全基因组视图的分析逻辑,以及最终如何导向质量判断:
4. 阈值设定:什么时候该叫停?
阈值不是死数字,我一般会分两个层级来设定:
层级一:FastQC 默认阈值(快速筛查)
| 指标 | 绿色(Pass) | 黄色(Warning) | 红色(Fail) |
|---|---|---|---|
| Per base 中位数质量 | 所有位置 ≥ Q28 | 有位置 < Q28 但 ≥ Q22 | 有位置 < Q22 |
| Per sequence 平均质量峰值 | 峰值 ≥ Q30 | 峰值 < Q30 且 ≥ Q25 | 峰值 < Q25 |
层级二:项目定制阈值(严谨模式)
我个人习惯根据下游分析调整阈值:
- 做变异检测(SNP/INDEL): 要求所有位置中位数 ≥ Q30,全基因组视图峰值 ≥ Q33。不然假阳性会显著升高。
- 做 RNA-seq 表达定量: 可以放宽到中位数 ≥ Q25,峰值 ≥ Q28。因为定量算法对低质量有一定容忍度。
- 做宏基因组(低丰度物种): 跟变异检测一样严格——甚至更严。低质量 reads 会引入 chimeric 序列,导致物种鉴定错误。
5. 避坑指南:我踩过的那些坑
做质控这么多年,有些坑不摔一次真的记不住。我分享几个典型的:
- 只看均值不看分布: 全基因组视图的峰值显示 Q35,看起来很漂亮。但箱线图显示前 20 bp 的中位数只有 Q18。这就是典型的“均值掩盖局部问题”。我建议两个图必须一起看。
- 忽略异常值密度: 有时候箱线图的中位数和箱体都正常,但异常值特别多。这种情况通常意味着少数 reads 质量极差。如果不做过滤,它们会在比对时造成大量错配。
- 阈值复制粘贴: 不同测序平台、不同读长、不同试剂版本,质量分布特征都不一样。Illumina NovaSeq 和 MiSeq 的箱线图就差别很大。我习惯每换一次平台就重新跑一批参考数据,校准阈值。
- 忘记检查双端数据的一致性: 双端测序中 R1 和 R2 的箱线图应该相似。如果 R2 明显比 R1 差,说明文库插入片段偏短或 3' 端降解严重。我遇到过 R2 的 3' 端中位数掉到 Q15 以下,后来发现是 adapter 残留导致。
最后说一句:箱线图和全基因组视图不是用来“通过质控”的,而是用来“理解数据”的。每次看到报告,多问一句“为什么这里会掉质量?”,久而久之你就能从图中读出文库的建库质量、测序状态甚至试剂批号差异。这才是质控的真正价值。