质控原则
好的结果需要好的数据。
原始下机测序数据(raw data)中,有些reads包含有测序接头序列,这些序列不属于测序物种中的原有序列,因此质控过程中需要剪切去除。同时,下机数据中还包含许多低质量的reads序列(如平均测序质量值较低的reads,序列某些位置碱基质量值过低,含N较多的reads等),同样需要过滤去除。
质控核心思想:trim(剪切)+fliter(过滤)
软件
使用fastp和fastqc作为质控软件。fastp主要用来剪切和过滤reads,fastqc用以生成更详细的质控报告。
fastp参数选择
文件读写及程序运行基本选项:
-i,输入文件1,双端测序raw reads R1;
-o,输出文件1,双端测序clean reads R1;
-I,输入文件2,双端测序raw reads R2;
-O,输出文件2,双端测序clean reads R2;
-6,输入fastq文件phred格式为phred64,将其转化为phred33,输出fastq文件phred33;
-z,gzip压缩水平,取值1-9,数值越高压缩空间越小但速度越慢,默认为2;
-j,输出的json文件名称,默认fastp.json;
-h,输出的html文件名称,默认fastp.html;
-w,程序运行线程数,默认3线程;
-s,可根据指定文件个数拆分文件,默认不拆分;
-S,可根据指定行数拆分文件,默认不拆分;
reads接头序列裁剪功能:
-A,若此参数存在,则关闭裁剪测序接头序列功能,默认启用;
-a,接头序列,默认自动检测;
reads全局裁剪功能:
-f,裁剪reads1 5'端该长度的碱基,默认无;
-t,裁剪reads1 3'端该长度的碱基,默认无;
-F,裁剪reads2 5'端该长度的碱基,默认无;
-T,裁剪reads2 3'端该长度的碱基,默认无;
reads polyG裁剪功能:
-g,执行polyG裁剪功能;默认情况下,仅识别Illumina NextSeq/NovaSeq数据执行polyG裁剪;
-G,关闭polyG裁剪功能;默认情况下,仅识别Illumina NextSeq/NovaSeq数据执行polyG裁剪;
reads滑窗裁剪功能:
-5,在reads 5'端启用根据碱基质量值的裁剪,默认无,(该参数启用会影响后续分析中对deduplication数据的识别);
-3,在reads 3'端启用根据碱基质量值的裁剪,默认无,(该参数启用会影响后续分析中对deduplication数据的识别);
-W,设定reads裁剪的滑窗大小,默认4碱基为一滑窗;
-M,滑窗中碱基平均质量低于该设定阈值时,将被裁剪,默认阈值为q20;
reads过滤功能(根据碱基质量、N碱基数量、长度等):
-Q,若此参数存在,则关闭质量筛查功能,默认启用;
-q,设定期望碱基质量值,质量值低于该值的碱基视为不合格,默认值15表示phred quality >= q15合格;
-u,允许reads中存在多少个碱基不合格,取值0-100,默认值40表示40%;
-n,如果一个read中的N碱基大于此设定值,该read将被剔除,默认值为5;
-L,若此参数存在,则关闭长度筛选功能,默认启用;
-l,如果一个read的长度低于此设定值,该read将被剔除,默认值为15;
reads碱基校正功能:
-c,若为双端测序数据(paired-end reads,PE reads),可根据reads重叠区执行碱基校正,默认禁用;
对带分子标签(UMI)的数据处理功能:
-U,启用unique molecular identifer (UMI)程序;
Over-represented序列分析功能:
-p,启用over-represented reads分析;
-P,统计over-represented reads在指定测序扩增循环次数中的基本信息,默认第20轮循环。
举例
使用fastp默认参数质控后fastqc显示的质控报告(read1的)
根据图中显示的问题(第80个碱基往后质量值较低,5'端序列质量值波动)进行参数调整
代码:
fastp -w 7 -f 9 -F 9 -3 -W 1 -M 20 -q 20 -u 40 -l 116 -i control_P_R1.fq.gz -I control_P_R2.fq.gz -o control_P_R1.p.fq -O control_P_R2.p.fq -h p.html
-w 7 线程数为7
reads全局裁剪功能
-f 9 全局裁剪,所有reads1 从5'端剪去9个碱基
-F 9 全局裁剪,所有reads2 从5'端剪去9个碱基
reads滑窗裁剪功能
-3 在reads 3'端启用根据碱基质量值的裁剪
-W 设定reads裁剪的滑窗大小为1,默认4碱基为一滑窗;数值越小,窗口所包含的碱基越容易被切除 非常之关键
-M 20 滑窗中碱基平均质量低于该设定阈值时,将被裁剪,默认阈值为20
reads过滤功能
-q 20 设定期望碱基质量值,质量值低于该值的碱基视为不合格
-u 40 允许reads中存在多少个碱基不合格,取值0-100,默认值40表示40%(若-u 30 一条read允许有30%的碱基不合格(Q值设为20),超过30%被过滤掉)
-q 20 -u 40 一个read最多只能有40%的碱基的质量值低于Q20,否则会被过滤掉
-l 116 如果一个read的长度低于116,该read将被剔除,默认值为15 (l值得确定是根据全局剪切的参数设置的,如果测序策略为PE125,-f 为5,此时大部分reads长度为116,-l的值此时就设为116,若设为125,则所有reads都被过滤掉了)
ps:滑窗裁剪和接头序列裁剪(-a,默认开启)都是局部裁剪
fastqc形成更清晰的质控报告
fastqc -o ~/WGBS/1_RawData/insulin.fastqc insulin_P_R1.fastp.fq insulin_P_R2.fastp.fq
调整fastp参数质控后的结果
fastqc和fastp同时执行:
fastp -w 7 -f 9 -F 9 -3 -W 1 -M 20 -q 20 -u 40 -l 116 -i insulin_P_R1.fq.gz -I insulin_P_R2.fq.gz -o insulin_P_R1.fastp.fq -O insulin_P_R2.fastp.fq -h insulin_P.html;fastqc -o ~/WGBS/1_Raw
Data/insulin.fastqc insulin_P_R1.fastp.fq insulin_P_R2.fastp.fq
参考
生信工具Fastp的安装及其在二代测序数据过滤质控中的使用说明
fastp: 极速全能的FASTQ文件自动质控 过滤 校正 预处理软件
RNA-seq从过滤低质量到去接头完整质控步骤