一、安装
Trimmomatic是基于Java开发的,因此需要提前安装Java环境,才能使用Trimmomatic。
安装Java环境可以参考我的简书:
//www.greatytc.com/p/5d364dfc0f43
Trimmomatic官网地址:
http://www.usadellab.org/cms/?page=trimmomatic
进入官网后,复制binary(二进制文件)的地址。
然后再输入如下命令:
wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
unzip Trimmomatic-0.39.zip
解压后的文件包括以下几个:
1.adapters
NexteraPE-PE.fa,TruSeq2-PE.fa,TruSeq2-SE.fa,TruSeq3-PE-2.fa,TruSeq3-PE.fa,TruSeq3-SE.fa
2.LICENSE
3.trimmomatic-0.39.jar
一共八个文件,一个文件夹
adapters路径下的文件是ILLUMINA常规的接头文件,有单端和双端。
trimmomatic-0.39.jar是编译之后的文件,需用java执行。
$ java -jar Trimmomatic-0.39/trimmomatic-0.39.jar -h
Usage:
PE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-summary <statsSummaryFile>] [-quiet] [-validatePairs] [-basein <input Base> | <inputFile1> <inputFile2>] [-baseout <outputBase> | <outputFile1P> <out putFile1U> <outputFile2P> <outputFile2U>] <trimmer1>...
or:
SE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-summary <statsSummaryFile>] [-quiet] <inputFile> <outputFile> <trimmer1>...
参数解释:
PE/SE 设定对Paired-End或Single-End的reads进行处理,其输入和输出参数稍有不一样。
-threads 设置多线程运行数
-phred33 设置碱基的质量格式,可选pred64,不设置这个参数,软件会自动判断输入文件是哪种格式
-trimlog 指定过滤日志文件名,日志中包含以下四列内容:read ID、过滤之后剩余序列长度、过滤之后的序列起始碱基位置(序列开头处被切掉了多少个碱基)、过滤之后的序列末端碱基位置、序列末端处被剪切掉的碱基数。
#由于生成的trimlog文件中包含了每一条 reads 的处理记录,因此文件体积巨大(GB级别),如果后面不会用到 trim日志,建议不要使用这个参数
-basein 通常 PE 测序的两个文件,指定其中 R1 文件名,软件会推测出 R2 的文件名,但是这个功能实测并不好用,建议不用-basein参数,直接指定两个文件名(R1 和 R2)作为输入
-baseout 输出文件有四个,使用 -baseout 参数指定输出文件的 basename,软件会自动为四个输出文件命名,过滤之后双端序列都保留的就是 paired,反之如果其中一端序列过滤之后被丢弃了另一端序列保留下来了就是 unpaired(即 成对的clean reads, 未成对的正向序列以及未成对的反向序列)
#一般情况下,若paired reads百分比占90%以上,可只对paired reads进行比对分析
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10:8:true
切除adapter序列。参数后面分别接adapter序列的fasta文件:第一步 seed 搜索时允许的最大错配碱基个数2:palindrome模式下匹配碱基数阈值30:simple模式下的匹配碱基数阈值10(7-15之间):palindrome 模式允许切除的最短接头序列为 8bp(默认值):palindrome 模式去除与 R1 完全反向互补的 R2(默认去除false),但在有些情况下,例如需要用到 paired reads 的 bowtie2 流程,就要将这个参数改为 true,否则会损失一部分 paired reads。
#按照规定顺序,ILLUMINACLIP 各个参数之间以冒号分开,PE测序需要注意最后一个参数。对于SE测序最后两个参数可以不设置
LEADING:3 切除首端碱基质量小于3的碱基
#Illumina平台有些低质量的碱基质量值被标记为 2 ,所以设置为3可以过滤掉这部分低质量碱基。
TRAILING:3 切除尾端碱基质量小于3的碱基
SLIDINGWINDOW:15:20
滑窗质量过滤,一般一个read的低质量序列都是集中在末端,也有很少部分在开头。从5'端开始进行滑动,当滑动位点周围一段序列(window)的平均碱基低于阈值,则从该处进行切除。Windows的size是15个碱基(一般设置在10-30之间),其平均碱基质量小于20,则切除
MINLEN:50 可被保留的最短reads长度,应根据原始序列的长度而定
HEADCROP:<length> 在reads的首端切除指定的长度
CROP:<length> 保留reads到指定的长度
TOPHRED33 将碱基质量转换为pred33格式
TOPHRED64 将碱基质量转换为pred64格式
二、用法
(1)SE模式
对于单端数据,指定一个输入文件和一个输出文件。所需的处理步骤(裁剪、适配器裁剪等)作为附加参数指定在输入/输出文件之后。
java -jar <path to trimmomatic jar> SE [-threads <threads>] [-phred33 | -phred64] [-trimlog
<logFile>] <input> <output> <step 1> ...
指定trimlog文件将创建一个记录所有reads 的日志,指出以下细节:
1.read的名字,即QNAME
2.保留下的序列长度
3.从起始位置,第一个保留碱基的位置。
4.原始read中最后一个碱基的位置
5.从末尾切除掉的碱基个数
可以根据需要指定多个步骤,方法是在部分处理步骤中描述的在最后使用附加参数。
(2)PE模式
对于Pair-End数据,需要两个输入文件,会输出4个文件。其中两个文件对应于"paired"数据,即read1和read2都保留。另外两个对应于"unpaired"数据,在处理的过程中会过滤掉其中一端的reads。
java -jar <path to trimmomatic.jar> PE [-threads <threads] [-phred33 | -phred64] [-trimlog <logFile>] >] [-basein <inputBase> | <input 1> <input 2>] [-baseout <outputBase> | <unpaired output 1> <paired output 2> <unpaired output 2> <step 1> ...
1.-phred33|-phred64:指定碱基质量编码规则。在0.32版本以后如果缺省,则会根据数据自动选择。默认值是-phred64。
2.-threads:表示要使用的线程数,用于提高多核计算机的性能。
本文参考文章:
1.cnblogs.com/Sunny-King/archive/2022/06/16/Bioinformatics-Trimmomatic.html
2.//www.greatytc.com/p/43b564783e32
3.https://www.cnblogs.com/dataanaly/p/13197977.html