第2章 质量控制:FastQC软件使用、质量报告解读、常见质量问题

2.1 为什么要关注测序质量?

说白了,FastQC 就是给测序数据做体检的。你想想看,如果原始数据质量就有问题,下游的比对、组装、变异检测全都会受到影响。假阳性、假阴性遍地跑,最后浪费的还是你自己的时间。

我刚开始做 NGS 分析时,说实话并没把 FastQC 当回事。觉得就是例行公事,跑完看看绿勾就过了。直到有一次做 RNA-seq 差异表达,结果出来后怎么都解释不通,回头一查才发现原始数据末端质量早就崩了。嗯,从那以后我再也不敢跳过质控了。

避坑指南:我曾经直接跳过 FastQC 检查,用默认参数跑完了整个分析流程,到了差异表达阶段才发现数据有问题,白白浪费了三天时间。质控这步,千万别省。

2.2 FastQC 的安装与运行

FastQC 的安装很简单。我个人习惯用 conda 管理生物信息工具,一条命令就搞定了:

# 用 conda 安装
conda install -c bioconda fastqc

# 验证安装
fastqc --version

如果你没有 conda,也可以直接从官网下载二进制包:

# 下载 FastQC
wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.12.1.zip
unzip fastqc_v0.12.1.zip
cd FastQC
chmod +x fastqc
./fastqc --version

基本使用命令长这样:

# 单样本运行
fastqc -o qc_results -t 4 sample_R1.fastq.gz

# 批量处理(我最常用的方式)
fastqc -o qc_results -t 8 *.fastq.gz

参数说明:-o 指定输出目录,-t 设置线程数。批量处理时我建议把线程数设到 8 或更高,能省不少时间。

我的习惯:批量跑完 FastQC 后,用 MultiQC 把多个报告汇总成一个 HTML。这样一眼就能看出哪些样本有问题,不用一个个点开看。

2.3 解读 FastQC 报告

运行完成后,每个样本会生成一个 HTML 报告和一个 ZIP 压缩包。打开 HTML 页面,你会看到一系列图表,每个模块都有一个状态灯:

  • 绿色勾:通过,没问题
  • 黄色叹号:警告,需要留意
  • 红色叉号:失败,必须处理

别看这灯简单,判断逻辑其实很严格。我记得有次处理一批 FFPE 样本,几乎所有模块都是黄色警告,一开始我还以为是试剂问题,后来才知道是样本本身的降解导致的。

下面是 FastQC 报告的 11 个核心模块,我挑几个重点的讲:

模块名称 检查内容 常见问题
Basic Statistics 序列总数、GC 含量、质量编码 数据量不足、编码格式错误
Per base sequence quality 每个碱基位置的质量分数分布 3' 端质量下降、前几个碱基质量低
Per sequence quality scores 每条序列的平均质量分布 整体质量偏低(测序跑崩了)
Per base GC content 每个位置的 GC 含量 GC 偏差(文库扩增偏好)
Per sequence GC content 每条序列的 GC 含量分布 双峰(大概率是污染)
Adapter Content 接头序列在各位置的占比 接头污染(片段太短)
Overrepresented sequences 过度代表的序列 PCR 重复、接头二聚体、污染
怎么看报告最效率?我个人的顺序是:先看 Summary 区域的指示灯,红色和黄色模块优先处理。然后重点看 Per base quality、Adapter Content 和 Per sequence GC content 这三张图,大部分问题都能在这三个模块里暴露出来。

2.4 常见质量问题及处理策略

这里我总结几个项目中经常遇到的质量问题,每个我都吃过亏。

问题一:3' 端质量断崖式下降

这是最最常见的问题。你会发现 Per base quality 图上,read 的末尾几十个碱基质量跌到 20 以下。为什么会这样?其实原因很简单——测序仪越往后跑,荧光信号衰减越厉害。

处理方法:用 Trimmomatic 或 cutadapt 做滑窗裁剪,把低质量尾巴去掉。

# Trimmomatic 裁剪示例
trimmomatic SE sample.fastq.gz sample_trimmed.fastq.gz \
  SLIDINGWINDOW:4:20 MINLEN:36

问题二:GC 含量出现双峰

我在项目中遇到过 GC 含量双峰的情况。正常的 Per sequence GC content 应该是单峰,近似正态分布。如果出现双峰,基本可以断定是污染——混入了其他物种的 DNA。

处理思路:用 Kraken2 或 Centrifuge 做物种分类,找到污染源,然后过滤掉非目标序列。

问题三:接头污染比例高

这在小片段文库中特别常见(比如 FFPE 样本的 RNA-seq)。我记得有次处理一批临床样本,Adapter Content 模块显示接头比例高达 30% 以上。原因很简单:RNA 降解严重,片段太短,测序直接读到了接头。

处理方法:用 cutadapt 去除接头,同时建议检查文库构建流程。

# cutadapt 去接头
cutadapt -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC \
  -o sample_trimmed.fastq.gz sample.fastq.gz

问题四:Overrepresented sequences 太多

如果某个序列占比异常高(超过 0.1%),要么是 PCR 过度扩增导致的重复,要么是接头二聚体。前者用去重工具处理,后者用 cutadapt 过滤掉短片段即可。

注意:不要看到红色警告就紧张。有些警告在特定数据中是可以接受的。比如 RNA-seq 数据中,某些高表达基因的 reads 占比高是正常的。关键是结合你的实验背景来判断。

2.5 质控流程与决策

看完报告,怎么决定下一步?我一般按这个逻辑来判断:

  • 所有模块都通过:直接往下游走,别犹豫
  • 只有 Per base quality 末尾预警:裁剪一下就行,问题不大
  • Adapter Content 红色:必须去接头,否则比对率会很低
  • Per sequence GC content 双峰:先排查污染,再做决定
  • 多个模块同时红色:建议找测序服务商沟通,可能要重测

下面这张图总结了我平时做质控的完整流程:

← 上一章 📖 返回目录 下一章 →