Trimmomatic


注意:软件工具一般会定期进行迭代更新,如果使用出现问题,请查看官方文档。

可以用来切除illumina测序平台的接头序列,还可以去除由我们自己指定的特定接头序列,而且同时也能够过滤read末尾的低质量序列。具体的原理就是通过滑动一定长度的窗口,计算窗口内的碱基平均质量,如果过低,就直接往后全部切除,不是挖掉read中的这部分低质量序列,而是像切菜一样,直接从低质量区域开始把这条read后面的所有其它碱基全部剁掉,否则就是在人为改变实际的基因组序列情况。

  1. adapters文件夹

    • 默认存放的是illumina测序平台的接头序列(fasta格式),在实际的使用过程中,如果需要去除接头,我们需要明确指定对应的序列作为输入参数。一般来说,目前的HiSeq系列和MiSeq系列用的都是TruSeq3,TruSeq2是以前GA2系列的测序仪所用的,已经很少见了。如果用的不是illumina测序平台,那么我们也可以按照adapters文件夹下的这些文件的格式做一个新的接头序列,然后再作为参数传入。不过在自定义接头序列的时候,命名时有一些小的细节需要注意,可以参考Trimmomatic的主页文档(The Adapter Fasta)
  2. 使用方法

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信息!这是需要注意到的一个地方
  1. 参数说明:
    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),这两个处理起来会更快,消耗的计算资源也更少。

 posted on 2020-07-13 09:18  WarningMessage  阅读(3262)  评论(0编辑  收藏  举报