碱基质量分布箱线图解读与全基因组视图归纳总结

箱线图(Box plot)这个图,说实话是我每次拿到 FastQC 报告最先盯的模块。为什么?因为它把每个碱基位置的质量分布浓缩成了几个数字,一眼就能看出文库有没有系统性偏差。我个人习惯把它叫作“CT 报告单”——有没有炎症、哪里出血、指标是否异常,全写在这张图上了。

但光看箱线图还不够,你还需要一张“全景仪表盘”,也就是全基因组视图(Per Sequence Quality Scores)。它能告诉你整体质量分布是否健康。这两个图配合着看,才能给文库质量下判断。下面我拆开细讲。

1. 箱线图:碱基质量的“五数概括”

箱线图展示的是每个碱基位置上所有 reads 的质量得分分布。横轴是位置(1, 2, 3, …),纵轴是 Phred 质量分数。每个位置画一个箱子,里面藏着五个关键数字:

  1. 最小值(下须端点)—— 不包括异常值
  2. Q1(25% 分位数)—— 箱子下沿
  3. 中位数(50% 分位数)—— 箱子中间的横线
  4. Q3(75% 分位数)—— 箱子上沿
  5. 最大值(上须端点)—— 不包括异常值

箱子以外的点就是异常值,表示该位置个别 reads 的质量特别差。我刚开始做质控时,看到一堆散点就紧张,后来才发现只要中位数和箱体范围正常,少量异常值通常不影响后续分析。

经验参考: 中位数线如果掉到 Q20 以下,意味着该位置超过一半的 reads 错误率 ≥ 1%。这种位置越多,数据越危险。

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 项目中遇到过这种情况,后来排查发现是部分样本降解了。双峰就是警铃,看到它一定要去查原始数据。

下面这张图总结了从箱线图到全基因组视图的分析逻辑,以及最终如何导向质量判断:

碱基质量分析流程:从箱线图到全基因组视图 FASTQ 原始数据 reads 质量得分矩阵 逐位置质量计算 每个位点五数概括 箱线图绘制 中位数 / Q1 / Q3 / 须 / 异常值 序列平均质量计算 每条 reads 质量均值 全基因组视图 质量分布直方图 质量判断决策 Pass / Warning / Fail 归纳总结 局部位置质量 → 整体分布质量 → 综合判断
核心逻辑: 箱线图负责“定位问题位置”,全基因组视图负责“评估整体严重程度”。两者结合,才能区分“局部噪声”和“系统性劣变”。

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 序列,导致物种鉴定错误。
注意: 不要因为某个位置中位数低于阈值就直接扔掉整条 read。先检查该位置是否在头尾,如果是,用裁剪工具切除即可。我曾经一刀切掉整批数据,后来发现只要裁掉前 8 bp 就能挽救 80% 的 reads,白白浪费了资源。

5. 避坑指南:我踩过的那些坑

做质控这么多年,有些坑不摔一次真的记不住。我分享几个典型的:

  • 只看均值不看分布: 全基因组视图的峰值显示 Q35,看起来很漂亮。但箱线图显示前 20 bp 的中位数只有 Q18。这就是典型的“均值掩盖局部问题”。我建议两个图必须一起看。
  • 忽略异常值密度: 有时候箱线图的中位数和箱体都正常,但异常值特别多。这种情况通常意味着少数 reads 质量极差。如果不做过滤,它们会在比对时造成大量错配。
  • 阈值复制粘贴: 不同测序平台、不同读长、不同试剂版本,质量分布特征都不一样。Illumina NovaSeq 和 MiSeq 的箱线图就差别很大。我习惯每换一次平台就重新跑一批参考数据,校准阈值。
  • 忘记检查双端数据的一致性: 双端测序中 R1 和 R2 的箱线图应该相似。如果 R2 明显比 R1 差,说明文库插入片段偏短或 3' 端降解严重。我遇到过 R2 的 3' 端中位数掉到 Q15 以下,后来发现是 adapter 残留导致。

最后说一句:箱线图和全基因组视图不是用来“通过质控”的,而是用来“理解数据”的。每次看到报告,多问一句“为什么这里会掉质量?”,久而久之你就能从图中读出文库的建库质量、测序状态甚至试剂批号差异。这才是质控的真正价值。