4. 质量评估

拿到测序数据的第一件事是什么?不是急着比对,也不是算表达量。我个人的习惯是先做一轮质量评估——说白了就是看看这批数据“干不干净”。

你可能觉得这一步有点多余,或者想着“反正后面会过滤,不看也罢”。但我在项目中遇到过好几次这样的情况:批次效应找来找去找不到原因,最后发现是某几个样本的测序质量参差不齐,污染序列混了一堆。浪费了好几天。所以,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频率异常提示污染的潜在信号
我的经验:不要只看整体通过/失败,要逐项点开图看。尤其是Per base sequence quality的箱线图,如果中位数线在绿色区域但下四分位掉得很低,那也要小心。

4.3 解读FastQC报告的关键点

拿到报告之后,怎么判断这是不是一批能用的数据?我一般按这个顺序扫一遍:

  1. Per base sequence quality —— 如果前几个碱基质量低(例如前10bp低于20),这是正常的,因为测序仪开头不稳定。但如果到读段末尾质量还很高,反而要怀疑是不是read长度被截短了。
  2. Per sequence GC content —— RNA-seq的GC分布应该近似正态,但可能由于基因表达偏好有轻微双峰。但我曾经遇到过一批样本GC含量出现尖锐的双峰,一查,原来是混入了rRNA。所以看到异常记得去检查overrepresented sequences。
  3. Adapter Content —— RNA-seq建库后一般会去除接头,但如果切得不好,会在读段两端看到接头序列。如果接头含量超过5%还亮红灯,就得考虑重新trim。
  4. Overrepresented sequences —— 这里最容易看出污染。常见的如Illumina的小RNA接头、rRNA片段、甚至细菌rRNA(如果样本被污染)。
避坑指南:我曾有一次跑完FastQC,发现所有样本的Per base sequence quality都疯狂警告,我以为是测序不行。折腾了半天,才发现是因为FASTQ文件没压缩好,导致读取错误。所以先确认文件完整性和格式。

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报告之后,我会按以下树形逻辑做判断。下面这张图总结了我常用的流程:

RNA-seq 数据质量评估流程(个人习惯) 原始 FASTQ 数据 运行 FastQC 多数通过? 批量 MultiQC 汇总 检查问题来源 整体质量合格 重新质检或丢弃 如果主要问题是接头污染,可以先行trimm后再跑一次FastQC

拿我们刚才那个流程来说,如果FastQC整体通过,我就直接跑MultiQC做汇总,然后继续下一步分析。但如果多数样本亮红灯,我会先看Per base quality是整体差还是局部差,再看overrepresented sequences里有没有明显接头。我遇到过一批数据全是接头序列——那是建库时接头切除参数设错了。重新trimm后,QC一下就绿了。

4.6 写在最后

质量评估是RNA-seq分析里最容易被轻视、但影响最大的一步。我个人判断一个pipeline靠不靠谱,第一个看的就是QC环节有没有做仔细。一份漂亮的QC报告,能让你在下游差异表达分析时底气十足。而如果在QC阶段就发现了污染或质量问题,你节省的可能是后面几周纠结结果的时间。