第3章 测序数据质量控制(FASTQC)

拿到RNA-seq数据后第一件事是什么?不是急着比对,不是找差异基因。你得先看看数据质量过不过关。这步要是省了,后面所有分析都可能白做。

我见过不少新手,兴冲冲跑完流程,结果发现大部分reads都是低质量的。浪费时间不说,还得重头再来。所以啊,质量控制这步,咱们得认真对待。

为什么非做质量控制不可?

测序仪不是完美的机器。它会出错。碱基识别错误、接头污染、PCR重复、序列偏差……这些问题都会混在原始数据里。你不把它们揪出来,下游分析就会被污染。

说白了,质量控制就是给你的数据做个体检。看看它有没有“健康问题”。

千万别跳过这一步。我曾经因为赶时间,直接拿原始FASTQ文件跑比对。结果一看比对率只有60%。折腾了好几天,才发现是测序接头没去除干净。白白浪费了宝贵时间。

FASTQC能告诉我们什么?

FASTQC是行业标准工具。它读入FASTQ文件,生成一份详细的质量报告。报告里有十几个指标,其中几个是关键中的关键。

我按重要程度排个序,你重点关注这些:

指标模块它检查什么翻车信号
Per base quality每个碱基位置的质量分布尾部质量暴跌
Per sequence GC content每条序列的GC含量分布出现双峰或异常偏移
Adapter content接头序列残留比例尾部出现接头
Overrepresented sequences异常高丰度的序列单个序列占比 > 1%
Per base N content无法识别的碱基比例某一位置N比例飙升
Sequence duplication levels序列重复程度重复率异常高

怎么读懂FASTQC报告?

报告用红黄绿三种颜色做标记:绿色代表通过,黄色代表警告,红色代表失败。听起来简单对吧?但要注意,红色不一定是死刑。有些情况需要结合实验背景判断。

看碱基质量分布

报告第一页就是Per base sequence quality。它画了一个箱线图。横轴是碱基位置,纵轴是Phred质量分数。我一般这样看:

  • 前10个碱基质量偏低?正常。测序仪启动不稳定,常见现象。
  • 尾部质量掉到Q20以下?有问题。建议截断处理。
  • 整体都在Q30以上?漂亮。这批数据很干净。

我个人习惯,RNA-seq数据最低接受标准是:read平均质量 > Q30,且低质量碱基占比 < 10%。低于这个标准的,必须做过滤。

看GC含量分布

这个指标特别有意思。理论上,随机打断的RNA片段GC含量应该接近正态分布,均值在物种基因组GC含量附近。人类是41%左右。

如果你看到双峰分布,或者明显偏离预期值,要警惕了。我遇到过一种情况:GC含量分布出现两个峰,查了半天才发现是样品被微生物污染了。那批细胞的RNA提取时混入了细菌RNA。双峰就是这么来的。

看接头和重复序列

接头污染主要来自文库构建时接头没洗干净。在报告里看Adapter Content模块,如果某一端接头比例超过5%,就必须去除。

重复序列这块要注意区分:RNA-seq里高表达基因本来就会产生大量相同的reads。这和DNA-seq里的PCR重复不一样。所以我一般不严格过滤RNA-seq的重复序列,除非重复率飙到80%以上。

怎么跑FASTQC?

其实就一行命令的事:

fastqc sample_R1.fastq.gz sample_R2.fastq.gz -o qc_output/

跑完后每个样本会生成一个.html文件和一个.zip文件。打开html文件就能看到报告。

建议项目开始时就设好输出目录。我习惯把所有QC报告集中放在一个文件夹里,方便批量审核。

拿到报告后怎么做决策?

报告不是用来看的,是用来做决策的。我整理了一个简单的判断流程,你对照着来:

情况一:全部绿色

直接进入下一步分析。别浪费时间。

情况二:部分黄色警告

看看是哪个模块。如果是尾部质量偏低,用工具做trimming。我常用Trimmomatic或cutadapt:

cutadapt -q 20 -m 50 -j 8 \
  -a AGATCGGAAGAGC \
  -A AGATCGGAAGAGC \
  -o trimmed_R1.fastq.gz \
  -p trimmed_R2.fastq.gz \
  sample_R1.fastq.gz sample_R2.fastq.gz

这个命令的意思是:去除质量低于Q20的碱基,丢弃长度小于50bp的reads,同时去掉接头序列。

情况三:大量红色失败

先别急着处理。检查原始数据是否完整,测序参数是否正确。如果确认没问题,那这批数据可能真的有问题。我建议重新和测序公司沟通,要求补测或重测。

有一次我的项目三分之一样本都标红了。我没直接跑分析,而是拿了几条reads用BLAST比对。结果发现是测序时标签搞混了,把其他物种的DNA当成RNA-seq来做了。所以说,遇到大面积失败,先溯源,别盲目过滤。

质量控制的核心逻辑

我把整个质控流程画成了一张图。你看一眼就明白了:

RNA-seq 数据质量控制流程 原始FASTQ数据 FASTQC 质量报告生成 质量评估 红/黄/绿? 直接进入分析流程 比对 + 定量 + 差异 针对性处理 Trimming / 去接头 数据溯源 检查 / 重做 核心原则 • 绿色直接过,不要过度处理 • 黄色针对性trimming • 红色先溯源,再决定去留

几个实战经验

做多了QC报告,你会有直觉。看到某个模块变黄,你大概就知道是哪一步出了问题。这里分享几个我踩过的坑:

  • 双端测序的R1和R2质量要分别看。有时候R1很好,R2很差,这是正常的。但差距过大就不对了。
  • 接头去除后要重新跑一次FASTQC。确保接头确实被去掉了。别偷懒。
  • 多样本项目一定要批量看报告。我习惯写个简单的汇总脚本:
multiqc qc_output/ -o multiqc_report/

MultiQC会把你所有样本的FASTQC报告合并成一张汇总报表。一眼就能看出哪些样本有问题。强烈推荐。

记住一句话

质量控制不是为了追求完美,而是为了了解你的数据到底什么水平。知道了,你才能做出正确的判断。哪些样本能用,哪些需要处理,哪些干脆放弃。

你想想看,后边差异分析做得再漂亮,如果前边数据就是一团糟,那不成了垃圾进垃圾出?