二代测序数据的质控:你需要Trimmomatic!

2022-05-05 13:27:49 浏览数 (2)

通过前两期文章二代测

二代测序数据的指控一般包含以下步骤:

  1. 切除尾端碱基质量小于指定值(一般为20)的碱基。可以简单的单碱基修剪,也即从末端开始进行删除,直到读取碱基质量高于20;也可以进行滑窗修剪,也即从末端开始以指定碱基数目的滑窗开始修剪,直到滑窗内碱基平均质量高于20。
  2. 去除末端修剪后长度小于指定值的reads。不同项目指定值不同,一般宏基因组去掉小于50bp的reads(50bp已不够产生k-mer),而扩增子测序则根据raw reads长度和PCR插入片段的长度来确定,例如V4区大概260bp,那么可以去掉双末端reads之和小于280bp的(否则不足以拼接)。
  3. 其他一些要求,例如去除含有N(也即无法读取位点)过多的reads、去除完全重复的reads等。

通常质控需要我们自己写脚本来完成。Trimmomatic是一个便捷好用的Illumina测序数据质控工具,可以帮我们省掉很多代码任务,自发表以来引用量已过万,安装可以使用conda:

代码语言:javascript复制
conda install -c trimmomatic

Trimmomatic基本使用方法及默认参数如下:

代码语言:javascript复制
java -jar trimmomatic-0.30.jar PE -threads 20 -phred33 R1.fq R2.fq clean.R1.fq unpaired.R1.fq clean.R2.fq unpaired.R2.fq ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:36
参数解释如下:
PE/SE    设定对Paired-End或Single-End的reads进行处理,其输入和输出参数稍有不一样。
-threads    设置多线程运行数,也即核数
-phred33  设置碱基的质量格式,可选pred64
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10    切除adapter序列。参数后面分别接adapter序列的fasta文件:允许的最大mismatch数:palindrome模式下匹配碱基数阈值:simple模式下的匹配碱基数阈值。
LEADING:3  切除首端碱基质量小于3的碱基
TRAILING:3  切除尾端碱基质量小于3的碱基
SLIDINGWINDOW:4:15  滑窗修剪,一个Windows的size是4个碱基,其平均碱基质量小于15,则切除。
MINLEN:50    最小的reads长度
CROP:<length>    保留reads到指定的长度
HEADCROP:<length>  在reads的首端切除指定的长度
TOPHRED33      将碱基质量转换为pred33格式
TOPHRED64      将碱基质量转换为pred64格式

下面通过一些实例为大家介绍该软件的使用方法:

代码语言:javascript复制
切除尾端碱基质量小于20的碱基(也即从末端开始进行删除,直到读取碱基质量高于20),并去掉剪切后长度小于150的小序列片段:
java -jar trimmomatic-0.30.jar PE -threads 20 -phred33 R1.fq R2.fq clean.R1.fq unpaired.R1.fq clean.R2.fq unpaired.R2.fq TRAILING:20 MINLEN:150
使用末端滑窗修剪,同时去掉质控后长度过短(小于50bp)的小片段,如下所示:
java -jar trimmomatic-0.33.jar PE -threads 20 -phred33 rm_dup_N_trim_1.fq rm_dup_N_trim_2.fq clean_1.fq unp_clean_1.fq clean_2.fq unp_clean_2.fq SLIDINGWINDOW:4:20 MINLEN:50

质控后,我们由raw reads获得clean reads,也可以再次使用FastQC进行质量可视化来查看质控效果:

END

0 人点赞