前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Trimmomatic对NGS数据进行质量过滤

使用Trimmomatic对NGS数据进行质量过滤

作者头像
生信修炼手册
发布2020-05-08 16:38:09
3.1K0
发布2020-05-08 16:38:09
举报
文章被收录于专栏:生信修炼手册

欢迎关注”生信修炼手册”!

Trimmomatic 软件可以对NGS测序数据进行质量过滤,其去除adapter的功能只是针对illumina的序列,从reads的3’端识别adapter序列并去除,相比cutadapt,少了几分灵活性。但是在过滤低质量序列时,采用了滑动窗口的算法,给定窗口长度和步长,如果该窗口内所有碱基的平均质量值低于阈值,则将该窗口及其以后的碱基全部去除。对于数据量很多的reads, 滑动窗口算法比cutadapt的算法运行速度更快。官网如下

http://www.usadellab.org/cms/?page=trimmomatic

该软件采用java语言开发,直接下载打包好的jar文件即可。最新版本为v0.38, 官网提供了二进制文件的压缩包,如下所示

下载后,解压缩即可。该软件可以对序列执行以下几种操作

1. 去除adapter序列

在去除adapter时,需要指定一个fasta格式的文件,里面是对应的adapter序列。软件内置了几种常见的illumina adapter 序列文件,详细列表如下

  1. NexteraPE-PE.fa
  2. TruSeq2-PE.fa
  3. TruSeq2-SE.fa
  4. TruSeq3-PE.fa
  5. TruSeq-3-PE-2.fa
  6. TruSeq-3-SE.fa

当然,也可以自定以adapter序列文件。通过ILLUMINACLIP参数指定adapter序列的文件,写法如下

代码语言:javascript
复制
ILLUMINACLIP:TruSeq2-PE.fa:2:30:10

TruSeq2-PE.fa表示查找该文件提供的adapter序列,在查找时,首先执行一个seed match, 就是只在序列中查找adapter的前几个碱基,如果前几个碱基都找不到,就没必要在查找后面的碱基了,通过seed match可以加快运行速度,2表示在进行seed match时,允许的最大错配数;当满足了seed match后,trimmomatic会将adapter 序列的全长与输入序列进行比对,从而识别adapter序列。此时两种模式,palindromeClip模式允许查找adapter序列的反向互补序列,比如双端测序中,R2端序列会包含5’端adapter序列的反向互补序列,30表示该模式下至少需要匹配的碱基数,另外一种叫做SimpleClip模式,只考虑提供的adapter序列,不考虑反向互补,10表示该模式下至少需要匹配的碱基数。

2. 去除低质量序列

trimmomatic 采用滑动窗口的方式去除低质量序列,需要指定滑动窗口的大小和平均质量的阈值,通过SLIDINGWINDOW参数指定,写法如下

代码语言:javascript
复制
SLIDINGWINDOW:4:15

第一个数字4代表滑动窗口的大小为4bp,第二个数字15代表碱基质量阈值为15。如果窗口内4个碱基的平均质量值低于15,该窗口及之后的序列都会被去除。

3. 去除reads 5’端的低质量碱基

通过LEADING参数指定阈值,写法如下

代码语言:javascript
复制
LEADING:3

如果序列头部的碱基质量值低于3,则去除该碱基。

4. 去除reads 3’端的低质量碱基

通过TAILING参数指定阈值,写法如下

代码语言:javascript
复制
TRAILING:3

如果序列尾部的碱基质量值低于3,则去除该碱基。

5. 从序列头部切除指定长度的碱基

通过HEADCROP参数指定长度,写法如下

代码语言:javascript
复制
HEADCROP:5

表示从每条序列的开头切掉5个碱基。

6. 将序列切割成指定长度

通过CROP参数指定长度,写法如下

代码语言:javascript
复制
CROP:120

表示将所有序列截取为120bp的长度。

7. 去除长度过短的序列

长度的阈值通过MINLEN参数指定,写法如下

代码语言:javascript
复制
MINLEN:36

如果序列长度低于36bp,则该序列会被去除。

可以根据自己的需要选择性的执行以上步骤,参数定义的顺序指定了每个步骤被执行的顺序。

对于单端测序数据,基本用法如下

代码语言:javascript
复制
java -jar trimmomatic-0.38.jar SE  
-phred33 input.fq.gz  
output.fq.gz
ILLUMINACLIP:TruSeq3-SE:2:30:10
LEADING:3
TRAILING:3
SLIDINGWINDOW:4:15
MINLEN:36

对于双端测序数据,基本用法如下

代码语言:javascript
复制
java -jar trimmomatic-0.38.jar PE
-phred33
input_forward.fq.gz
input_reverse.fq.gz
output_forward_paired.fq.gz
output_forward_unpaired.fq.gz
output_reverse_paired.fq.gz
output_reverse_unpaired.fq.gz
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10
LEADING:3
TRAILING:3
SLIDINGWINDOW:4:15
MINLEN:36

·end·

—如果喜欢,快分享给你的朋友们吧—

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 去除adapter序列
  • 2. 去除低质量序列
  • 3. 去除reads 5’端的低质量碱基
  • 4. 去除reads 3’端的低质量碱基
  • 5. 从序列头部切除指定长度的碱基
  • 6. 将序列切割成指定长度
  • 7. 去除长度过短的序列
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档