数据质控概述:为什么需要质控?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清洗→再次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是常规配置
🔍 小技巧: 我判断一个样本能不能用,通常会看两个指标:
- Per base sequence quality——看箱线图的中位数线是否都在绿色区域(Q>28)
- Per sequence quality scores——看有没有少量的极低质量读段拖尾