第2章 质量控制:FastQC软件使用、质量报告解读、常见质量问题
2.1 为什么要关注测序质量?
说白了,FastQC 就是给测序数据做体检的。你想想看,如果原始数据质量就有问题,下游的比对、组装、变异检测全都会受到影响。假阳性、假阴性遍地跑,最后浪费的还是你自己的时间。
我刚开始做 NGS 分析时,说实话并没把 FastQC 当回事。觉得就是例行公事,跑完看看绿勾就过了。直到有一次做 RNA-seq 差异表达,结果出来后怎么都解释不通,回头一查才发现原始数据末端质量早就崩了。嗯,从那以后我再也不敢跳过质控了。
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 或更高,能省不少时间。
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 重复、接头二聚体、污染 |
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 过滤掉短片段即可。
2.5 质控流程与决策
看完报告,怎么决定下一步?我一般按这个逻辑来判断:
- 所有模块都通过:直接往下游走,别犹豫
- 只有 Per base quality 末尾预警:裁剪一下就行,问题不大
- Adapter Content 红色:必须去接头,否则比对率会很低
- Per sequence GC content 双峰:先排查污染,再做决定
- 多个模块同时红色:建议找测序服务商沟通,可能要重测
下面这张图总结了我平时做质控的完整流程: