4. 质量评估:原始测序数据的QC与FastQC归纳总结
拿到测序数据的第一件事是什么?不是急着比对,也不是算表达量。我个人的习惯是先做一轮质量评估——说白了就是看看这批数据“干不干净”。
你可能觉得这一步有点多余,或者想着“反正后面会过滤,不看也罢”。但我在项目中遇到过好几次这样的情况:批次效应找来找去找不到原因,最后发现是某几个样本的测序质量参差不齐,污染序列混了一堆。浪费了好几天。所以,QC不是走过场,它是后续分析的地基。
4.1 为什么要关注测序数据质量
测序仪出来的原始数据,里面啥都有:
- 真正的RNA片段——我们要的
- 接头序列(adapters)——建库时残留的
- 低质量碱基——测序错误导致的
- 可能还有污染序列——比如接头二聚体、rRNA残留
如果不做QC,这些“垃圾”会直接影响后续的比对准确率和定量结果。你想想看,一个错误率高的碱基,比对时可能被错误匹配到参考基因组上,最终影响基因计数。RNA-seq本身依赖的就是短读段的唯一比对,质量一差,唯一性就下降。
4.2 FastQC能告诉我们什么
FastQC是最常用的QC工具,没有之一。它会检查原始FASTQ文件里每个read的质量分布,然后生成一份HTML报告。报告里共有11个模块(有些版本是12个),每个模块用红绿灯表示:绿色通过、黄色警告、红色失败。
| 模块名称 | 检查内容 | 常见判定标准 |
|---|---|---|
| Per base sequence quality | 每个位置的质量分数(Phred score) | 中位数低于20则警告 |
| Per tile sequence quality | 每个tile的质量分布 | 有过热现象可能导致失败 |
| Per sequence quality scores | 平均质量分数的分布 | 峰值低于20则失败 |
| Per base sequence content | 每个位置的A/T/G/C比例 | 前几个波动的正常,但整体应该均匀 |
| Per sequence GC content | 读段GC含量的分布 | 与理论分布偏差大时警告 |
| Per base N content | 每个位置的N碱基比例 | N过多说明测序质量差 |
| Sequence Length Distribution | 读段长度分布 | 长度不一致说明可能有截短 |
| Sequence Duplication Levels | 冗余读段比例 | RNA-seq天然有高冗余,但过高可能暗示PCR bias |
| Overrepresented sequences | 高频出现的序列 | 常见接头、rRNA、引物二聚体 |
| Adapter Content | 接头含量 | 接头残留会破坏比对 |
| Kmer Content | 短k-mer频率异常 | 提示污染的潜在信号 |
4.3 解读FastQC报告的关键点
拿到报告之后,怎么判断这是不是一批能用的数据?我一般按这个顺序扫一遍:
- Per base sequence quality —— 如果前几个碱基质量低(例如前10bp低于20),这是正常的,因为测序仪开头不稳定。但如果到读段末尾质量还很高,反而要怀疑是不是read长度被截短了。
- Per sequence GC content —— RNA-seq的GC分布应该近似正态,但可能由于基因表达偏好有轻微双峰。但我曾经遇到过一批样本GC含量出现尖锐的双峰,一查,原来是混入了rRNA。所以看到异常记得去检查overrepresented sequences。
- Adapter Content —— RNA-seq建库后一般会去除接头,但如果切得不好,会在读段两端看到接头序列。如果接头含量超过5%还亮红灯,就得考虑重新trim。
- Overrepresented sequences —— 这里最容易看出污染。常见的如Illumina的小RNA接头、rRNA片段、甚至细菌rRNA(如果样本被污染)。
4.4 批量QC与归纳:MultiQC
单个FastQC报告还好,但如果你有几十个样本,一个个看会崩溃。这时候就需要 MultiQC 出场。它会扫描指定目录下的FastQC报告(以及其他工具的log),然后汇总成一个漂亮的HTML报告,还可以横向对比所有样本的质量。
我常用的命令很简单:
fastqc *.fastq.gz -o fastqc_results/
multiqc fastqc_results/ -o multiqc_report/
fastqc 会对每个FASTQ文件生成一个zip和一个html。 multiqc 则扫描这些zip,把质量指标提取出来,绘制对比图。你看一眼就可以知道哪个样本的质量特别差或GC分布异常,快速定位问题。
关键点:MultiQC不仅能看FastQC结果,还能整合其他工具(如cutadapt、trimmomatic、STAR、RSEM等)。如果你整个pipeline都用Nextflow管理,MultiQC就是最后的QC汇总环节。
4.5 我的QC决策逻辑
拿到批量QC报告之后,我会按以下树形逻辑做判断。下面这张图总结了我常用的流程:
拿我们刚才那个流程来说,如果FastQC整体通过,我就直接跑MultiQC做汇总,然后继续下一步分析。但如果多数样本亮红灯,我会先看Per base quality是整体差还是局部差,再看overrepresented sequences里有没有明显接头。我遇到过一批数据全是接头序列——那是建库时接头切除参数设错了。重新trimm后,QC一下就绿了。
4.6 写在最后
质量评估是RNA-seq分析里最容易被轻视、但影响最大的一步。我个人判断一个pipeline靠不靠谱,第一个看的就是QC环节有没有做仔细。一份漂亮的QC报告,能让你在下游差异表达分析时底气十足。而如果在QC阶段就发现了污染或质量问题,你节省的可能是后面几周纠结结果的时间。