NGS

Trimmomatic 支持多线程,处理数据速度快,主要用来去除 Illumina 平台的 Fastq 序列中的接头,并根据碱基质量值对 Fastq 进行修剪。软件有两种过滤模式,分别对应 SE 和 PE 测序数据,同时支持 gzip 和 bzip2 压缩文件。

另外也支持 phred-33 和 phred-64 格式互相转化,现在之所以会出现 phred-33 和 phred-64 格式的困惑,都是 Illumina 公司的锅(damn you, Illumina!),不过现在绝大部分 Illumina 平台的产出数据也都转为使用 phred-33 格式了。


Trimmomatic 过滤步骤

Trimmomatic 过滤数据的步骤与命令行中过滤参数的顺序有关,通常的过滤步骤如下:

  1. ILLUMINACLIP: 过滤 reads 中的 Illumina 测序接头和引物序列,并决定是否去除反向互补的 R1/R2 中的 R2。
  2. SLIDINGWINDOW: 从 reads 的 5' 端开始,进行滑窗质量过滤,切掉碱基质量平均值低于阈值的滑窗。
  3. MAXINFO: 一个自动调整的过滤选项,在保证 reads 长度的情况下尽量降低测序错误率,最大化 reads 的使用价值。
  4. LEADING: 从 reads 的开头切除质量值低于阈值的碱基。
  5. TRAILING: 从 reads 的末尾开始切除质量值低于阈值的碱基。
  6. CROP: 从 reads 的末尾切掉部分碱基使得 reads 达到指定长度。
  7. HEADCROP: 从 reads 的开头切掉指定数量的碱基。
  8. MINLEN: 如果经过剪切后 reads 的长度低于阈值则丢弃这条 reads。
  9. AVGQUAL: 如果 reads 的平均碱基质量值低于阈值则丢弃这条 reads。
  10. TOPHRED33: 将 reads 的碱基质量值体系转为 phred-33。
  11. TOPHRED64: 将 reads 的碱基质量值体系转为 phred-64。

Trimmomatic 简单用法

由于 Trimmomatic 过滤数据的步骤与命令行中过滤参数的顺序有关,因此,如果需要去接头,建议第一步就去接头,否则接头序列被其他的过滤参数剪切掉部分之后就更难匹配更难去除干净了。

双末端测序模式

在 PE 模式下,有两个输入文件,正向测序序列和反向测序序列,但是过滤之后输出文件有四个,过滤之后双端序列都保留的就是 paired,反之如果其中一端序列过滤之后被丢弃了另一端序列保留下来了就是 unpaired

PE 模式下的输入输出文件

