Trimmomatic
注意:软件工具一般会定期进行迭代更新,如果使用出现问题,请查看官方文档。
可以用来切除illumina测序平台的接头序列,还可以去除由我们自己指定的特定接头序列,而且同时也能够过滤read末尾的低质量序列。具体的原理就是通过滑动一定长度的窗口,计算窗口内的碱基平均质量,如果过低,就直接往后全部切除,不是挖掉read中的这部分低质量序列,而是像切菜一样,直接从低质量区域开始把这条read后面的所有其它碱基全部剁掉,否则就是在人为改变实际的基因组序列情况。
- Trimmomatic -- 去除测序接头和低质量序列
- 网址:http://www.usadellab.org/cms/index.php?page=trimmomatic
- 下载:直接去官网下载二进制软件,解压后的trimmomatic-0.36.jar即为需要的软件
-
adapters文件夹
- 默认存放的是illumina测序平台的接头序列(fasta格式),在实际的使用过程中,如果需要去除接头,我们需要明确指定对应的序列作为输入参数。一般来说,目前的HiSeq系列和MiSeq系列用的都是TruSeq3,TruSeq2是以前GA2系列的测序仪所用的,已经很少见了。如果用的不是illumina测序平台,那么我们也可以按照adapters文件夹下的这些文件的格式做一个新的接头序列,然后再作为参数传入。不过在自定义接头序列的时候,命名时有一些小的细节需要注意,可以参考Trimmomatic的主页文档(The Adapter Fasta)
-
使用方法:
PE和SE两种方式,详见说明文档
java -jar trimmomatic-0.36.jar
Usage:
PE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet] [-validatePairs] [-basein <inputBase> | <inputFile1> <inputFile2>] [-baseout <outputBase> | <outputFile1P> <outputFile1U> <outputFile2P> <outputFile2U>] <trimmer1>...
SE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-quiet] <inputFile> <outputFile> <trimmer1>...
-version
# 例:paired-end
java -jar /path/Trimmomatic/trimmomatic-0.36.jar PE -phred33 \
reads_1.fq.gz reads_2.fq.gz \
out.read_1.fq.gz out.trim.read_1.fq.gz \
out.read_2.fq.gz out.trim.read_2.fq.gz \
ILLUMINACLIP:/path/Trimmomatic/adapters/TruSeq3-PE.fa:2:30:10 \
SLIDINGWINDOW:5:20 \
LEADING:5 \
TRAILING:5 \
MINLEN:50
## 在SE模式中,是不需要指定文件来存放被过滤掉的read信息的,后面直接就接Trimmer信息!这是需要注意到的一个地方
- 参数说明:
PE/SE
设定对Paired-End或Single-End的reads进行处理,其输入和输出参数稍有不一样。
-threads
设置多线程运行数
-phred33
设置碱基的质量格式,默认是pred64
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10
TruSeq3-PE.fa是接头序列,2是比对时接头序列时所允许的最大错配数;30指的是要求PE的两条read同时和PE的adapter序列比对,匹配度加起来超30%,那么就认为这对PE的read含有adapter,并在对应的位置需要进行切除。10和前面的30不同,它指的是,我就什么也不管,反正只要这条read的某部分和adpater序列有超过10%的匹配率,那么就代表含有adapter了,需要进行去除数:palindrome模式下匹配碱基数阈值:simple模式下的匹配碱基数阈值。
LEADING:3
切除首端碱基质量小于3的碱基
TRAILING:3
切除尾端碱基质量小于3的碱基
SLIDINGWINDOW:4:15
从5'端开始进行滑动,当滑动位点周围一段序列(window)的平均碱基低于阈值,则从该处进行切除。Windows的size是4个碱基,其平均碱基质量小于15,则切除。
MINLEN:50
规定read被切除后至少需要保留的长度,如果低于该长度,会被丢掉
CROP:<length>
保留reads到指定的长度
HEADCROP:<length>
在reads的首端切除指定的长度
TOPHRED33
将碱基质量转换为pred33格式
TOPHRED64
将碱基质量转换为pred64格式
如果下机的fq数据中不含有这些测序接头,那么我们除了trimmomatic之外,也可以直接使用sickle(同时支持PE和SE数据)或者seqtk(仅支持SE),这两个处理起来会更快,消耗的计算资源也更少。