引言:FastQC简介与重要性
做NGS数据分析,第一步往往不是跑比对,也不是找变异。第一步,是看FastQC报告。我接触这个领域快十年了,每次拿到新的测序数据,第一件事就是打开FastQC看一眼。
为什么这么重视?因为数据质量直接决定了后面的分析能不能做、结果可信不可信。你想想看,下游的比对、拼接、变异检测,哪个不是建立在原始数据质量之上的?如果输入本身就有问题,后面再怎么折腾也是白费力气。
FastQC本质上就是一把尺子。它帮你量一量测序数据到底怎么样。就好比盖房子之前先检查地基——快、准、不贵。很多新手容易忽略这一步,直接上比对。我记得我第一次做RNA-seq项目时,也是急着跑下游,结果发现大量reads比对不上,折腾了两天才意识到是接头污染导致的。嗯,从那以后我再也不敢跳过FastQC了。
FastQC能做什么?
说白了,FastQC会逐一检查测序数据的方方面面。它输出的HTML报告包含十几个质量模块。我常用的几个核心模块是:
- 每个碱基的测序质量得分 — 判断整体质量有没有在某个位置突然下降
- 每条序列的平均质量得分 — 看有没有大批低质量reads
- GC含量分布 — 检查是否存在GC bias
- 接头污染 — 最常见的坑,尤其对于小RNA或双端数据
- 重复序列水平 — 过高可能表示PCR重复或文库扩增不均
每个模块都有红绿灯评估:绿色表示通过,黄色表示警告,红色表示不合格。但我要提醒你——不要盲目相信默认阈值。比如对于某些特殊文库(如RRBS、ChIP-seq),GC含量可能天然就偏离理论分布,这时候黄色甚至红色都是正常的。
关键认知:FastQC报告是工具,不是判官。你需要结合自己的实验设计、文库类型、物种背景去解读。默认阈值只适用于最常规的WGS或RNA-seq。
我个人的工作习惯
每次拿到批量样本,我会这样做:
- 对所有样本统一跑FastQC,生成报告
- 用MultiQC聚合所有报告,一眼看出哪些样本异常
- 按模块逐项检查,重点关注红色警告的样本
- 根据异常类型决定处理手段——是裁切、过滤、还是重测
跑FastQC的命令也很简单:
fastqc sample_R1.fastq.gz sample_R2.fastq.gz -o ./fastqc_reports
multiqc ./fastqc_reports -o ./multiqc_report
我习惯把R1、R2放在一起跑,因为双端数据的质量问题往往对称出现。
FastQC在数据质控流程中的位置
下面这张图展示了整个NGS数据质控的标准工作流,FastQC处于最上游的检查点。
从上图可以看到,FastQC处在原始数据和下游分析之间的关键桥梁位置。如果数据不合格,就需要经过质控处理(如Trimmomatic或cutadapt),然后再次用FastQC验证,直到达到可接受标准。这个反馈闭环非常重要——我曾经遇到过一个极端情况,某批双端数据有严重的3'端质量下降,裁切后仍然不合格,最后发现是测序仪器出了问题。
阈值设置的实际经验
官方默认阈值是硬编码在FastQC里的。但实际项目中,我建议你根据以下情况灵活调整:
| 质量模块 | 默认阈值 | 实战建议 |
|---|---|---|
| Per base quality(每个碱基质量) | 低于Q20警告,低于Q10不合格 | 对于基因表达分析(Q30),建议收紧到Q20警告、Q15不合格 |
| Per sequence quality(每条序列平均质量) | 低于Q28警告,低于Q20不合格 | RNA-seq可适当放低至Q25警告 |
| GC content | 偏离理论分布15%警告,30%不合格 | 如果文库类型已知有偏差(如RRBS),可放宽至25%/40% |
| Adapter content(接头含量) | >0.5%警告,>1%不合格 | 小RNA数据接头污染很常见,>5%才需要处理 |
小技巧:对于常规Illumina X-Ten/HiSeq数据,我一般只看Per base quality、Per sequence quality和Adapter content三项。其余指标多数时候都是绿色,除非样品有特殊问题。
曾经踩过的坑:有次我负责一个肿瘤WES项目,几十个样本FastQC报告的GC含量模块全部显示红色警告。我当时差点要求重测,后来发现是捕获试剂盒的GC偏好导致的。所以遇到红色警告,第一反应不是重测,而是去查实验记录。
本节要点总结
- FastQC是NGS质控的起点,永远放在第一位
- 不要迷信红绿灯,结合实验背景解读
- 建议用MultiQC批量监控,发现异常样本
- 阈值需要根据文库类型和下游分析目标动态调整
- 质控处理+FastQC复检形成闭环