java -jar <path to trimmomatic.jar> PE [-threads <threads] [-phred33 | -phred64] [-trimlog
<logFile>] >] [-basein <inputBase> | <input 1> <input 2>] [-baseout <outputBase> |
<paired output 1> <unpaired output 1> <paired output 2> <unpaired output 2> <step 1> <step 2> ...

其中 -phred33 和 -phred64 参数指定 fastq 的质量值编码格式,如果不设置这个参数,软件会自动判断输入文件是哪种格式(v0.32 之后的版本都支持),虽然软件默认的参数是 phred64,如果不确定序列是哪种质量编码格式,可以不设置这个参数。

输入输出文件

PE 模式的两个输入文件:sample_R1.fastq sample_R2.fastq以及四个输出文件:sample_paired_R1.clean.fastq sample_unpaired_R1.clean.fastq sample_paired_R1.clean.fastq sample_unpaired_R1.clean.fastq

通常 PE 测序的两个文件,R1 和 R2 的文件名是类似的,因此可以使用 -basein 参数指定其中 R1 文件名即可,软件会推测出 R2 的文件名,但是这个功能实测并不好用,因为软件只能自动识别推测三种种格式的 -basein:

  • Sample_Name_R1_001.fq.gz -> Sample_Name_R2_001.fq.gz
  • Sample_Name.f.fastq -> Sample_Name.r.fastq
  • Sample_Name.1.sequence.txt -> Sample_Name.2.sequence.txt

建议不用 -basein 参数,直接指定两个文件名(R1 和 R2)作为输入。

输出文件有四个,当然也可以像上文一样指定四个文件名,但是参数太长有点麻烦,有个省心的方法,使用 -baseout 参数指定输出文件的 basename,软件会自动为四个输出文件命名。例如 -baseout mySampleFiltered.fq.gz ,文件名中添加 .gz 后缀,软件会自动将输出结果进行 gzip 压缩。输出的四个文件分别会自动命名为:

  • mySampleFiltered_1P.fq.gz - for paired forward reads
  • mySampleFiltered_1U.fq.gz - for unpaired forward reads
  • mySampleFiltered_2P.fq.gz - for paired reverse reads
  • mySampleFiltered_2U.fq.gz - for unpaired reverse reads

此外,如果直接指定输入输出文件名,文件名后添加 .gz 后缀就是告诉软件输入文件是 .gz 压缩文件,输出文件需要用 gzip 压缩。

转载
作者:wangpeng905
链接:https://www.jianshu.com/p/a8935adebaae
来源:简书

NGS 数据过滤之 Trimmomatic相关推荐

  1. NGS数据过滤之trimmomatic

    NGS 原始数据过滤对后续分析至关重要,去除一些无用的序列也可以提高后续分析的准确率和效率.Trimmomatic 是一个功能强大的数据过滤软件. Trimmomatic 介绍 Trimmomatic ...

  2. 高通量测序数据质控神器Trimmomatic

    简介 高通量测序下机的原始数据中存在一些低质量数据.接头以及barcode序列等,为消除其对后续分析准确性产生的影响,在数据下机以后对原始数据进行质控处理就成了至关重要的环节.Trimmomatic就 ...

  3. R行数据过滤基于dplyr包filter函数

    R行数据过滤基于dplyr包filter函数 目录 R行数据过滤基于dplyr包filter函数 筛选等于某个值的行 使用与操作筛选行

  4. python与R行列数据过滤(row column filtering):dplyr、 isnull、isna、drop、select、iloc、loc、isin、filter

    python与R行列数据过滤(row column filtering):dplyr. isnull.isna.drop.select.iloc.loc.isin.filter 很多工程师可能刚开始的 ...

  5. Pandas常见的数据过滤方法、通过列条件筛选行数据

    Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...

  6. NGS数据的Error correction方法

    NGS数据的Error correction方法 发表评论 2,371 A+ 所属分类:Genomics 现在进行error-correciton的算法有三种: k-spectrum-based.Su ...

  7. 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( JNI 传递 Bitmap | 获取位图信息 | 获取图像数据 | 图像数据过滤 | 释放资源 )

    文章目录 一.Bitmap 图像数据处理 二.Java 层 Bitmap 对象转为 JNI 层 bitmap 对象 三.获取 bitmap 中的图像数据 四.过滤 bitmap 中的图像数据 ( 获取 ...

  8. Aspose Cells 控件如何实现数据过滤(附代码和下载地址)

    Aspose Cells 是一款操作和处理以及转换Excel文件的类库,支持.NET和JAVA版,几乎所有Excel能实现的功能,Aspose Cells都可以实现,在Excel中经常会用到数据过滤, ...

  9. Hibernate的数据过滤查询

    数据过滤并不是一种常规的数据查询方法,而是一种整体的筛选方法.数据过滤也可对数据进行筛选,因此,将其放在Hibernate的数据查询框架中介绍. 如果一旦启用了数据过滤器,则不管数据查询,还是数据加载 ...

最新文章

  1. oracle: 安装客户端
  2. python中if not是什么意思,python if not不同应用有什么区别,pythonifnot区别,python 中 "if...
  3. Java 第三周总结
  4. [Medical Image Process] 3.4 Morphology Application—Watershed Algorithm 分水岭算法
  5. 平切分,分库,分表,主从,集群 数据库水平切分的实现原理解析
  6. 机器学习能诊断病情,还能预测患者出院后的情况?
  7. SDWebImage 4 0 迁移指南
  8. linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...
  9. 爬取了BAT等一线大厂近10000+招聘需求,总结出3-5年+Java开发的高频技术需求
  10. 今天用充QQ币的时候,发现选择网银的时候,竟然会跳出一个错误
  11. 基于JAVA+SpringMVC+MYSQL的鲜花销售平台
  12. 使用java实现面向对象 第七章
  13. android之uniapp从0开始离线打包
  14. ThinkPhp学习01
  15. 分享几款强大的录音软件,厉害炸了!
  16. VMware虚拟机win7安装教程
  17. oracle18c静默安装教程,CentOS7无图形化界面静默安装oracle18c
  18. unity帧动画事件多次播放
  19. TQ2440——NandFlash分区修改
  20. MySQL之desc查看表结构的详细信息

热门文章

  1. 关于小程序获取手机号解密失败问题
  2. Android 仿微信添加群聊界面——addView
  3. As American as apple pie 美国特色
  4. bat ping 返回值_bat教程[273] print命令的用法
  5. 迅锐CMS模板常用调用总结
  6. 曙光实习笔记:第一天
  7. I.Geodetic---(弗洛伊德算法(Floyd)的运用)
  8. 2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation
  9. ROS——一文读懂:param参数
  10. 转载(生物分析专题网站(很全、实用))