Trimmomatic 是基于java的多功能的工具,用于预处理读段。Trimmomatic 可以删除接头,而且以基于质量的不同的方式对读段进行修剪。它也可以基于质量和长度对读段进行过滤,并将碱基质量从一种编码系统转化成另一种。Trimmomatic 是多线程的,所以运行非常快。
安装trimmomatic:
打开链接:http://www.usadellab.org/cms/?page=trimmomatic
复制binary格式文件的网页链接地址:http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
新建文件夹:
mkdir -p Trimmomatic
进入文件夹:
cd Trimmomatic
用wget下载:
wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
解压文件:
unzip Trimmomatic-0.39.zip
进入文件夹并查看文件:
cd Trimmomatic-0.39
ls
image.png
得到三个文件,LICENSE, adapters 和 trimmomatric-0.39.jar。获取此路径
pwd
image.png
这个是软件的绝对路径,所以我的绝对路径为pwd得到的结果,也就是/scratch/leuven/332/vsc33291/Trimmomatic/Trimmomatic-0.39。
运行Trimmomatic:
需要注意的是在[-version]部分应该使用绝对路径,也就是刚刚trimmomatric-0.39.jar文件所在的路径。
双端测序:
PE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-summary <statsSummaryFile>] [-quiet] [-validatePairs] [-basein <inputBase> | <inputFile1> <inputFile2>] [-baseout <outputBase> | <outputFile1P> <outputFile1U> <outputFile2P> <outputFile2U>] <trimmer1>...
java -jar /scratch/leuven/332/vsc33291/Trimmomatic/Trimmomatic-0.39/trimmomatic-0.39.jar PE \###绝对路径
-threads 20 -phred33 input_1.fastq.gz input_2.fastq.gz \###质量计算方式为phred33(还有一种是phred64,但这几年大部分都是33.)输入fastq文件,fastq文件的后缀一般都是_1.fastq.gz 和_2.fastq.gz
output_1.clean.fastq output_1.unpaired.fastq output_2.clean.fastq output_2.unpaired.fastq \####输出文件名,分别为剪切后质量均比较好的碱基的对应的两个文件和被剪切的碱基的两个对应文件
ILLUMINACLIP: /scratch/leuven/332/vsc33291/Trimmomatic/Trimmomatic-0.39/adapter/TruSeq2-PE.fa:2:30:10 \ ###第二代测序就用TruSeq2,第三代测序就用TruSeq3
LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:30 HEADCROP:8 AVGQUAL:20
LEADING: 从 reads 的开头切除质量值低于阈值的碱基。
TRAILING: 从 reads 的末尾开始切除质量值低于阈值的碱基。
SLIDINGWINDOW: 从 reads 的 5' 端开始,进行滑窗质量过滤,切掉碱基质量平均值低于阈值的滑窗。SLIDINGWINDOW 可以用MAXINFO替换,MAXINFO是一个自动调整的过滤选项,在保证reads长度的情况下尽量降低测序错误率,从而最大化reads的使用价值。代码如下:MAXINFO:50:0.7 (目标长度为50,严格性为0.7,可进行更改)
MINLEN: 如果经过剪切后 reads 的长度低于阈值则丢弃这条 reads。
HEADCROP: 从 reads 的开头切掉指定数量的碱基。
AVGQUAL: 如果 reads 的平均碱基质量值低于阈值则丢弃这条 reads。
单端测序
SE [-version] [-threads <threads>] [-phred33|-phred64] [-trimlog <trimLogFile>] [-summary <statsSummaryFile>] [-quiet] <inputFile> <outputFile> <trimmer1>...
示例
java -jar /scratch/leuven/332/vsc33291/Trimmomatic/Trimmomatic-0.39/trimmomatic-0.39.jar SE -phred33 input.fq.gz output.fq.gz ILLUMINACLIP:TruSeq3-SE:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:36
在实际应用中会有大量的测序结果,这个时候我们可以写循环来进行(以双端测序为例)
创建脚本
image.png
vi trimmomatic.sh
按i进入输入模式,输入以下代码:
按esc退出输入模式,输入:进入底线模式,输入wq保存并退出
bash trimmomatic.sh
运行代码
一般运行都比较久,可以选择后台运行 nohup bash trimmomatic.sh 1>filter.log 2>&1 &
如果有错误,欢迎批评指正。
网友评论