测序数据质控与修剪(FastQC、fastp)
测序数据质控是所有 NGS 分析的第一步:在比对或定量之前,先检查原始 FASTQ 的碱基质量、接头残留、GC 分布、重复水平和过表达序列,再按需要切掉接头和低质量末端、丢弃过短或 N 过多的读段。FastQC 负责出诊断报告,fastp、Trimmomatic、Cutadapt 负责修剪与过滤,MultiQC 把几十上百个样本的报告汇总到一张表里横向比较。典型输入是 Illumina 或 MGI 平台的单端或双端 FASTQ(常见为 gz 压缩)。质控的目的不是让每一项都变绿,而是识别会影响下游结果的真实问题,例如接头污染、文库失败、样本间质量差异过大,并把修剪力度控制在不损伤有效信息的范围内。
什么时候用
- 拿到测序公司返回的原始 FASTQ,想在比对前确认数据是否可用
- 比对率异常偏低,怀疑接头残留、污染或文库插入片段过短
- 小 RNA、ATAC-seq 等插入片段短的文库,需要切掉读通到接头的序列
- NovaSeq、NextSeq 两色化学平台数据,读段末端出现大量 polyG
- 几十个样本批量测序,要统一比较质量并找出离群样本
- 从 SRA、GEO 下载的公共数据,复用前核对质量和读长
不适合的情况
- Nanopore、PacBio 长读长数据:质量分布和误差模式不同,应使用长读长专用质控工具
- 把 FastQC 的每个 FAIL 都当成必须修复的错误,对 RNA-seq 过度处理
- 用质控结果替代比对后质控:插入片段、覆盖均一性、链特异性需要在 BAM 层面评估
需要准备的数据
- 原始 FASTQ 文件
- 单端或双端,fastq 或 fastq.gz;双端需确认 R1、R2 文件名一一对应且读段数相同。
- 接头序列信息
- 建库试剂盒类型(如 TruSeq、Nextera)或接头序列;双端数据可靠重叠自动识别,但小 RNA 文库建议明确提供。
- 样本信息表
- 样本名、分组、测序批次和泳道,用于 MultiQC 汇总时按批次比较、定位问题样本。
- 实验类型说明
- RNA-seq、WGS、扩增子、ATAC-seq 等,决定哪些 FastQC 警告属于正常现象、修剪力度该多大。
分析步骤
- 1
原始数据初检
对每个 FASTQ 运行 FastQC,先看读段总数、读长和编码格式是否符合预期。双端 R1、R2 读段数不一致说明文件被截断或传输损坏,应重新下载,后续步骤都无法补救。
- 2
定位主要问题
重点看 Per base sequence quality、Adapter Content 和 Overrepresented sequences。接头比例随位置上升说明插入片段短于读长;过表达序列可用 BLAST 判断来源,如 rRNA 或引物二聚体。
- 3
接头修剪
用 fastp 或 Cutadapt 去除接头。双端数据 fastp 默认靠读段重叠识别接头,可加 --detect_adapter_for_pe 增加序列检测;修剪后再跑 FastQC,Adapter Content 曲线应接近零。
- 4
质量过滤与修剪
按需开启末端滑窗修剪(如 fastp 的 --cut_tail),并设置最短读长丢弃过短读段。修剪后保留读段比例通常应在九成以上,大比例丢失说明文库本身有问题,而不是阈值不够严。
- 5
平台特异处理
两色化学平台末端的 polyG 是无信号产生的假碱基,fastp 对这类数据默认开启 polyG 修剪;扩增子数据还要切引物,UMI 文库要先把 UMI 提取到读段名中再修剪。
- 6
多样本汇总
用 MultiQC 汇总 FastQC 和 fastp 报告,按读段数、Q30 比例、GC 含量、重复率排序。某个样本的 GC 峰明显偏移或读段数远低于同批,应标记并结合比对结果决定是否剔除或补测。
- 7
记录与交接
保存修剪前后读段数、各项过滤原因的统计和所用参数。下游比对率、差异分析出现异常时,可以回溯是否与修剪丢失比例或某个批次相关。
关键参数与决策
质量阈值(fastp -q / -u)
fastp 默认把 Phred 低于 15 的碱基视为不合格,不合格碱基超过 40% 的读段被丢弃。一般数据保持默认即可,提高到 20 或 30 会丢掉大量仍可正常比对的读段。
滑窗修剪(--cut_tail、-W、-M)
从 3' 端开始按窗口平均质量切除低质量尾部,窗口大小和平均质量阈值共同决定修剪力度。变异检测可适度开启;RNA-seq 定量对末端质量不敏感,可不开或用较宽松阈值。
最短读长(-l / --length_required)
修剪后短于该长度的读段被丢弃。基因组和转录组常设 30 到 50 bp;小 RNA 文库成熟 miRNA 约 20 nt 左右,阈值要相应调低,否则有效读段会被大量过滤。
接头指定方式
双端数据可依赖重叠自动识别,单端数据自动检测可能漏掉低比例接头。已知试剂盒时直接提供接头序列更稳妥,例如 TruSeq 接头常见前缀为 AGATCGGAAGAGC。
是否去重
FASTQ 层面去重会把高表达基因的真实重复读段一起删掉,RNA-seq 通常不在此步去重。WGS、WES 的 PCR 重复一般在比对后按坐标标记,有 UMI 时按 UMI 分组处理。
常见错误
- RNA-seq 的 Per base sequence content 前 10 余个碱基 FAIL 就切头:这是随机引物偏好,属正常现象,切掉只会浪费读长。
- RNA-seq 的 Sequence Duplication Levels 报 FAIL 就做 FASTQ 去重:高表达基因本就产生大量相同读段,去重会压低其计数。
- 双端数据分别单独修剪 R1 和 R2:两个文件的读段顺序会错位,比对时配对信息失效,应使用支持双端同步处理的工具或模式。
- 修剪阈值设得过严,读长被切得参差不齐:短读段多重比对增加,变异检测和定量的假信号都会变多,而质量提升有限。
- 只看 FastQC 汇总图标、不看读段数:某个样本读段数只有同批的十分之一,质量图依然全绿,却会在下游统计中拖低检验效力。
- 下载的公共数据误判质量编码:极老的数据可能是 Phred+64,按 Phred+33 处理会让质量值整体偏高,过滤完全失效。
结果怎么看
Per base sequence quality 箱线图
横轴是读段位置,纵轴是 Phred 质量。中位数在 30 以上、末端缓慢下降是常见形态;某一段位置质量突然塌陷,往往是测序仪某个循环异常,影响一整个泳道的样本。
Adapter Content 曲线
显示每个位置检出接头的读段比例。曲线从读段后半段开始抬升,说明插入片段短于读长;修剪后应降到接近零,若仍有残留,检查接头序列是否指定正确。
Per sequence GC content 分布
实际分布应与该物种理论分布形状接近。出现第二个峰或明显肩部,提示细菌、宿主或 rRNA 污染;整体左右平移通常与文库类型或捕获区域有关。
fastp 过滤统计
列出因低质量、过多 N、过短被丢弃的读段数及修剪前后 Q20、Q30 比例。被丢弃读段比例明显高于同批其他样本,提示该样本文库或上机存在问题。
MultiQC 汇总表
每行一个样本,汇总读段数、重复率、GC、接头比例等。按列排序找离群值,比逐个打开报告更容易发现批次性问题,例如某一泳道全部样本 Q30 偏低。
和相近方法怎么选
fastp 与 Trimmomatic
fastp 把质控、接头识别、修剪和报告集成在一个多线程程序里,双端可自动识别接头,速度快;Trimmomatic 需要显式给接头文件和修剪步骤,参数组合灵活,历史流程中使用广泛。新项目常用 fastp,需要复现旧流程时沿用原工具。
Cutadapt、Trim Galore 与 fastp
Cutadapt 在接头匹配上可控性强,适合小 RNA、扩增子引物这类需要精确切除的场景;Trim Galore 是对 Cutadapt 和 FastQC 的封装,并为 RRBS 等文库提供专门选项。常规数据用 fastp 更省事。
原始数据质控与比对后质控
FASTQ 质控看的是读段本身的质量和污染,无法反映比对率、插入片段长度、覆盖均一性和链特异性。两者都要做:前者决定要不要修剪,后者用 Qualimap、Picard 等工具判断文库能否用于下游分析。
常见问题
FastQC 报告出现很多 FAIL,数据还能用吗?
多数情况下能用。FastQC 的判断标准按随机基因组 DNA 文库设定,RNA-seq、扩增子、ChIP-seq 天然会在序列组成、重复度等模块报警。真正需要处理的是碱基质量整体偏低、接头比例高和来源不明的过表达序列。
测序数据一定要修剪接头吗?
插入片段短于读长时必须修剪,否则读段末端的接头会降低比对率或产生错配。BWA、STAR 等比对工具能软剪切部分末端,插入片段普遍较长时影响较小,但小 RNA、ATAC-seq、cfDNA 等短片段文库一定要处理。
Q30 比例多少算合格?
Q30 表示碱基错误率约为千分之一。没有统一合格线,测序服务商常以 Q30 达到 80% 或 85% 作为交付标准,这是行业经验值。更重要的是同批样本之间是否一致,单个样本明显偏低才需要追查。
修剪之后读长不一致,会影响下游分析吗?
主流比对和定量工具都支持变长读段。需要注意的是部分工具对读长有要求,例如部分 k-mer 方法和 STAR 索引参数与读长有关;修剪后读段过短会增加多重比对,所以最短读长不要设得太低。
fastp 和 FastQC 需要都跑吗?
fastp 自带修剪前后的质量报告,常规流程可以只跑 fastp。如果团队习惯用 FastQC 的模块判断,或需要和历史项目对比,可以在修剪前后各跑一次 FastQC,再用 MultiQC 统一汇总。
在 Codar 里怎么做
在 Codar 里说明测序类型、建库方式和样本数后,会先确认质控方案,再对每个 FASTQ 评估碱基质量、接头残留、GC 分布和重复水平,按实验类型修剪接头和低质量末端,最后汇总对比所有样本的质控结果,标出离群样本。交付修剪后的 FASTQ、每个样本的质控报告、多样本汇总表与图、问题样本说明和可复现脚本。
我有 24 个双端 RNA-seq 样本的 fastq.gz,NovaSeq 测的,帮我做质控和接头修剪,汇总后告诉我哪些样本质量有问题