数据质控概述:为什么需要质控?FastQC与Trimmomatic简介

为什么需要质控?

测序仪吐出来的数据,直接扔进分析流程?

我个人习惯,拿到任何一份原始测序数据,第一件事就是做质控。这不是流程要求,而是血的教训。我在一个肿瘤项目中,测序数据没有做质控就直接拼装,结果一堆假阳性。排查了三天,最后发现是接头污染和低质量碱基在捣乱。从那以后,我再也不敢跳过这一步了。

原始测序数据(Raw Data)里面藏着很多陷阱。你想想看,测序仪不是完美的机器,它会产生各种误差:

  • 接头污染:建库时没切干净的接头序列,会混在读段里
  • 低质量碱基:测序仪在高GC区域、读段末尾容易出错
  • 重复序列:PCR扩增引入的大量重复,会干扰拷贝数估算
  • N碱基过多:测序仪实在读不出来的地方,会给个'N'
  • GC含量异常:可能是文库扩增偏好,也可能是污染
⚠️ 注意: 我曾经见过一个案例,有人把原始数据直接跑变异检测,结果80%的变异都是假的。原因就是那批数据的接头污染率超过了15%。质控不是锦上添花,是必选项。

说白了,质控就两个目的:发现问题,修复问题。发现问题靠FastQC,修复问题靠Trimmomatic。这两个工具是生信人手里的“质检员”和“修理工”。

FastQC 是做什么的?

FastQC是一款快速QC工具,专门用来检查测序数据的质量。我常用的命令长这样:

fastqc sample_R1.fastq.gz -o ./qc_report

跑完后它会生成一个HTML报告,里面有11个模块的详细评估。我挑几个重点的说说:

模块 看什么 正常范围
Per base sequence quality 每个碱基位置的质量分布 大部分区域Q>30
Per sequence quality scores 所有读段的平均质量分布 峰值在Q30以上
Per base sequence content 每个位置的A/T/G/C比例 四条线基本平行
Adapter Content 接头序列的富集程度 末尾接头比例<5%
Overrepresented sequences 出现频率过高的序列 单个序列占比<0.1%
💡 提示: FastQC报告怎么看“快准狠”?我习惯先扫一眼底部的“Summary”栏——绿色通过、黄色警告、红色失败。红色项目就是我们要重点关注的问题点。

Trimmomatic 又是谁?

FastQC发现问题了怎么办?洗干净。Trimmomatic就是干这个的。它专门用来切除低质量碱基、去掉接头、过滤短读段。

我分享一下我的常用处理流程:

java -jar trimmomatic-0.39.jar PE \
  input_R1.fastq.gz input_R2.fastq.gz \
  output_R1_paired.fastq.gz output_R1_unpaired.fastq.gz \
  output_R2_paired.fastq.gz output_R2_unpaired.fastq.gz \
  ILLUMINACLIP:adapters.fa:2:30:10 \
  LEADING:3 TRAILING:3 \
  SLIDINGWINDOW:4:15 \
  MINLEN:36

这个命令看起来长,其实逻辑很清晰。我拆开来讲:

  • PE:双端测序,单端用SE
  • ILLUMINACLIP:切接头,参数是“匹配率2:30:10”,保守点可以调成2:30:8
  • LEADING/TRAILING:切除头尾质量低于3的碱基
  • SLIDINGWINDOW:滑窗,4个碱基一组平均质量低于15就切掉
  • MINLEN:切完后长度小于36bp的直接扔
🎯 关键参数建议:
  • 癌症样本:窗口设大一点,SLIDINGWINDOW:4:20
  • 细菌基因组:窗口可以放放,SLIDINGWINDOW:4:15
  • RNA-seq:注意不要让MINLEN设太高,否则丢失转录本

核心逻辑流程图

我画了一张图,把整个质控流程串起来。这样你就能看清数据是怎么从低质量变成干净可用的。

数据质控核心逻辑流程图 原始测序数据 FastQC 质控 质量合格? 通过 直接使用 Trimmomatic 清洗 说明 1. 先跑FastQC检查 2. 质量合格→直接使用 3. 不合格→Trimmomatic 4. 清洗后再跑FastQC 5. 循环直到合格 回环质控

流程其实不复杂:原始数据→FastQC检查→质量判断→不合格则Trimmomatic清洗→再次FastQC验证→合格后使用。我曾经在一个宏基因组项目中,这个循环跑了三轮才把所有数据洗干净。耐心点,质控做扎实了,下游分析才能稳。

什么时候可以跳过质控?

嗯,这里要注意。我知道有人会问:有时候能不能跳过这一步?

我的回答是:几乎不能。除非你有足够把握——比如测序平台非常稳定、建库流程极度标准化、并且你已经在这个平台处理过上百批数据都表现一致。即便如此,我仍然建议至少做一个快速检查。

⏱️ 实战建议: 我处理常规样本(比如血液RNA-seq)时,会先用FastQC扫一眼。如果报告全是绿色通过,就直接往下走。如果出现红色警告,再针对性处理。没必要每个样本都调参数,但也不能完全不看。

FastQC 输出解读入门

我拿一个真实的FastQC报告片段来演示怎么看:

>>Basic Statistics
Measure    Value
Filename   sample_R1.fastq.gz
File type  Conventional base calls
Encoding   Illumina 1.9
Total Sequences  24567890
Filtered Sequences  0
Sequence length  150
%GC  48

这里看几个关键点:

  • Total Sequences:读段总数,一般文库预期在2000万左右
  • %GC:GC含量,人类基因组是42%左右,异常说明可能有污染
  • Encoding:质量编码格式,Illumina 1.9是Phred+33
  • Sequence length:读段长度,双端150bp是常规配置
🔍 小技巧: 我判断一个样本能不能用,通常会看两个指标:
  1. Per base sequence quality——看箱线图的中位数线是否都在绿色区域(Q>28)
  2. Per sequence quality scores——看有没有少量的极低质量读段拖尾
如果这两项都通过了,其他指标有黄色警告也没关系,可以接受。